百度面試題
- 面試
- 關注:2.61W次
一、選擇題: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)。
要求:從算法和實現上和實現技術上的細節對程序進行優化,儘量使程序高效。程序運行環境為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蘋果。
- 文章版權屬於文章作者所有,轉載請註明 https://xuewengu.com/flzc/mianshi/wpveg.html