- 相關(guān)推薦
淘寶招聘筆試題目
一、單選題
1、我們有很多瓶無色的液體,其中有一瓶是毒藥,其它都是蒸餾水,實(shí)驗(yàn)的小白鼠喝了以后會(huì)在5 分鐘后死亡,而喝到蒸餾水的小白鼠則一切正!,F(xiàn)在有5 只小白鼠,請(qǐng)問一下,我們用這五只小白鼠,5 分鐘的時(shí)間,能夠檢測(cè)多少瓶液體的成分(d) a 5 瓶 b 6 c 31 d 32
2、若某鏈表最常用的操作是在最后一個(gè)結(jié)點(diǎn)之后插入一個(gè)結(jié)點(diǎn)和刪除最后一個(gè)結(jié)點(diǎn),則采用(c)存儲(chǔ)方式最節(jié)省時(shí)間?
A 單鏈表 B 帶頭結(jié)點(diǎn)的非循環(huán)雙鏈表 C 帶頭節(jié)點(diǎn)的雙循環(huán)鏈表 D 循環(huán)鏈表
3、如果需要對(duì)磁盤上的1000W條記錄構(gòu)建索引,你認(rèn)為下面哪種數(shù)據(jù)結(jié)構(gòu)來存儲(chǔ)索引最合適?(B)
A Hash Table B. AVL-Tree C. B-Tree D. List
一個(gè)B-tree 的典型例子就是硬盤中的結(jié)點(diǎn)。與內(nèi)存相比,硬盤必須花成倍的時(shí)間來存取一個(gè)數(shù)據(jù)元素,這是因?yàn)橛脖P的機(jī)械部件讀寫數(shù)據(jù)的速度遠(yuǎn)遠(yuǎn)趕不上純電子媒體的內(nèi)存。與一個(gè)結(jié)點(diǎn)兩個(gè)分支的二元樹相比,B-tree 利用多個(gè)分支(稱為子樹)的結(jié)點(diǎn),減少獲取記錄時(shí)所經(jīng)歷的結(jié)點(diǎn)數(shù),從而達(dá)到節(jié)省存取時(shí)間的目的。
4、可用來檢測(cè)一個(gè)web 服務(wù)器是否正常工作的命令是(B)
A ping B tracert C. telnet D. ftp
5、下面哪個(gè)操作是Windows 獨(dú)有的I/O 技術(shù)(D)
A. Select B.Poll C.IOCP D. Epoll
6、IPV6 地址包含了(D)位
A. 16 B. 32 C. 64 D.128
7、數(shù)據(jù)庫里建索引常用的數(shù)據(jù)結(jié)構(gòu)是(D)
A 鏈表 B 隊(duì)列 C 樹 D 哈希表
8、在公司局域網(wǎng)上ping www.taobao.com沒有涉及到的網(wǎng)絡(luò)協(xié)議是(A)
A. ARP B. DNS C. TCP D. ICMP
二、填空題
1、http 屬于(超文本傳輸)協(xié)議,ICMP 屬于(Internet 控制報(bào)文協(xié)議)協(xié)議
2、深度為k 的完全二叉樹至少有(2^(k-1)+1)個(gè)結(jié)點(diǎn),至多有(2^k-1)個(gè)結(jié)點(diǎn)
3、字節(jié)為6 位的二進(jìn)制有符號(hào)整數(shù),其最小值是(-15)
4、設(shè)有28 盞燈,擬公用一個(gè)電源,則至少需有4 插頭的接線板數(shù)(9)個(gè)。
三、綜合題
1、有一顆結(jié)構(gòu)如下的樹,對(duì)其做鏡像反轉(zhuǎn)后如下,請(qǐng)寫出能實(shí)現(xiàn)該功能的代碼。注意:請(qǐng)勿對(duì)該樹做任何假設(shè),它不一定是平衡樹,也不一定有序。
1 1
/ | \ / | \
2 3 4 4 3 2
/|\ /\ | | / \ / | \
6 5 7 8 9 10 10 9 8 7 5 6
2、假設(shè)某個(gè)網(wǎng)站每天有超過10 億次的頁面訪問量,出于安全考慮,網(wǎng)站會(huì)記錄訪問客戶端訪問的ip 地址和對(duì)應(yīng)的時(shí)間,如果現(xiàn)在已經(jīng)記錄了1000 億條數(shù)據(jù),想統(tǒng)計(jì)一個(gè)指定時(shí)間段內(nèi)的區(qū)域 ip 地址訪問量,那么這些數(shù)據(jù)應(yīng)該按照何種方式來組織,才能盡快滿足上面的統(tǒng)計(jì)需求呢,設(shè)計(jì)完方案后,并指出該方案的優(yōu)缺點(diǎn),比如在什么情況下,可能會(huì)非常慢? 答:
四、附加題
1、寫出C 語言的地址對(duì)齊宏 ALIGN(PALGNBYTES),其中 P 是要對(duì)齊的地址, ALIGNBYTES 是要對(duì)齊的字節(jié)數(shù)(2 的N 次方),比如說:ALIGN(13,16)=16
答:
ALIGN(P,ALIGNBYTES) \
( (void*)( ((unsigned long)P+ALIGNBYTES-1)&(ALIGNBYTES-1) ) )
2、在高性能服務(wù)器的代碼中經(jīng)常會(huì)看到類似這樣的代碼:
typedef union
{
erts_smp_rwmtx_t rwmtx;
byte cache_line_align_[ERTS_ALC_CACHE_LINE_ALIGN_SIZE(sizeof(erts_smp_rwmtx_t))];
}erts_meta_main_tab_lock_t; erts_meta_main_tab_lock_t main_tab_lock[16];
請(qǐng)問其中用來填充的cache_line_align 的作用是? 利用union 的特性,看到cache_line_align 的大小已經(jīng)擴(kuò)展到sizeof(erts_smp_rwmtx_t) 向上對(duì)齊了,這樣尋址都是 sizeof(long) 的倍數(shù)地址上,尋址快,有利于下邊數(shù)組 erts_meta_main_tab_lock_t main_tab_lock[16]; 的訪問速度。
3、在現(xiàn)代web 服務(wù)系統(tǒng)的設(shè)計(jì)中,為了減輕源站的壓力,通常采用分布式緩存技術(shù),其原理如下圖所示,前端的分配器將針對(duì)不同內(nèi)容的用戶請(qǐng)求分配給不同的緩存服務(wù)器向用戶提供服務(wù)。
分配器
/ | \
緩存 緩存 ...緩存
服務(wù)器1 服務(wù)器2 ...服務(wù)器n
1)請(qǐng)問如何設(shè)置分配策略,可以保證充分利用每個(gè)緩存服務(wù)器的存儲(chǔ)空間(每個(gè)內(nèi)容只在一個(gè)緩存服務(wù)器有副本)
2)當(dāng)部分緩存服務(wù)器故障,或是因?yàn)橄到y(tǒng)擴(kuò)容,導(dǎo)致緩存服務(wù)器的數(shù)量動(dòng)態(tài)減少或增加時(shí),你的分配策略是否可以保證較小的緩存文件重分配的開銷,如果不能,如何改進(jìn)?
3)當(dāng)各個(gè)緩存服務(wù)器的存儲(chǔ)空間存在差異時(shí)(如有 4 個(gè)緩存服務(wù)器,存儲(chǔ)空間比為 4:9: 15:7),如何改進(jìn)你的策略,按照如上的比例將內(nèi)容調(diào)度到緩存服務(wù)器?
求樹中兩個(gè)節(jié)點(diǎn)的公共祖先,樹的結(jié)點(diǎn)的數(shù)量很大,要求用效率越高越好。
TREE* CommonFather(TREE *root, TREE *A, TREE *B)
{
if(root == NULL)
return root; if(root == A)//如果找到A,則后面的都不再找了,如果其他分支沒找到B,則B 必定在 A 下面
return A;
if(root == B)//同上
return B;
TREE *leftChild == NULL;
TREE *rightChild == NULL;
leftChild = CommonFather(root->left, A, B);//返回A,B 或結(jié)果
rightChild = CommonFather(root->right, A, B);//返回A,B 或結(jié)果
if(leftChild != NULL && rightChild != NULL)//如果都不為空,則必定一個(gè)是A,一個(gè)是B;
return root;
if(leftChild != NULL)//如果不為空,則必定是A 或B 或結(jié)果;
return leftChild;
if(rightChild != NULL)
return rightChild;//如果不為空,則必定是A 或B 或結(jié)果;
}
【淘寶招聘筆試題目】相關(guān)文章:
護(hù)士招聘筆試題目及答案09-22
人人校園招聘筆試題目11-08
醫(yī)院護(hù)士招聘筆試題目08-21
2016淘寶產(chǎn)品經(jīng)理筆試題目08-20
教師招聘筆試題目12-11
人力資源招聘筆試題目07-06
輔導(dǎo)員招聘筆試題目11-04
工商銀行招聘筆試題目12-09
甲骨文招聘筆試題目分享11-21
唯品會(huì)校園招聘筆試題目02-21