2010實習生筆試題

2021-06-06 01:46:22 字數 3378 閱讀 9984

1.已知兩個鍊錶head1和head2各自有序,請把它們合併成乙個有序鍊錶,要求用遞迴方法進行。

[cpp]view plain

copy

#include 

#include 

using

namespace std;  

struct node  

;  node * make_link();  

void display(node *);  

void sort(node *);  

node * merge(node *,node *);  

int main()  

node * make_link()  

return head;  

}  void display(node *head)  

cout << endl;  

}  void sort(node *head)  

cur2 = cur2->next;  

}  int tem = cur->value;  

cur->value = min->value;  

min->value = tem;  

cur = cur->next;  

}  }  

node * merge(node *h1,node *h2)  

else  

}  }   2.

給定乙個二叉樹,節點結構為struct node,其中left、right為左右節點指標,next暫為空指標,寫出函式,輸入乙個頭結點指標,使得二叉樹被層遍歷(level-by-level transversal)。用next指標鏈結並返回頭結點指標。演算法時間複雜度要求為o(n),空間複雜度要求為o(1)。

3.邏輯推理題(誰是小偷)警察局抓了 a b c d四名偷竊嫌疑犯,其中乙個是小偷,

a 說:我不是小偷

b 說:c是小偷

c說: 小偷肯定是d

d說: c冤枉人

已知四人中有三個人說了真話,一人說了假話。問到底誰是小偷?

請編寫一段**得出結果。(c或c++)

[cpp]view plain

copy

#include

#include

main()  

else  //因為這個是對其他真假話的判斷,會影響下面的判斷,所以要放最前面

if (h[1]==1)  else   

if (h[2]==1)  else   

if (h[3]==1)  else   

if ((a[1]+a[2]+a[3]+a[4])==1) //等於1就是只有1個小偷,其他都是0(不是小偷) 

//輸出小偷

}  }   

}  getch();  

return 0;  

}  

4.inline函式的作用是

內聯函式在每個呼叫點上被展開 因此 這樣做可以消除函式呼叫相關的額外消耗

5.某32位系統下, c++程式,請計算sizeof 的值(5分).

char str = ""

char *p = str ;

int n = 10;

請計算sizeof (str ) = ?(1)

sizeof ( p ) = ?(2)

sizeof ( n ) = ?(3)

void foo ( char str[100])

void *p = malloc( 100 );

請計算sizeof ( p ) = ?(5)

答:(1)17 (2)4 (3) 4 (4)4 (5)4

6.鍊錶逆轉

[cpp]view plain

copy

"font-size:10px;">#include 

using

namespace std;  

struct node  

;  void invert(node *&head)  

head = q;  

}  int main()    

7.求輸出

(巨集展開:你是什麼我就展開成什麼)

[cpp]view plain

copy

#include 

using

namespace std;  

#define probe(x) (x * x)

int main()    

[cpp]view plain

copy

#include 

using

namespace std;  

#define probe(x) (x * x)

int main()    

8.11、 下面對列舉型別的描述正確的是_________。

a)列舉型別的定義為:enum day;

b)在c++語言中,使用者自定義的列舉型別的第乙個常量的預設值是1

c)可以定義如下列舉型別:enum ;

d)以上說法都不正確

9.extern 的作用

extern關鍵字的作用是什麼? (d)

a. 宣告外部鏈結 b. 宣告外部標頭檔案引用

c. 宣告使用擴充套件c++語句 d. 宣告外部成員函式、成員資料。

[cpp]view plain

copy

#include 

using

namespace std;  

void test(int a)  

int main()  

void test()    

[cpp]view plain

copy

//宣告了某個變數,之後使用的就是這個變數

#include 

using

namespace std;  

int count = 3;  

int main(void)  

sum += count;  

}  printf("%d %d\n",count, sum);  

return 0;  

}  

10.下面關於建構函式和析構函式的描述,錯誤的是_________。 

a) 析構函式中呼叫虛函式採用靜態聯編

b) 對虛析構函式的呼叫可以採用動態聯編

c) 當基類的析構函式是虛函式時,其派生類的析構函式也一定是虛函式 (?只有虛函式才可以動態繫結)

d) 建構函式可以宣告為虛函式

百度2010實習生招聘筆試題

a卷 共三道大題 請先閱讀卷首的試卷說明,在a b卷選擇一套試卷作答,同時作答試卷無效 第一題 簡答題 1 簡要說明樹的深度優先 廣度優先遍歷演算法,及非遞迴實現的特點。2 在處理磁碟資料時,需要首先將其讀入記憶體才能進行處理。如果要讀取的資料已經在記憶體中,則可以直接訪問記憶體。通常來說記憶體是有...

實習生筆試

這幾天參加過幾場筆試。讓我對筆試有了新的認識。無論是前端,還是後端,最開始的筆試都只是乙個簡單的測試,測試你的邏輯思維能力,演算法能力。單項選擇題基本上是一些計算機的基礎題目,包括網路協議 http tcp ip 記憶體 暫存器。程式的設計。而程式設計題目是一些簡單的演算法題目,不會太難,但是反映的...

騰訊實習生筆試題

一 單項選擇題 1 給定3個int型別的正整數x,y,z,對如下4組表示式判斷正確的選項 int a1 x y z int b1 x y z int a2 x z y int b2 x z y int c1 x z int d1 x y z int c2 x z a a1一定等於a2 b b1一定定...