淘寶校園招聘會(huì)筆試題
一、單選題
1、我們有很多瓶無色的液體,其中有一瓶是毒藥,其它都是蒸餾水,實(shí)驗(yàn)的小白鼠喝了以后會(huì)在5分鐘后死亡,而喝到蒸餾水的小白鼠則一切正!,F(xiàn)在有5只小白鼠,請(qǐng)問一下,我們用這五只小白鼠,5分鐘的時(shí)間,能夠檢測(cè)多少瓶液體的成分(C)
A、5瓶 B、6瓶 C、31瓶 D、32瓶
2、若某鏈表最常用的操作是在最后一個(gè)結(jié)點(diǎn)之后插入一個(gè)結(jié)點(diǎn)和刪除最后一個(gè)結(jié)點(diǎn),則采用()存儲(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ǔ)索引最合適?()
A、Hash Table B、AVL-Tree C、B-Tree D、List
4、可用來檢測(cè)一個(gè)web服務(wù)器是否正常工作的命令是()
A、ping B、tracert C、telnet D、ftp
只有C可以測(cè)試Web主機(jī)的網(wǎng)頁服務(wù)器是否工作正常,假設(shè)該服務(wù)器的網(wǎng)頁服務(wù)器使用的是默認(rèn)端口,則可以使用命令telnet hostname 80 來測(cè)試其是否工作。
5、下面哪個(gè)操作是Windows獨(dú)有的I/O技術(shù)()
A、Select B、Poll C、IOCP D、Epoll
6、IPV6地址包含了()位
A、16 B、32 C、64 D、128
7、數(shù)據(jù)庫(kù)里建索引常用的數(shù)據(jù)結(jié)構(gòu)是()
A、鏈表 B、隊(duì)列 C、樹 D、哈希表
8、在公司局域網(wǎng)上ping www.taobao.com沒有涉及到的網(wǎng)絡(luò)協(xié)議是()
A、ARP B、DNS C、TCP D、ICMP
DNS是將域名www.taobao.com映射成主機(jī)的IP地址,ARP是將IP地址映射成物理地址,ICMP是報(bào)文控制協(xié)議,由路由器發(fā)送給執(zhí)行ping命令的主機(jī),而一個(gè)ping命令并不會(huì)建立一條TCP連接,故沒有涉及TCP協(xié)議。
二、填空題
1、http屬于(應(yīng)用層)協(xié)議,ICMP屬于(網(wǎng)絡(luò)層)協(xié)議。
2、深度為k的完全二叉樹至少有(2^(k-1))個(gè)結(jié)點(diǎn),至多有(2^k-1)個(gè)結(jié)點(diǎn)。
3、字節(jié)為6位的二進(jìn)制有符號(hào)整數(shù),其最小值是(-32)。
4、設(shè)有28盞燈,擬公用一個(gè)電源,則至少需有4插頭的接線板數(shù)(9)個(gè)。
第一個(gè)板4個(gè)口,此后每增加1個(gè)板會(huì)消耗1個(gè)原來的口,總的只增加3個(gè)口,故N個(gè)接線板能提供 1+3*N個(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
答:以孩子、兄弟的存儲(chǔ)結(jié)構(gòu)來存儲(chǔ)這棵樹,使之成為一顆二叉樹,然后對(duì)二叉樹進(jìn)行鏈表的轉(zhuǎn)換。
view plain
typedef struct TreeNode
{
int data;
struct TreeNode *firstchild;
struct TreeNode *nextsibling;
}TreeNode,*Tree;
void MirrorTree(Tree root)
{
if(!root)
return ;
if(root->firstchild)
{
Tree p=root->firstchild;
Tree cur=p->nextsibling;
p->nextsibling=NULL;
while(cur)
{
Tree curnext=cur->nextsibling;
cur->nextsibling=p;
if(p->firstchild)
MirrorTree(p);
p=cur;
cur=curnext;
}
root->firstchild=p;
}
}
int main(void)
{
TreeNode *root=(TreeNode *)malloc(sizeof(TreeNode));
Init();
MirrorTree(root);
OutPut();
}
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ì)非常慢?
答:用B+樹來組織,非葉子節(jié)點(diǎn)存儲(chǔ)(某個(gè)時(shí)間點(diǎn),頁面訪問量),葉子節(jié)點(diǎn)是訪問的`IP地址。這個(gè)方案的優(yōu)點(diǎn)是查詢某個(gè)時(shí)間段內(nèi)的IP訪問量很快,但是要統(tǒng)計(jì)某個(gè)IP的訪問次數(shù)或是上次訪問時(shí)間就不得不遍歷整個(gè)樹的葉子節(jié)點(diǎn)。答:或者可以建立二級(jí)索引,分別是時(shí)間和地點(diǎn)來建立索引。
四、附加題
1、寫出C語言的地址對(duì)齊宏ALIGN(PALGNBYTES),其中P是要對(duì)齊的地址,ALIGNBYTES是要對(duì)齊的字節(jié)數(shù)(2的N次方),比如說:ALIGN(13,16)=16
view plain
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的作用是?
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ù)器?
【淘寶校園招聘會(huì)筆試題】相關(guān)文章:
校園招聘會(huì)條幅標(biāo)語12-17
校園招聘會(huì)策劃方案11-18
360筆試題目07-11
華為2017筆試題08-16
校園招聘會(huì)新聞稿11-22
華為2017筆試試題08-10
桂林銀行筆試題筆經(jīng)07-20