本文由中國(guó)人才網(wǎng)小編為您整理的騰訊實(shí)習(xí)生筆試題的內(nèi)容,歡迎借鑒與閱讀!
騰訊實(shí)習(xí)生筆試題
一、 單項(xiàng)選擇題
1) 給定3個(gè)int類(lèi)型的正整數(shù)x,y,z,對(duì)如下4組表達(dá)式判斷正確的選項(xiàng)()
Int a1=x+y-z; int b1=x*y/z;
Int a2=x-z+y; int b2=x/z*y;
Int c1=x<>z; int d1=x&y|z;
Int c2=x>>z<
A) a1一定等于a2
B) b1一定定于b2
C) c1一定等于c2
D) d1一定等于d2
2) 程序的完整編譯過(guò)程分為是:預(yù)處理,編譯,匯編等,如下關(guān)于編譯階段的編譯優(yōu)化的說(shuō)法中不正確的是()
A)死代碼刪除指的是編譯過(guò)程直接拋棄掉被注釋的代碼;
B) 函數(shù)內(nèi)聯(lián)可以避免函數(shù)調(diào)用中壓棧和退棧的開(kāi)銷(xiāo)
C) For循環(huán)的循環(huán)控制變量通常很適合調(diào)度到寄存器訪問(wèn)
D)強(qiáng)度削弱是指執(zhí)行時(shí)間較短的指令等價(jià)的替代執(zhí)行時(shí)間較長(zhǎng)的指令
3) 如下關(guān)于進(jìn)程的面熟不正確的是()
A)進(jìn)程在退出時(shí)會(huì)自動(dòng)關(guān)閉自己打開(kāi)的所有文件
B) 進(jìn)程在退出時(shí)會(huì)自動(dòng)關(guān)閉自己打開(kāi)的網(wǎng)絡(luò)鏈接
C) 進(jìn)程在退出時(shí)會(huì)自動(dòng)銷(xiāo)毀自己創(chuàng)建的所有線程
D)進(jìn)程在退出時(shí)會(huì)自動(dòng)銷(xiāo)毀自己打開(kāi)的共享內(nèi)存
4) 計(jì)算表達(dá)式x6+4x4+2x3+x+1最少需要做()次乘法
A)3
B)4
C)5
D)6
5) 在如下8*6的矩陣中,請(qǐng)計(jì)算從A移動(dòng)到B一共有多少種走法?要求每次只能向上揮著向右移動(dòng)一格,并且不能經(jīng)過(guò)P;
A)492
B)494
C)496
D)498
6) SQL語(yǔ)言中刪除一個(gè)表的指令是()
A)DROP TABLE
B) DELETE TABLE
C) DESTROY TABLE
D)REMOVE TABLE
7)某產(chǎn)品團(tuán)隊(duì)由美術(shù)組、產(chǎn)品組、client程序組和server程序組4個(gè)小組構(gòu)成,每次構(gòu)建一套完整的版本時(shí),需要各個(gè)組發(fā)布如下資源。美術(shù)組想客戶(hù)端提供圖像資源(需要10分鐘),產(chǎn)品組向client組合server提供文字內(nèi)容資源(同時(shí)進(jìn)行,10分鐘),server和client源代碼放置在不同工作站上,其完整編譯時(shí)間均為10分鐘切編譯過(guò)程不依賴(lài)于任何資源,client程序(不包含任何資源)在編譯完畢后還需要完成對(duì)程序的統(tǒng)一加密過(guò)程(10分鐘)?梢哉(qǐng)問(wèn),從要完成一次版本構(gòu)建(client與server的版本代碼與資源齊備),至少需要多少時(shí)間()
A)60分鐘
B)40分鐘
C)30分鐘
D)20分鐘
8)如下關(guān)于編譯鏈接的說(shuō)法錯(cuò)誤的是()
A)編譯優(yōu)化會(huì)使得編譯速度變慢
B) 預(yù)編譯頭文件可以?xún)?yōu)化程序的性能
C) 靜態(tài)鏈接會(huì)使得可執(zhí)行文件偏大
D)動(dòng)態(tài)鏈接庫(kù)會(huì)使進(jìn)程啟動(dòng)速度偏慢
9)如下關(guān)于鏈接的說(shuō)法錯(cuò)誤的是()
A)一個(gè)靜態(tài)庫(kù)中不能包含兩個(gè)同名全局函數(shù)的定義
B)一個(gè)動(dòng)態(tài)庫(kù)中不能包含兩個(gè)同名全局函數(shù)的定義
C)如果兩個(gè)靜態(tài)庫(kù)都包含一個(gè)同名全局函數(shù),他們不能同時(shí)被鏈接
D)如果兩個(gè)動(dòng)態(tài)庫(kù)都包含一個(gè)同名全局函數(shù),他們不能同時(shí)被鏈接
10)某火車(chē)站要通過(guò)一條棧道(先進(jìn)后出)來(lái)調(diào)換進(jìn)入車(chē)站的列車(chē)順序,若進(jìn)站的列車(chē)順序?yàn)锳、B、C,則下列哪個(gè)出站順序不可能?()
A)ABC
B)ACB
C)CAB
D)CBA
11)棧是一種智能在某一端插入和刪除的特殊線性表,它按照后進(jìn)先出的原則存儲(chǔ)數(shù)據(jù),先進(jìn)入的數(shù)據(jù)被壓入棧底,最后的數(shù)據(jù)在棧頂,若6元素為A、B、C、D、E、F出棧順序?yàn)锽、D、C、F、E、A,則S棧的最小容量為()
A)3
B)4
C)5
D)6
12)找工作的季節(jié)馬上就到了,很多同學(xué)去圖書(shū)館借閱《面試寶典》這本書(shū),現(xiàn)在圖書(shū)館外有6名同學(xué)排隊(duì),其中3名同學(xué)要將手中的《面試寶典》還至圖書(shū)館,有3名同學(xué)希望從圖書(shū)館中可以借到《面試寶典》,若當(dāng)前圖書(shū)館內(nèi)已無(wú)庫(kù)存《面試寶典》,要保證借書(shū)的3名同學(xué)可以借到書(shū),請(qǐng)問(wèn)這6位同學(xué)有多少種排隊(duì)方式()
A)60
B)120
C)180
D)360
13)若完全二叉樹(shù)的節(jié)點(diǎn)個(gè)數(shù)為2N-1,則葉節(jié)點(diǎn)個(gè)數(shù)為()
A)N-1
B)2×N
C)2N-1
D)2N
14)排序算法的穩(wěn)定是指,關(guān)鍵碼相同的記錄排序前后相對(duì)位置不發(fā)生改變,下面哪種排序算法是不穩(wěn)定的()
A)插入排序
B)冒泡排序
C)快速排序
D)歸并排序
15)下列說(shuō)法中錯(cuò)誤的是:()
A)插入排序某些情況下復(fù)雜度為O(n)
B)排序二叉樹(shù)元素查找的復(fù)雜度可能為O(n)
C)對(duì)于有序列表的排序最快的是快速排序
D)在有序列表中通過(guò)二分查找的復(fù)雜度一定是O(n log2n)
16)在程序設(shè)計(jì)中,要對(duì)兩個(gè)16K×16K的多精度浮點(diǎn)數(shù)二維數(shù)組進(jìn)行矩陣求和時(shí),行優(yōu)先讀取和列優(yōu)先讀取的區(qū)別是()
A)沒(méi)區(qū)別
B)行優(yōu)先快
C)列優(yōu)先快
D)2種讀取方式速度為隨機(jī)值,無(wú)法判斷
17)在下圖的多邊形ABCDE中從哪一點(diǎn)出發(fā),可以遍歷圖上的每條邊一次,而且僅遍歷一次
A)A點(diǎn)
B) B點(diǎn)
C) C點(diǎn)
D)D點(diǎn)
18)字符串所有非空子串(兩個(gè)子串如果內(nèi)容相同則只算一個(gè))個(gè)數(shù)是()
A)1024
B)1018
C)55
D)50
19)TCP的關(guān)閉過(guò)程,說(shuō)法正確的是()
A)TIME_WAIT狀態(tài)稱(chēng)為MSL(Maximum Segment Lifetime)等待狀態(tài)
B)對(duì)一個(gè)established狀態(tài)的TCP連接,在調(diào)用shutdown函數(shù)之前調(diào)用close接口,可以讓主動(dòng)調(diào)用的一方進(jìn)入半關(guān)閉狀態(tài)
C)主動(dòng)發(fā)送FIN消息的連接端,收到對(duì)方回應(yīng)ack之前不能發(fā)只能收,在收到對(duì)方回復(fù)ack之后不能發(fā)也不能收,進(jìn)入CLOSING狀態(tài)
D)在已經(jīng)成功建立連接的TCP連接上,如果一端收到RST消息可以讓TCP的連潔端繞過(guò)半關(guān)閉狀態(tài)并允許丟失數(shù)據(jù)。
20)操作系統(tǒng)的一些特別端口要為特定的服務(wù)做預(yù)留,必須要root權(quán)限才能打開(kāi)的端口描述正確的是()
A)端口號(hào)在64512-65535之間的端口
B)所有小于1024的每個(gè)端口
C)RFC標(biāo)準(zhǔn)文檔中已經(jīng)聲明特定服務(wù)的相關(guān)端口,例如http服務(wù)的80端口,8080端口等
D)所有端口都可以不受權(quán)限限制打開(kāi)
二、填空題
21)除了10進(jìn)制、2進(jìn)制之外,16進(jìn)制表達(dá)式在計(jì)算機(jī)領(lǐng)域中也經(jīng)常使用(例如各種字符集的定義描述),下式:(2012)10+(AF1)16的結(jié)果是( )(請(qǐng)用10進(jìn)制表示)。
22)仔細(xì)閱讀以下一段遞歸的函數(shù)定義:
in tack(int m,int n)
{
if(m==0)
{
return n+1;
}
Else if(n==0)
{
return ack(m-1,1);
}
else
{
retrun ack(m-1,ack(m,n-1));
}
}
請(qǐng)問(wèn)ack(3,3)的返回值是( )。
23)某互聯(lián)網(wǎng)產(chǎn)品(例如,一款網(wǎng)絡(luò)游戲)同時(shí)在線曲線(Average Concurrency Users,ACU)24小時(shí)數(shù)據(jù)如下圖所示,F(xiàn)已知全天平均在線人數(shù)為5000人,玩家每次登陸后平均在線時(shí)長(zhǎng)為2小時(shí)。請(qǐng)你估計(jì)一下,平均下來(lái)每分鐘約有( )個(gè)玩家登錄。
24)如下SQL語(yǔ)句是需要列出一個(gè)論壇版面第一頁(yè)(每頁(yè)顯示20個(gè))的帖子(post)標(biāo)題(title),并按照發(fā)布(create_time)降序排列:
SELECT title FROM post( )create_time DESC( )0,20
25、為了某項(xiàng)目需要,我們準(zhǔn)備構(gòu)造了一種面向?qū)ο蟮哪_本語(yǔ)言,例如,對(duì)所有的整數(shù),我們都通過(guò)Integer類(lèi)型的對(duì)象來(lái)描述。在計(jì)算“1+2”時(shí),這里的“1”,“2”和結(jié)果“3”分別為一個(gè)Integer對(duì)象。為了降低設(shè)計(jì)復(fù)雜度,我們決定讓Integer對(duì)象都是只讀對(duì)象,也即在計(jì)算a=a+b后,對(duì)象a引用的是一個(gè)新的對(duì)象,而非改a所指對(duì)象的值。考慮到性能問(wèn)題,我們又引入兩種優(yōu)化方案:(1)對(duì)于數(shù)值相等的Integer對(duì)象,我們不會(huì)重復(fù)創(chuàng)建。例如,計(jì)算“1+1”,這里兩個(gè)“1”的引用的是同一個(gè)對(duì)象——這種設(shè)計(jì)模式叫做( );(2)腳本語(yǔ)言解析器啟動(dòng)時(shí),默認(rèn)創(chuàng)建數(shù)值范圍[1,32]的32個(gè)Integer對(duì)象,F(xiàn)在,假設(shè)我們要計(jì)算表達(dá)式“1+2+3+…+40”,在計(jì)算過(guò)程需要?jiǎng)?chuàng)建的Integer對(duì)象個(gè)數(shù)是( )。
26)A、B兩人玩猜字游戲,游戲規(guī)則如下:
A選定一個(gè) [1,100]之間的數(shù)字背對(duì)B寫(xiě)在紙上,然后讓B開(kāi)始猜;
如果B猜的偏小,A會(huì)提示B這次猜的偏小;
一旦B某次猜的偏大,A就不再提示,此次之后B猜的偏小A也不會(huì)再提示,只回答猜對(duì)與否。
請(qǐng)問(wèn):B至少要猜( )次才能保證猜對(duì)?在這種策略下,B第一次猜測(cè)的數(shù)字是( )。
27)仔細(xì)閱讀以下函數(shù)
Int fuc(int m,int n)
{
if(m%n)==0
{
return n;
}
else
{
return fuc(n,m%n)
}
}
請(qǐng)問(wèn)func(2012,2102)的結(jié)果是( )。
三 、加分題
28)給定一耳光數(shù)組a[N],我們希望構(gòu)造數(shù)組b [N],其中b[j]=a[0]*a[1]…a[N-1] / a[j],在構(gòu)造過(guò)程中,不允許使用除法:
要求O(1)空間復(fù)雜度和O(n)的時(shí)間復(fù)雜度;
除遍歷計(jì)數(shù)器與a[N] b[N]外,不可使用新的變量(包括棧臨時(shí)變量堆空間和全局靜態(tài)變量等);
青銅程序(主流編程語(yǔ)言任選)實(shí)現(xiàn)并簡(jiǎn)單描述。
29)20世紀(jì)60年代,美國(guó)心理學(xué)家米爾格蘭姆設(shè)計(jì)了一個(gè)連鎖信件實(shí)驗(yàn)。米爾格蘭姆把信隨即發(fā)送給住在美國(guó)各城市的一部分居民,信中寫(xiě)有一個(gè)波士頓股票經(jīng)紀(jì)人的名字,并要求每名收信人把這封信寄給自己認(rèn)為是比較接近這名股票經(jīng)紀(jì)人的朋友。這位朋友收到信后再把信寄給他認(rèn)為更接近這名股票經(jīng)紀(jì)人的朋友。最終,大部分信件都寄到了這名股票經(jīng)紀(jì)人手中,每封信平均經(jīng)受6.2詞到達(dá)。于是,米爾格蘭姆提出六度分割理論,認(rèn)為世界上任意兩個(gè)人之間建立聯(lián)系最多只需要6個(gè)人。
假設(shè)QQ號(hào)大概有10億個(gè)注冊(cè)用戶(hù),存儲(chǔ)在一千臺(tái)機(jī)器上的關(guān)系數(shù)據(jù)庫(kù)中,每臺(tái)機(jī)器存儲(chǔ)一百萬(wàn)個(gè)用戶(hù)及其的好友信息,假設(shè)用戶(hù)的平均好友個(gè)數(shù)大約為25人左右。
第一問(wèn):請(qǐng)你設(shè)計(jì)一個(gè)方案,盡可能快的計(jì)算存儲(chǔ)任意兩個(gè)QQ號(hào)之間是否六度(好友是1度)可達(dá),并得出這兩位用戶(hù)六度可達(dá)的話(huà),最短是幾度可達(dá)。
第二問(wèn):我們希望得到平均每個(gè)用戶(hù)的n度好友個(gè)數(shù),以增加對(duì)用戶(hù)更多的了解,現(xiàn)在如果每臺(tái)機(jī)器一秒鐘可以返回一千條查詢(xún)結(jié)果,那么在10天的時(shí)間內(nèi),利用給出的硬件條件,可以統(tǒng)計(jì)出用戶(hù)的最多幾度好友個(gè)數(shù)?如果希望得到更高的平均n度好友個(gè)數(shù),可以怎樣改進(jìn)方案?