• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            jake1036

            6-14 XX網(wǎng)實習(xí)生筆試總結(jié)

                              XX網(wǎng)實習(xí)生筆試

                1 校內(nèi)網(wǎng)實習(xí)生C++筆試總結(jié)
                  時間為1小時,小題都為填空題共8道,大題有四道。 總體來說小題沒有跑出面試寶典+effective c++ 兩本書。
                 大題整體也不是太復(fù)雜,但是仍然感到犀利。
               2 填空題
                  (1) 一個 #define SUM(a+b) a + b
                          然后輸出 SUM(a , b) * SUM(c , d) 這個題應(yīng)該大家都注意過,宏經(jīng)常會出現(xiàn)的問題。
                   (2)還有一個考察 sizeof() 和 strlen()的問題。
                          考察 char s1[] , 與 char *s2 之間的區(qū)別,注意一點s1是個字符數(shù)組,sizeof(s1) = 字符串長度 + 1 (最后一個0) , sizeof(s2) = 4
                           strlen 是一個函數(shù),求取的是字符串的長度,對s1和s2結(jié)果都一樣,但是注意strlen不需要計數(shù)最后一個0 字符。
                   (3)定義一個結(jié)構(gòu)體 ,結(jié)構(gòu)體中有一個函數(shù),函數(shù)中有一個輸出語句。
                          然后聲明一個結(jié)構(gòu)體指針,但是該指針為NULL。使用該指針調(diào)用函數(shù),即使該指針為空,但是不會出現(xiàn)異常。
                          所謂異常是指訪問了非法內(nèi)存,但是此種情況不是。
                   (4)考察了 父類子類的 構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序 。
                   (5)1000個硬幣 ,只有一個與其余999個不同,求找出該硬幣的最小次數(shù)。我猜的是用2分
                   (6) 100 * 1000 平米中種樹,樹苗之間相隔至少為1米,求最多種多少樹。
                    (7)有一個字符串 復(fù)制操作符構(gòu)造函數(shù),就是考察了 copying 函數(shù),c++ 變焦模糊的地方。
                     (8)忘了。。。。。

              3 大題
                 (1)求最大公約數(shù),gcd ,思路兩個數(shù)a , b  ,首先注意當兩者之中有其一為0,需要直接返回0。
                       然后遞歸是gcd(b , a%b)
                  (2)進程間通信方式
                        (a)管道方式: 半雙工通信,單向流動只能在具有親緣關(guān)系的進程之間通信,即父子進程。
                        (b)有名管道:半雙工通信,允許無親緣關(guān)系的進程之間通信。
                        (c)信號量: 實際上是一個計數(shù)器,可以用來控制多個進程對共享資源的訪問。它常作為一種鎖機制,
                               來控制多個進程對共享資源的訪問。缺點是傳遞的數(shù)據(jù)量比較少。
                        (d)  消息隊列:是消息的隊列,存放在內(nèi)核中,并由消息隊列標識符標示。
                               消息隊列客服了消息傳遞的數(shù)據(jù)量過少,管道只承載無格式字節(jié)流以及緩沖區(qū)大小受限。
                        (e)  信號: 一種復(fù)雜的機制,用來通知某進程某項任務(wù)已經(jīng)完成。
                       (f)共享內(nèi)存: 實質(zhì)上開辟了一塊內(nèi)存,這塊內(nèi)存由一個進程創(chuàng)建,多個進程共享。
                              這是最快的IPC方式 。它是針對其它進程運行效率低而實現(xiàn)的。
                        (g)套接字socket: 同樣是一種進程之間通信方式,但是可以作用于不同機器上的不同進程。
                    (3)用c++實現(xiàn)一段單例模式的代碼,要求是實現(xiàn)線程安全機制,使用mutex,這題不太明白。
                           難道自己實現(xiàn)mutex? c++語言本身沒有同步的信號量。 要么就是調(diào)用系統(tǒng)調(diào)用。。
                   (4)合并兩個有序的單鏈表。糾結(jié)許久,還是打算實現(xiàn)了。
                  

            #include <iostream>
            #include 
            <stdio.h>
            #include 
            <stdlib.h>
              
            using namespace std ;
                
              
            struct Node
              
            {
                
            int data ;
                Node 
            * next ;
              }
             ;    
              
              
            void buildlist(Node * & node) 
              
            {
                
            int x  ; 
                cin
            >>x ;
                
            while(x)
                
            {
                  
            if(!node)      
                  
            {
                     node 
            = (Node *)malloc(sizeof(Node)) ;  
                     node
            ->data = x ;
                     node
            ->next = 0 ; 
                  }
            else
                  
            {
                     Node 
            * temp = (Node *)malloc(sizeof(Node)) ;
                     temp
            ->data = x ;   
                     temp
            ->next = node ; 
                     node 
            = temp ; 
                  }

                  cin
            >>x ;
                }
                
              }
              
             
              
            //merge two sorted linked list
              Node * merge(Node * h1 , Node * h2)
              
            {
                
            if(!h1)  return h2 ; 
                
            if(!h2)  return h1 ;
                Node 
            * p ;Node * q ; Node * r ; Node * h; 
                
            if(h1->data <= h2->data)
                
            {
                  p 
            = h1 ; q = h2 ;
                }
             else{
                  p 
            = h2 ; q = h1 ;
                }
             
                r 
            = p ;
                
            while(p && q)
                
            {
                  
            while(p && p->data <= q->data)   
                   
            {
                     h 
            = p ;
                     p 
            = p->next ;
                   }

                   
            if(p){
                     h
            ->next = q ; 
                     Node 
            * tmp = q->next ;
                     q
            ->next = p ;
                     q 
            = tmp ;
                     h 
            = h->next ;
                  }
            else
                     h
            ->next = q ;
                     
            return r ;    
                  }
                 
                }

                   
            return r ;
              }
              
               

              
            void output(Node * h)
              
            {
                 
            while(h)
                 
            {
                   cout
            <<h->data<<"  ";
                   h 
            = h->next ;
                 }

              }


              
            int main()
              
            {
                 
                  Node 
            * h1 = 0 ;
                  Node 
            * h2 = 0 ;
                  buildlist(h1) ; 
                  buildlist(h2) ;
                  Node 
            * r = 0  ;
                  r 
            = merge(h1 , h2) ;
                  output(r) ;
                  getchar() ;
                  
            return 0 ;
              }


               

             












                   
                           

            posted on 2011-06-15 10:54 kahn 閱讀(288) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久不见久久见免费影院www日本| 亚洲午夜久久久久妓女影院| 国产叼嘿久久精品久久| 久久亚洲高清综合| 日韩人妻无码一区二区三区久久| 精品久久久无码人妻中文字幕豆芽| 伊人久久综在合线亚洲2019 | 亚洲欧美成人久久综合中文网| 精品伊人久久大线蕉色首页| .精品久久久麻豆国产精品| 欧洲国产伦久久久久久久| 国产成人精品久久免费动漫| 韩国三级中文字幕hd久久精品 | 精品精品国产自在久久高清| 日产久久强奸免费的看| 国产精品18久久久久久vr | 99久久免费国产精品热| 久久综合亚洲色HEZYO社区| 国产福利电影一区二区三区久久久久成人精品综合 | 超级97碰碰碰碰久久久久最新| 国产成人久久精品一区二区三区 | 狠狠色婷婷综合天天久久丁香| 亚洲精品无码久久千人斩| 亚洲精品99久久久久中文字幕| 日本福利片国产午夜久久| 久久国产乱子伦免费精品| 久久久久久综合网天天| 国产一区二区久久久| 亚洲国产日韩欧美综合久久| 欧美久久天天综合香蕉伊| 亚洲国产精品久久| 久久国产精品-久久精品| 欧美久久综合性欧美| 久久精品国产精品青草app| 99久久精品国产高清一区二区| 欧美黑人又粗又大久久久| 亚洲AV无码久久寂寞少妇| 亚洲国产精品一区二区久久hs| 亚洲狠狠婷婷综合久久久久| 777米奇久久最新地址| 72种姿势欧美久久久久大黄蕉|