當前位置:學問谷 >

校園範例 >考試 >

內部資料 門户網站應聘考試曝光(百度篇)

內部資料 門户網站應聘考試曝光(百度篇)

內部資料:門户網站應聘考試曝光(百度篇)

內部資料 門户網站應聘考試曝光(百度篇)

先看看關於百度的筆試題。希望給大家點啟發。

一、選擇題:15 分 共 10 題

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

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 的內存地址位於:

A. 已初始化數據段 B.未初始化數據段 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. 以下哪種不是基於組件的開發技術_____。

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]tr + 32 );

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

A. 32 B. 114 C. 120 D. 1112

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

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 指針會有什麼結果,並請解釋。

考察點:導致文件描述符結構中指針指向的內存被重複釋放,進而導致一些不可預期的異常。

2. (15 分)下面一段代碼,想在調用 f2(1) 時打印 err1,調用 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. 求符合指定規則的數。

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

定義數 A:數 A 找不到一個數 B 可以由 d(B)=A,即 A 不能由其他數生成。現在要寫程序,找出 1 至 10000 裏的所有符合數 A 定義的`數。

輸出:

1

3

四、設計題:35 分 共 1 題

注意:請儘可能詳細描述你的數據結構、系統架構、設計思路等。建議多寫一些偽代碼或者流程説明。

1. 假設一個 mp3 搜索引擎收錄了 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 個。

為獲得最佳性能,請説明設計的數據結構、搜索算法,以及資源消耗。如果系統數據量擴大,該如何多機分佈處理?

百度第二套

一、選擇題:15 分 共 10 題

1. 已知一個線性表(38,25,74,63,52,48),採用的散列函數為 Hash($Key)=$Key mod 7,將元素散列到表長為7的哈希表中存儲。請選擇後面兩種衝突解決方法分別應用在該散列表上進行等概率查找的平均查找長度,拉鍊法 ,線性探測法 .

A. 1.0 B. 1.5 C. 1.7 D. 2.0 E. 2.3

F. 7/6 G. 4/3 H. 3/2

2. 需要將OS緩衝區的數據刷新到硬盤,可以調用的函數有(多選):

sh() B. fsync() C. sync() ev()

3. 下面哪個shell語句不能打印出用户主目錄的路徑?

A. echo "$HOME" B. echo ~

C. echo `$HOME` D. echo $HOME

4. 最壞情況下,合併兩個大小為n的已排序數組所需要的比較次數

A.2n B.2n-1 C.2n+1 D.2n-2

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

A. 240 B. 255 C.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

7. 內存的速度遠遠高於磁盤速度,所以為了解決這個矛盾,可以採用:

A 並行技術 B 虛存技術 C 緩衝技術 D 通道技術

8. 以下代碼打印的結果是(假設運行在i386系列計算機上):

struct st_t

{

int status;

short* pdata;

char errstr[32];

};

st_t st[16];

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

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

A 32 B 114

C 120 D 1112

9. 同一進程下的線程可以共享以下

A. stack B. data section

C. register set D. thread ID

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

A 找最大、最小值 B 計算算術平均值

C 找中間值 D 找出現次數最多的值

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

1. (6分)下面是一個http請求:

GET /baidu/blog/item/ HTTP/1.1

Host:

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:) Gecko/20060728 Firefox/

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

Accept-Language: zh-cn,zh;q=0.5

Accept-Encoding: gzip,deflate

Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

Referer:

Cookie: BAIDUID=AFB70E986AC48B336ABAB7505CDD1C76;

請解釋以下各字段基本含義: Host、User-Agent、Accept-Charset、Connection、Referer、Cookie

2. (14分)函數A將字符串str1轉成小寫,並打印出轉化前後的字符串。另外,改錯時不能函數的接口和主要思路。改錯時,請指出行號。

1 #include

2 #include

3

4

5 char* str1 = "ABDFLjlero我們都是saf";

6

7 char* ToLower(char s[])

8 {

9 static size_t i=sizeof(s);

10

11 for (i; i>=0; i--) {

12 if (s>"A" && s<"Z") {

13 s += 26;

14 }

15 }

16 return s;

17 }

18

19 int A()

20 {

21 printf("old str[%s] after lower[%s]n", str1, ToLower(str1));

22 }

三、編程題:30分 共1題

注意:要求提供完整代碼,如果可以編譯運行酌情加分。

1. 兩個已排序的整型數組,求交集,最快算法

輸入:兩個已排序的整型數組(int a[m], b[n])

輸出:兩個數組的交集

四、設計題:35分 共1題

注意:請儘可能詳細描述你的數據結構、系統架構、設計思路等。建議多寫一些偽代碼或者流程説明。

1. 考慮一個字符串替換的過程,在一個文本文件中含有一些文本內容和一些需要替換的變量,變量的格式為“$Var$”,原來的“$”使用“$$”進行轉義,原來的“$$”表示為“$$$”。我們將含有變量的文件稱為模板(文件名為t),文本文件的平均長度為100K。另外,還有一系列的變量文件,裏面為變量名和變量值的對應關係(文件名為1.v , 2.v… n.v),每個變量文件包含的變量數在百萬數量級,且變量排列次序不定。現要求將,模板裏的變量分別用變量文件裏的變量替換,並將生成的文件寫成 (1.r, 2.r… n.r)。


  • 文章版權屬於文章作者所有,轉載請註明 https://xuewengu.com/flxy/kaoshi/3q57k6.html