[計算機] 百度筆試題
百度筆試題
一、選擇題:15分 共10題
1. 在排序方法中,關鍵碼比較次數(shù)與記錄地初始排列無關的是 .
A. Shell排序 B. 歸并排序 C. 直接插入排序 D. 選擇排序
2. 以下多線程對int型變量x的操作,哪幾個需要進行同步:
A. x=y; B. x++; C. ++x; D. x=1;
3. 代碼
void func() {
static int val;
…
}
中,變量val的內(nèi)存地址位于:
A. 已初始化數(shù)據(jù)段 B.未初始化數(shù)據(jù)段 C.堆 D.棧
4. 同一進程下的線程可以共享以下
A. stack B. data section
C. register set D. thread ID
5. TCP和IP分別對應了 OSI中的哪幾層?
A. Application layer
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 100 D 200 E 400
7. 以下哪種不是基于組件的開發(fā)技術_____。
A XPCOM B XP C COM D CORBA
8. 以下代碼打印的結果是(假設運行在i386系列計算機上):
struct st_t
{
int status;
short* pdata;
char errstr[32];
};
st_t st[16];
char* p = (char*)(st[2].errstr + 32);
printf("%d", (p - (char*)(st)));
A 32 B 114
C 120 D 1112
9. STL中的哪種結構是連續(xù)形式的存儲
A map B set C list D vector
10. 一個棧的入棧序列是A,B,C,D,E,則棧的不可能的輸出序列是( )
A、EDCBA; B、DECBA; C、DCEAB; D、ABCDE
二、簡答題:20分,共2題
1. (5分)重復多次fclose一個打開過一次的FILE *fp指針會有什么結果,并請解釋。
考察點:導致文件描述符結構中指針指向的內(nèi)存被重復釋放,進而導致一些不可預期的異常。
2. (15分)下面一段代碼,想在調(diào)用f2(1)時打印err1,調(diào)用f2(2)時打印err4,但是代碼中有一些問題,請做盡可能少的修改使之正確。
1 static int f1(const char *errstr, unsigned int flag) {
2 int copy, index, len;
3 const static char **__err = {“err1”, “err2”, “err3”, “err4”};
4
5 if(flag & 0x10000)
6 copy = 1;
7 index = (flag & 0x300000) >> 20;
8
9 if(copy) {
10 len = flag & 0xF;
11 errstr = malloc(len);
12 if(errstr = NULL)
13 return -1;
14 strncpy(errstr, __err[index], sizeof(errstr));
15 } else
16 errstr = __err + index;
17 }
18
19 void f2(int c) {
20 char *err;
21
22 swtch(c) {
23 case 1:
24 if(f1(err, 0x110004) != -1)
25 printf(err);
26 case 2:
27 if(f2(err, 0x30000D) != -1)
28 printf(err);
29 }
30 }
三、編程題:30分 共1題
注意:要求提供完整代碼,如果可以編譯運行酌情加分。
1. 求符合指定規(guī)則的數(shù)。
給定函數(shù)d(n) = n + n的各位之和,n為正整數(shù),如 d(78) = 78+7+8=93。 這樣這個函數(shù)可以看成一個生成器,如93可以看成由78生成。
定義數(shù)A:數(shù)A找不到一個數(shù)B可以由d(B)=A,即A不能由其他數(shù)生成,F(xiàn)在要寫程序,找出1至10000里的所有符合數(shù)A定義的數(shù)。
輸出:
1
3
…
四、設計題:35分 共1題
注意:請盡可能詳細描述你的數(shù)據(jù)結構、系統(tǒng)架構、設計思路等。建議多寫一些偽代碼或者流程說明。
1. 假設一個mp3搜索引擎收錄了2^24首歌曲,并記錄了可收聽這些歌曲的2^30條URL,但每首歌的URL不超過2^10個。系統(tǒng)會定期檢查這些URL,如果一個URL不可用則不出現(xiàn)在搜索結果中,F(xiàn)在歌曲名和URL分別通過整型的SONG_ID和URL_ID唯一確定。對該系統(tǒng)有如下需求:
1) 通過SONG_ID搜索一首歌的URL_ID,給出URL_ID計數(shù)和列表
2) 給定一個SONG_ID,為其添加一個新的URL_ID
3) 添加一個新的SONG_ID
4) 給定一個URL_ID,將其置為不可用
限制條件:內(nèi)存占用不超過1G,單個文件大小不超過2G,一個目錄下的文件數(shù)不超過128個。
為獲得最佳性能,請說明設計的數(shù)據(jù)結構、搜索算法,以及資源消耗。如果系統(tǒng)數(shù)據(jù)量擴大,該如何多機分布處理? 參考答案:D ABC A BC EG D B C D C