來一篇新鮮的招聘筆試題(2014秋招版)

                                                              騰訊2014校園招聘筆試試題算法

 歡迎以正常的心態來,瀏覽這裏的共享的知識!,也歡迎吐槽!指點一二!數據庫

1  已知一顆二叉樹,若是先序遍歷的節點順序是:ADCEFGHB ,中序遍歷是:CDFEGHAB ,則後續遍歷的結果爲:數組

      A. CFHGEBDA        B. CDFEGHBA        C.  FGHCDEBA      D. CFHGEDBA瀏覽器

分析:服務器

        考點,    樹的遍歷 ,  先序  ,中序  ,後序 。各類遍歷..網絡

          (1) . 前序遍歷,也叫先根遍歷,遍歷的順序是,根,左子樹,右子樹。         數據結構

          (2) . 中序遍歷 , 也叫中根遍歷,順序是 左子樹,根,右子樹。socket

          (3) . 後序遍歷,也叫後根遍歷,遍歷順序,左子樹,右子樹,根。函數

     因而乎,不可貴出....後序遍歷:CFHGEDBA ,於是答案選擇: D性能

   2.  下列哪兩個數據結構,同時具備較高的查找和刪除性能: ___________

        A.  有序數組 ,  B .  有序鏈表  , C  AVL樹  ,  D.  Hash表

      分析: 下面是幾種數據結構查找與刪除的性能對照表:

    

 其實不用上訴資料,本身也應該清楚:

          有序數組 ,有序鏈表 ,遍從來查找和刪除。  時間複雜度爲O(n);

         平衡樹: 採用二分的技術查找,以及Hash表,有特定的算法構成,位置都比較明顯的定位

     於是答案很定爲:  CD

    3 下列排序算法中,哪些時間複雜度不會超過nlogn?()

        A.快速排序     B.堆排序        C.歸併排序      D.冒泡排序

    分析:

           冒泡的 複雜度爲 O(n^2)

          快速排序: 平均是O(nlogn)  最壞爲 O(n^2)

          歸併排序: O(nlogn)

           堆排序:    O(nlogn)

           於是答案爲:    BC

      

4 初始序列爲1 8 6 2 5 4 7 3一組數採用堆排序,當建堆(小根堆)完畢時,堆所對應的二叉樹中序遍歷序列爲:(A)

      A.8 3 2 5 1 6 4 7                          B.3 2 8 5 1 4 6 7 

      C.3 8 2 5 1 6 7 4               D.8 2 3 5 1 4 7 6

      分析:     涉及到最大堆和最小堆 ,以及二叉樹的遍歷

          對於最小堆,其實就是----------頭小,根大

             

   由這樣一顆樹:  不可貴到後序序列:   83526741  於是答案爲: A

   

