2014 百度筆試題二

2021-06-18 17:20:45 字數 3446 閱讀 9279

一、選擇題:15 分 共 10 題

1. 在排序方法中,關鍵碼比較次數與記錄地初始排列無關的是:

a.shell 排序 b. 歸併排序 c. 直接插入排序 d. 選擇排序

2. 以下多執行緒對 int 型變數x的操作,哪幾個需要進行同步:

a. x=y;b. x++;c. ++x; d. x=1;

3. **

void func()

中,變數 val 的記憶體位址位於:

a.已初始化資料段 b.未初始化資料段 c.堆 d.棧

4. 同一程序下的執行緒可以共享以下:

a. stackb. data section c. register set d. thread id

5. tcp 和 ip 分別對應了 osi 中的哪幾層?

b. data link layer

c. presentation layer

d. physical layer

e. transport layer

f. session layer

g.network layer

6. short a[100],sizeof(a) 返回?

a. 2 b. 4 c. 100d. 200 e. 400

7. 以下哪種不是基於元件的開發技術_____。

a. xpcomb. xp c. com d. corba

8. 以下**列印的結果是(假設執行在 i386 系列計算機上):

字串2struct st_t

;st_t st[16];

char *p = (char *)( st[2].errstr + 32 );

printf( "%d", ( p - (char *)(st) ) );

a. 32 b. 114 c. 120 d. 1112

選擇 c,因為st[2]的起始位址比st[0]的起始位址高80位,

st[2].errstr的起始位址比st[2]的起始位址高8位

再加上32位就等於 120.

9. stl 中的哪種結構是連續形式的儲存:

a. map b. set c. listd.vector

10. 乙個棧的入棧序列是 a,b,c,d,e,則棧的不可能的輸出序列是:

a. edcba b. decbac. dceab d. abcde

二、簡答題:20 分,共 2 題

1. (5 分)重複多次 fclose 乙個開啟過一次的 file *fp 指標會有什麼結果,並請解釋。

導致 fp 所指的檔案被多次釋放, 導致不可預期的後果.

5. 乙個b類網的子網掩碼是255.255.240.0,這個子網能擁有的最大主機數是:

a. 240 b. 255c.4094 d. 65534

6. 以下**執行後,val的值是___:

unsigned long val = 0;

char a = 0x48;

char b = 0x52;

val = b << 8 | a;

a 20992 b 21064 c 72 d 0

選擇 b,b 的十進位制為 82,二進位制為 101,0010

b 左移 8 位為 101,0010,0000,0000

a 的十進位制為 72, 二進位制為 100,1000

b<<8 | a 為 21064

7. 記憶體的速度遠遠高於磁碟速度,所以為了解決這個矛盾,可以採用:

a 並行技術 b 虛存技術c緩衝技術 d 通道技術

9. 同一程序下的執行緒可以共享以下

a. stackb.data section

c. register set d. thread id

10. 以下哪種操作最適合先進行排序處理?

a找最大、最小值 b 計算算術平均值

c 找中間值 d 找出現次數最多的值

二、簡答題:20 分,共 2 題

1. (5 分)重複多次 fclose 乙個開啟過一次的 file *fp 指標會有什麼結果,並請解釋。

考察點:導致檔案描述符結構中指標指向的記憶體被重複釋放,進而導致一些不可預期的異常。

2. (15 分)下面一段**,想在呼叫 f2(1) 時列印 err1,呼叫 f2(2) 時列印 err4,但是**中有一些問題,請做盡可能少的修改使之正確。

1 static int f1( const char *errstr, unsigned int flag ) ;

45   if( flag & 0x10000 )

6    copy = 1;

7   index = ( flag & 0x300000 ) >> 20;

89   if( copy ) else

16     errstr = __err + index;

17 }

1819 void f2( int c )

30 }

三、程式設計題:30 分 共 1 題

1. 求符合指定規則的數。

給定函式 d(n) = n + n 的各位之和,n 為正整數,如 d(78) = 78+7+8=93。 這樣這個函式可以看成乙個生成器,如 93 可以看成由 78 生成。

定義數 a:數 a 找不到乙個數 b 可以由 d(b)=a,即 a 不能由其他數生成。現在要寫程式,找出 1 至 10000 裡的所有符合數 a 定義的數。

輸出:13…

四、設計題:35 分 共 1 題

注意:請盡可能詳細描述你的資料結構、系統架構、設計思路等。建議多寫一些偽**或者流程說明。

1. 假設乙個 *** 搜尋引擎收錄了 2^24 首歌曲,並記錄了可收聽這些歌曲的 2^30 條 url,但每首歌的 url 不超過 2^10 個。系統會定期檢查這些 url,如果乙個 url 不可用則不出現在搜尋結果中。現在歌曲名和 url 分別通過整型的 song_id 和 url_id 唯一確定。對該系統有如下需求:

1) 通過 song_id 搜尋一首歌的 url_id,給出 url_id 計數和列表

2) 給定乙個 song_id,為其新增乙個新的 url_id

3) 新增乙個新的 song_id

4) 給定乙個 url_id,將其置為不可用

限制條件:記憶體占用不超過 1g,單個檔案大小不超過 2g,乙個目錄下的檔案數不超過 128 個。

為獲得最佳效能,請說明設計的資料結構、搜尋演算法,以及資源消耗。如果系統資料量擴大,該如何多機分布處理?

2014百度筆試題

演算法題 給出乙個資料 a a 0,a 1,a 2,a n 其中n 可變 列印出該數值元素的所有組合。注 此題要求輸出的是所有的組合,並非所有排列。思路 陣列中的每乙個數對應乙個標誌位,將標誌位陣列中的每個元素看成是乙個只能為0或1的元素,將這個標誌位陣列從1迴圈到2 n 1,每次迭代加1,迭代過程...

2014百度筆試題

師兄給的筆試機會,一共7道題 一.基礎知識題 1.動態鏈結庫和靜態鏈結庫的優缺點 2.輪詢排程和搶占式排程的區別 3.資料庫中常用鎖和應用場景 二.演算法和程式設計題 4.乙個正整數n,求乙個不小於n的不重複數,不重複數是指相鄰兩位不同,如1101是重複數,而1091不是重複數 5.求乙個字串的最長...

2014百度校招筆試題

二 演算法與程式設計題 本題共45分 1.使用c c 編寫函式,實現字串反轉,要求不使用任何系統函式,且時間複雜度最小,函式原型 char reverse str char str 15分 演算法實現 實現字串翻轉 char reverse str char str char begin char ...