- 相關(guān)推薦
百度筆試題及答案
這是由百度公司發(fā)布的2011年筆試真題及答案公布,請(qǐng)您對(duì)下文進(jìn)行了解:
一、選擇題:15 分 共 10 題
1. 在排序方法中,關(guān)鍵碼比較次數(shù)與記錄地初始排列無(wú)關(guān)的是:
A. Shell 排序 B. 歸并排序 C. 直接插入排序 D. 選擇排序
選擇 A
2. 以下多線程對(duì) int 型變量x的操作,哪幾個(gè)需要進(jìn)行同步:
A. x=y; B. x++; C. ++x; D. x=1;
選擇 B, C
3. 代碼
void func()
{
static int val;
…
}
中,變量 val 的內(nèi)存地址位于:
A. 已初始化數(shù)據(jù)段 B.未初始化數(shù)據(jù)段 C.堆 D.棧
選擇 A
4. 同一進(jìn)程下的線程可以共享以下:
A. stack B. data section C. register set D. thread ID
選擇 A, B
5. TCP 和 IP 分別對(duì)應(yīng)了 OSI 中的哪幾層?
A. Application layer
B. Data link layer
C. Presentation layer
D. Physical layer
E. Transport layer
F. Session layer
G. Network layer
選擇 EG
6. short a[100],sizeof(a) 返回?
A. 2 B. 4 C. 100 D. 200 E. 400
選擇 D
7. 以下哪種不是基于組件的開(kāi)發(fā)技術(shù)_____。
A. XPCOM B. XP C. COM D. CORBA
選擇 B
8. 以下代碼打印的結(jié)果是(假設(shè)運(yùn)行在 i386 系列計(jì)算機(jī)上):
字串2
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
選擇 C,因?yàn)閟t[2]的起始地址比st[0]的起始地址高80位,
st[2].errstr的起始地址比st[2]的起始地址高8位
再加上32位就等于 120.
9. STL 中的哪種結(jié)構(gòu)是連續(xù)形式的存儲(chǔ):
A. map B. set C. list D. vector
選擇 D
10. 一個(gè)棧的入棧序列是 A,B,C,D,E,則棧的不可能的輸出序列是:
A. EDCBA B. DECBA C. DCEAB D. ABCDE
選擇 C
二、簡(jiǎn)答題:20 分,共 2 題
1. (5 分)重復(fù)多次 fclose 一個(gè)打開(kāi)過(guò)一次的 FILE *fp 指針會(huì)有什么結(jié)果,并請(qǐng)解釋。
導(dǎo)致 fp 所指的文件被多次釋放, 導(dǎo)致不可預(yù)期的后果.
5. 一個(gè)B類(lèi)網(wǎng)的子網(wǎng)掩碼是255.255.240.0,這個(gè)子網(wǎng)能擁有的最大主機(jī)數(shù)是:
A. 240 B. 255 C.4094 D. 65534
6. 以下代碼執(zhí)行后,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 的十進(jìn)制為 82,二進(jìn)制為 101,0010
b 左移 8 位為 101,0010,0000,0000
a 的十進(jìn)制為 72, 二進(jìn)制為 100,1000
b<<8 | a 為 21064
7. 內(nèi)存的速度遠(yuǎn)遠(yuǎn)高于磁盤(pán)速度,所以為了解決這個(gè)矛盾,可以采用:
字串2
A 并行技術(shù) B 虛存技術(shù) C 緩沖技術(shù) D 通道技術(shù)
9. 同一進(jìn)程下的線程可以共享以下
A. stack B. data section
C. register set D. thread ID
選擇 B,C
10. 以下哪種操作最適合先進(jìn)行排序處理?
A 找最大、最小值 B 計(jì)算算術(shù)平均值
C 找中間值 D 找出現(xiàn)次數(shù)最多的值
選擇 A
一、選擇題:15 分 共 10 題
1. 在排序方法中,關(guān)鍵碼比較次數(shù)與記錄地初始排列無(wú)關(guān)的是:
A. Shell 排序 B. 歸并排序 C. 直接插入排序 D. 選擇排序
2. 以下多線程對(duì) int 型變量x的操作,哪幾個(gè)需要進(jìn)行同步:
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. 同一進(jìn)程下的線程可以共享以下:
A. stack B. data section C. register set D. thread ID
5. TCP 和 IP 分別對(duì)應(yīng)了 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. 以下哪種不是基于組件的開(kāi)發(fā)技術(shù)_____。
A. XPCOM B. XP C. COM D. CORBA
8. 以下代碼打印的結(jié)果是(假設(shè)運(yùn)行在 i386 系列計(jì)算機(jī)上):
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 中的哪種結(jié)構(gòu)是連續(xù)形式的存儲(chǔ):
A. map B. set C. list D. vector
10. 一個(gè)棧的入棧序列是 A,B,C,D,E,則棧的不可能的輸出序列是:
A. EDCBA B. DECBA C. DCEAB D. ABCDE
二、簡(jiǎn)答題:20 分,共 2 題
1. (5 分)重復(fù)多次 fclose 一個(gè)打開(kāi)過(guò)一次的 FILE *fp 指針會(huì)有什么結(jié)果,并請(qǐng)解釋。
考察點(diǎn):導(dǎo)致文件描述符結(jié)構(gòu)中指針指向的內(nèi)存被重復(fù)釋放,進(jìn)而導(dǎo)致一些不可預(yù)期的異常。
2. (15 分)下面一段代碼,想在調(diào)用 f2(1) 時(shí)打印 err1,調(diào)用 f2(2) 時(shí)打印 err4,但是代碼中有一些問(wèn)題,請(qǐng)做盡可能少的修改使之正確。
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 題
注意:要求提供完整代碼,如果可以編譯運(yùn)行酌情加分。
1. 求符合指定規(guī)則的數(shù)。
給定函數(shù) d(n) = n + n 的各位之和,n 為正整數(shù),如 d(78) = 78+7+8=93。 這樣這個(gè)函數(shù)可以看成一個(gè)生成器,如 93 可以看成由 78 生成。
定義數(shù) A:數(shù) A 找不到一個(gè)數(shù) B 可以由 d(B)=A,即 A 不能由其他數(shù)生成,F(xiàn)在要寫(xiě)程序,找出 1 至 10000 里的所有符合數(shù) A 定義的數(shù)。
輸出:
1
3
…
四、設(shè)計(jì)題:35 分 共 1 題
注意:請(qǐng)盡可能詳細(xì)描述你的數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)架構(gòu)、設(shè)計(jì)思路等。建議多寫(xiě)一些偽代碼或者流程說(shuō)明。
1. 假設(shè)一個(gè) mp3 搜索引擎收錄了 2^24 首歌曲,并記錄了可收聽(tīng)這些歌曲的 2^30 條 URL,但每首歌的 URL 不超過(guò) 2^10 個(gè)。系統(tǒng)會(huì)定期檢查這些 URL,如果一個(gè) URL 不可用則不出現(xiàn)在搜索結(jié)果中,F(xiàn)在歌曲名和 URL 分別通過(guò)整型的 SONG_ID 和 URL_ID 唯一確定。對(duì)該系統(tǒng)有如下需求:
1) 通過(guò) SONG_ID 搜索一首歌的 URL_ID,給出 URL_ID 計(jì)數(shù)和列表
2) 給定一個(gè) SONG_ID,為其添加一個(gè)新的 URL_ID
3) 添加一個(gè)新的 SONG_ID
4) 給定一個(gè) URL_ID,將其置為不可用
限制條件:內(nèi)存占用不超過(guò) 1G,單個(gè)文件大小不超過(guò) 2G,一個(gè)目錄下的文件數(shù)不超過(guò) 128 個(gè)。
為獲得最佳性能,請(qǐng)說(shuō)明設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)、搜索算法,以及資源消耗。如果系統(tǒng)數(shù)據(jù)量擴(kuò)大,該如何多機(jī)分布處理?
【百度筆試題及答案】相關(guān)文章:
百度筆試題目及答案07-22
海爾04年筆試題及答案07-31
迅雷2011.10.21筆試題08-10
中興2015筆試題08-02
PHP筆試題及答案07-20
最新photoshop試題及答案10-25
java筆試題及答案07-28
oracle筆試題及答案08-16
面試的經(jīng)典試題及答案08-03