百度筆試題一

不定項選擇題。

線程與進程比較而言,下面論述成立的有()

A.      一個線程可以有多個進程組成

B.      一個進程可以有多個線程組成

C.      相對而言,線程運行需要更多的資源

D.     線程比進程運行需要更少的系統資源

2.13*16=244在使用_______進制時成立()

A.6

B.11

C.9

D.7

E.8

3.以下的C程序代碼片段運行後C和d的值分別是多少()

Int a =1,b =2;

Int c,d;

C =(a&b)&&a;

d =(a&&b)&a;

     A.0,0

     B.0,1

     C.1,0

    D.1,1

4.假設局域網中子網掩碼是255.255.0.0,那麼在這個局域網中哪些IP地址是可用的?()

A.192.168.0.0

B.192.168.0.1

C.192.168.255.1

D.192.168.255.255

5.給定數列(541,132,982,746,518,181,946,314,205,827)按照從小到大的順序排列,採用冒泡排序時,第一趟掃描結果是();採用直接選擇大值開始排序時,第一趟掃描結果是();採用快速排序(以中間元素518爲基準)的第一趟掃描結果是()。

A.(541,132,827,746,518,181,946,314,205,984)

B.(205,132,314,181,518,746,946,984,541,827)

C.(132,541,746,984,181,518,314,946,205,827)

6.有若干5g和7g的砝碼,任何大於()克都能夠用5g和7g的砝碼組合出。

A.35

B.23

C.12

D.53

7.93486781634*22349659874=___________6(30秒)

8.在Linux系統中,對命令“In file 1 file2”描述正確的是?()

A.建立軟鏈接file1,並指向file2

B. 建立硬鏈接file1,並指向file2

C. 建立軟鏈接file2,並指向file1

D. 建立硬鏈接file2,並指向file1

9.在Shell編程中,下面哪個表示上一步所運行程序的返回值?()

A.   $#

B. $(後一字符打不出來可以描述一下‘S下面在加一點’)

C. $&

D. $!

 

編程和測試設計題(2道)

(一)   簡述:實現一個函數,對一個正整數n,算得到1需要的最少操作次數:

如果n爲偶數,將其處以2;

如果n爲奇數,可以加1或減1;

一直處理下去。

例子:

   ret = func(7);

   ret = 4,可以證明最少需要4次運算

   n = 7

   n--6

   n/2 3

   n/2 2

   n++ 1

      要求:實現函數(實現儘可能高效)

Int func(unsign int n);n爲輸入,返回最小的運算次數。

給出思路(文字描述),完成代碼,並分析你算法的時間複雜度。

請列舉測試方法和思路

 

(二)   簡述:IP防火牆

Security公司的網絡管理工程師Mr. leak最近發現有不少來自公司外部IP的請求,試圖非法訪問公司內部資源,爲了不影響數據訪問流程。他不得不寫一個高效的程序——一個工作在Ipv4上的防火牆,如果請求來自非授權的ip地址,則將請求丟棄。爲了便於管理,通過文本文件IP.TXT來配置授權的IP地址,文件格式爲每行(’/n’)一個IP地址(或IP段),範圍不超過一個B類。例如:

162.105.91.163

59.66.105.0 59.66.105.255

211.71.0.0 211.71.255.255

限制:IP段的起止地址間以空格隔開。文件不超過10萬行,內存不超過4M字節。

要求:請編寫一個程序,讀入IP.TXT文件。並從標準輸入接受一個IP地址。如果該地址在授權範圍內,則在標準輸出上打印Y,否則打印N.如果輸入爲一個空行,程序結束。

請給出思路(文字描述),完成代碼,分析你採用算法的優劣。

請列舉測試方法和思路

 

 

設計思考題(2道,請選做一道)

(三)   設計一個簡單的網頁抓取系統,目標是抓取z.baidu.com站點上的有價值網頁。

1) 請設計基本模型,並做出簡要說明。

請考慮如何獲取網頁、如何存儲網頁、如何判斷網頁的價值。。。。。。。。

2) 實際應用中,需要考慮哪些因素。

(四)   簡述:某廣告投放系統採用B/S結構,其主要用戶爲廣告主,廣告主可通過該廣告投放系統在各個網站上投放廣告並查看投放效果。該廣告系統需要實現如下功能:

1) 用戶可向自己賬戶中加款。

2) 用戶可提交廣告,廣告包括四種形式:文字廣告,圖片廣告,flash廣告和對媒體廣告。

3) 用戶可制定哪些廣告在哪些網站上展現,用戶可分別廣告在制定網站上的點擊單價

4) 廣告被點擊時,直接從用戶賬戶中扣除相應的錢款

5) 用戶賬戶餘額不足時,所有廣告失效,用戶加款後,恢復生效。

6) 用戶可查詢廣告的每日消費情況(點擊次數、消費額)、廣告在各個網站的消費情況。

要求:1)設計該系統的數據表結構,要求滿足上述功能,結構清晰,並儘可能靈活。

      2)寫出功能6所涉及的SQL語句

      3)請分析隨着廣告主的增加、廣告點擊次數的增長,系統可能會在哪些方面出項性能瓶頸?你在設計時是如何考慮解決這些瓶頸的?潛在的性能瓶頸還有哪些?

傳說中的百度筆試題(轉載)

:lancen :2007年3月27日
一、選擇題: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緩衝區的數據刷新到硬盤,可以調用的函數有(多選):
A.fflush() B. fsync() C. sync() D.writev()

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類網的子網掩碼是255.255.240.0,這個子網能擁有的最大主機數是:
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].errstr + 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/6605d1b4eb6433738ad4b26d.html HTTP/1.1
Host: hi.baidu.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
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: http://hi.baidu.com/baidu
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[i]>"A" && s[i]<"Z") {
13 s[i] += 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)。
要求:從算法和實現上和實現技術上的細節對程序進行優化,儘量使程序高效。程序運行環境爲2G內存,4CPU。闡明主要思路,給出僞碼和說明,可以着重指出你使用的優化技術。
例子:模板文件爲
This is an $FF$ $$. I like $FF$ and $FA$。
變量文件爲
1.v
FF : banana
FA : apple
2.v
FA: 蘋果
FF : 香蕉
則生成文件爲
1.r
This is an banana $$. I like banana and apple。
2.r
This is an香蕉 $$. I like 香蕉and蘋果。

百度筆試題

:lancen :2007年3月27日
一、選擇題: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].errstr + 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 個。

爲獲得最佳性能,請說明設計的數據結構、搜索算法,以及資源消耗。如果系統數據量擴大,該如何多機分佈處理?
發佈了32 篇原創文章 · 獲贊 0 · 訪問量 1026
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章