5 當n=5時,下列函數的返回值是:( )

  1. int foo(int n)  
  2. {  
  3.     if(n<2)return n;  
  4.     return foo(n-1)+foo(n-2);  

 A.5           B.7               C.8             D.10

         分析:  簡單的遞歸:    

            很容易寫出表達是:

                  

           答案選:    A

     6  S市A,B共有兩個區,人口比例爲3:5,據歷史統計A的犯罪率爲0.01%,B區爲0.015%,現有一塊兒新案件發生在S市,那麼案件發生在A區的可能性有多大?( )

          A.37.5%       B.32.5%          C.28.6%          D.26.1%

     分析:

             S{  A , B } ,一個案件的發生,要麼在A,要麼在B, 一句機率論:

               (1)   P(A)+P(B)=1;

            因而乎,答案爲:   ( (3/8)*0.01% )/( (3/8)*0.01%  +(5/8)*0.015%) *100%  = 28.6%   答案爲  C

      

       7  Unix系統中,哪些能夠用於進程間的通訊?(ABCD)

            A.Socket       B.共享內存       C.消息隊列       D.信號量

             socket 爲線程部分是進程的一個單位,能夠。

           而後看了下資料:

              3種System V進程通訊方式:信號量,消息隊列和共享內存

      

     8 靜態變量一般存儲在進程哪一個區?(C)

               A.棧區        B.堆區           C.全局區         D.代碼區

      

      靜態變量的修飾關鍵字:static,又稱靜態全局變量。

        靜態變量屬於靜態存儲方式,可是屬於靜態存儲方式的變量不必定就是靜態變量。

       全局區在內存中所佔的位置:

       

  9  查詢性能(B) 

      A . 在Name字段上添加主鍵  

      B . 在Name字段上添加索引

     C. 在Age字段上添加主鍵

     D. 在Age字段上添加索引

     分析:  考查數據庫,優化部分:

    

索引:對數據庫表中一列或多列的值進行排序(或構成特定的數據結構,如樹或哈希表)的一種結構,使用索引可快速訪問數據庫表中的特定信息。

    優勢:

 

  1. 經過建立惟一性索引,能夠保證數據庫表中每一行數據的惟一性
  2. 能夠大大加快數據的檢索速度
  3. 能夠加快表與表之間的鏈接
  4. 使用分組和排序子句進行檢索時,一樣能夠顯著減小查詢中分組和排序的事件
  5. 在查詢的過程當中優化隱藏器,提升系統的性能

 

 

    缺點:

 

  1. 建立和維護因此你須要耗費時間
  2. 索引須要佔物理空間,若是創建聚簇索引,須要的空間更大
  3. 表的數據更新時,索引也要動態的維護

 

    創建索引的規則:

 

 

  1. 表的主鍵、外鍵必須有索引;
  2. 數據量超過300的表應該有索引;
  3. 常常與其餘表進行鏈接的表,在鏈接字段上應該創建索引;
  4. 常常出如今Where子句中的字段,特別是大表的字段,應該創建索引;
  5. 索引應該建在選擇性高的字段上;
  6. 索引應該建在小字段上,對於大的文本字段甚至超長字段,不要建索引;
  7. 複合索引的創建須要進行仔細分析;儘可能考慮用單字段索引代替:
    •    正確選擇複合索引中的主列字段,通常是選擇性較好的字段;
    •    複合索引的幾個字段是否常常同時以AND方式出如今Where子句中?單字段查詢是否極少甚至沒有?若是是,則能夠創建複合索引;不然考慮單字段索引;
    •    若是複合索引中包含的字段常常單獨出如今Where子句中,則分解爲多個單字段索引;
    •    若是複合索引所包含的字段超過3個,那麼仔細考慮其必要性,考慮減小複合的字段;
    •    若是既有單字段索引,又有這幾個字段上的複合索引,通常能夠刪除複合索引;
  8. 頻繁進行數據操做的表,不要創建太多的索引;
  9. 刪除無用的索引,避免對執行計劃形成負面影響;

 

答案:B

    

10  IP地址131.153.12.71是一個()類IP地址。

A.A           B.B             C.C               D.D

解析:

  IP地址分類

    A類網絡的IP地址範圍爲   1.0.0.1-127.255.255.254;

    B類網絡的IP地址範圍爲:128.1.0.1-191.255.255.254;

    C類網絡的IP地址範圍爲:192.0.1.1-223.255.255.254。

   答案: B

      附上一張圖:

                     

 

      

12 下列程序的輸出是:()

  #define add(a+b) a+b  

 int main()  

  {  

      printf(「%d\n」,5*add(3+4));  

     return 0;  

}   

   A.23           B.35            C.16              D.19

   分析:

   簡單題:   對於這樣一條語句這樣作就行了     5*add(3+4)  =   5*3+4=19;  選:D

 

  

13 瀏覽器訪問某頁面,HTTP協議返回狀態碼爲403時表示:(B)

    A 找不到該頁面     ---404

    B 禁止訪問          ---403

   C 內部服務器訪問    --500

   D 服務器繁忙        ----503

     轉來的一張HTTP狀態嗎:

                            

 14   若是某系統15*4=112成立,則系統採用的是()進制。

     A.6            B.7             C.8               D.9

      因爲這是一個選擇題,那麼題目就較爲簡單了,首先咱們不可貴到15*4 =60(十進制數)

     若是是6進制:  15*4= 112 ={(6+5)*4= 1*6^2+1*6+2 =44 }  對

     答案爲:A

 

  15 某段文本中各個字母出現的頻率分別是{a:4,b:3,o:12,h:7,i:10},使用哈夫曼編碼,則哪一種是可能的編碼:(A)

      A  a(000)  b(001)  h(01)  i(10)  o(11)

      B  a(0000)  b(0001)  h(001)  o(01)  i(1)

      C  a(000)  b(001)  h(01)  i(10)  o(00)

      D  a(0000)  b(0001)  h(001)  o(000)  i(1)

   分析:  

      首先,考查huffman樹--->  最優二叉樹 ,寫出了huffman樹,咱們不可貴到huffman編碼

所以 , 

16  TCP和IP分別對應了OSI中的哪幾層?()

          A  Application layer           ----- 應用層

          B  Presentation layer        ------表示層

         C  Transport layer            ------傳輸層

         D  Network layer             -------網絡層

    介於於   傳輸層和網絡層

   答案:   CD

 

17    一個棧的入棧序列是A,B,C,D,E,則棧的不可能的輸出序列是?()

       A.EDCBA          B.DECBA          C.DCEAB       D.ABCDE

  分析:  簡單的先進後出(棧)  ,這裏就省去吧!   C

   18 同一進程下的線程能夠共享如下?(BD)

       A. stack           B.data section        C.register set     D.file fd

   解析:  這道題,不知道怎麼下手.....嗷嗷的哭去....

       線程共享的內容包括: 

  1. 進程代碼段
  2. 進程的公有數據(利用這些共享的數據,線程很容易的實現相互之間的通信)、
  3. 進程打開的文件描述符、
  4. 信號的處理器、
  5. 進程的當前目錄和
  6. 進程用戶ID與進程組ID   

    線程獨有的內容包括:

  1. 線程ID
  2. 寄存器組的值
  3. 線程的堆棧
  4. 錯誤返回碼
  5. 線程的信號屏蔽碼

19 對於派生類的構造函數,在定義對象時構造函數的執行順序爲?()

      1:成員對象的構造函數

      2:基類的構造函數

      3:派生類自己的構造函數

        A.123             B.231               C.321           D.213

    分析:

          (C++)西加加的內容:

           ----》2 1 3  答案:  D

     別人家的解析:

    當派生類中不含對象成員時

  • 在建立派生類對象時,構造函數的執行順序是:基類的構造函數→派生類的構造函數;
  • 在撤消派生類對象時,析構函數的執行順序是:派生類的構造函數→基類的構造函數。

    當派生類中含有對象成員時

    • 在定義派生類對象時,構造函數的執行順序:基類的構造函數→對象成員的構造函數→派生類的構造函數;
    • 在撤消派生類對象時,析構函數的執行順序:派生類的構造函數→對象成員的構造函數→基類的構造函數。

   

21 遞歸函數最終會結束,那麼這個函數必定?()

 

  A 使用了局部變量

 

  B 有一個分支不調用自身

 

  C 使用了全局變量或者使用了一個或多個參數 

 

  D 沒有循環調用

    依據多年的調試代碼經驗 ,答案:  B  

22 編譯過程當中,語法分析器的任務是()

     A 分析單詞是怎樣構成的

    B 分析單詞串是如何構成語言和說明的

    C 分析語句和說明是如何構成程序的

   D 分析程序的結構

 答案:  B

/--------------------------------------------------------------------------------------------------------------------------/

23 同步機制應該遵循哪些基本準則?(ABCD)

A.空閒讓進        B.忙則等待        C.有限等待        D.讓權等待

解析:  不知道怎麼作,就看看別人家的解釋吧!

    同步機制應該遵循的基本準則

 
 
  • 空閒讓進:當無進程處於臨界區時,代表臨界資源處於空閒狀態,容許一個請求進入臨界區的進程當即進入臨界區,以有效利用臨界資源
  • 忙則等待:當已有進程處於臨界區時,代表臨界資源正在被訪問,於是其餘試圖進入臨界區的進程必須等待,以保證對臨界資源的互斥訪問
  • 有限等待:對要求訪問臨界資源的進程,應保證在有限時間內能進入本身的臨界區,以避免陷入「死等」狀態
  • 讓權等待:當進程不能進入本身的臨界區時,應當即釋放處理機,以避免進程陷入「忙等」狀態
 2四、
相關文章
相關標籤/搜索