腾讯2013实习生笔试题+答案1-5aadaa 6-10adbcc 11-15 acacc16-20 bbddc
1) 給定3個(gè)int類型的正整數(shù)x,y,z,對(duì)如下4組表達(dá)式判斷正確的選項(xiàng)(A)
int c1=x<<y>>z; int d1=x&y|z;int c2=x>>z<<y; int d2=x|z&y;
A) a1一定等于a2
B) b1一定等于b2
C) c1一定等于c2
D) d1一定等于d2 一開始覺得A肯定不對(duì),因?yàn)闀?huì)溢出,但不知道其實(shí)正如微機(jī)原理課上原的,溢出會(huì)有標(biāo)識(shí)位,連加減的時(shí)候會(huì)考慮到這個(gè)標(biāo)識(shí)位的作用,這樣A就對(duì)了。
2) 程序的完整編譯過程分為是:預(yù)處理,編譯,匯編等,如下關(guān)于編譯階段的編譯優(yōu)化的說法中不正確的是(A)
A)死代碼刪除指的是編譯過程直接拋棄掉被注釋的代碼;
B) 函數(shù)內(nèi)聯(lián)可以避免函數(shù)調(diào)用中壓棧和退棧的開銷
C) For循環(huán)的循環(huán)控制變量通常很適合調(diào)度到寄存器訪問
D)強(qiáng)度削弱是指執(zhí)行時(shí)間較短的指令等價(jià)的替代執(zhí)行時(shí)間較長(zhǎng)的指令
死代碼是指永遠(yuǎn)不會(huì)執(zhí)行到的代碼,不是注釋,比如if(0){…},大括號(hào)里的就是死代碼。
3) 如下關(guān)于進(jìn)程的描述不正確的是(D)
A)進(jìn)程在退出時(shí)會(huì)自動(dòng)關(guān)閉自己打開的所有文件
B) 進(jìn)程在退出時(shí)會(huì)自動(dòng)關(guān)閉自己打開的網(wǎng)絡(luò)鏈接
C) 進(jìn)程在退出時(shí)會(huì)自動(dòng)銷毀自己創(chuàng)建的所有線程
D)進(jìn)程在退出時(shí)會(huì)自動(dòng)銷毀自己打開的共享內(nèi)存
如果共享內(nèi)存銷毀了,會(huì)對(duì)其他正在使用這段內(nèi)存的進(jìn)程造成破壞。
4) 計(jì)算表達(dá)式x6+4x4+2x3+x+1最少需要做(A)次乘法
A)3
B)4
C)5
D)6
原式=x^2 * (x^4 + 4 * x^2 + 2*x) + x + 1,x^2用一次乘法,x^4看成是(x^2)^2,這樣用掉第二次乘法,外面的x^2 * () 是第三次乘法
5) 在如下8*6的矩陣中,請(qǐng)計(jì)算從A移動(dòng)到B一共有多少種走法?要求每次只能向上或者向右移動(dòng)一格,并且不能經(jīng)過P(A);
| B | |||||||
| P | |||||||
| A |
A)492
B)494
C)496
D)498
A走到B共需要12步,其中7步必須向右,5步必須向上,只要確定向上5步在12步中的排序就可以確定唯一的走法(內(nèi)部不進(jìn)行排序),所以A到B有C(12,5)或者C(12,7)中走法。A到P有C(6,3)種走法,P到B有C(7,3)種走法。所以總走法有C(12,5)-C(6,3)*C(6,3)=492
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ù)組向客戶端提供圖像資源(需要10分鐘),產(chǎn)品組向client組和server提供文字內(nèi)容資源(同時(shí)進(jìn)行,10分鐘),server和client源代碼放置在不同工作站上,其完整編譯時(shí)間均為10分鐘切編譯過程不依賴于任何資源,client程序(不包含任何資源)在編譯完畢后還需要完成對(duì)程序的統(tǒng)一加密過程(10分鐘)。可以請(qǐng)問,從要完成一次版本構(gòu)建(client與server的版本代碼與資源齊備),至少需要多少時(shí)間()
A)60分鐘?
B)40分鐘?
C)30分鐘?
D)20分鐘
除了加密過程,其他過程都可以并發(fā)執(zhí)行
8)如下關(guān)于編譯鏈接的說法錯(cuò)誤的是()
A)編譯優(yōu)化會(huì)使得編譯速度變慢
B) 預(yù)編譯頭文件可以優(yōu)化程序的性能
C) 靜態(tài)鏈接會(huì)使得可執(zhí)行文件偏大
D)動(dòng)態(tài)鏈接庫(kù)會(huì)使進(jìn)程啟動(dòng)速度偏慢
預(yù)編譯不涉及到代碼本身的優(yōu)化級(jí)別,更不會(huì)修改代碼,所以同樣的內(nèi)容不可能產(chǎn)生程序性能的優(yōu)化的
9)如下關(guān)于鏈接的說法錯(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í)被鏈接
(解答參考網(wǎng)絡(luò))函數(shù)可以定義在3個(gè)地方
1. 程序自身
2. 靜態(tài)庫(kù)
3. 動(dòng)態(tài)庫(kù)
因?yàn)殪o態(tài)庫(kù)是要鏈進(jìn)程序的,所以函數(shù)定義在程序和靜態(tài)庫(kù)可以看成是一樣的
同名函數(shù)出現(xiàn)在程序和靜態(tài)庫(kù)中,鏈接時(shí)會(huì)報(bào)重定義的錯(cuò)誤。
同名函數(shù)出現(xiàn)在動(dòng)態(tài)庫(kù)中,編譯鏈接都可以通過,但是調(diào)用會(huì)出問題,會(huì)出現(xiàn)覆蓋問題。
定義在這3個(gè)地方的函數(shù),會(huì)調(diào)用哪個(gè)函數(shù)呢?
1. 程序和靜態(tài)庫(kù)定義了同名函數(shù),鏈接報(bào)錯(cuò):重定義
2. 程序或靜態(tài)庫(kù)定義的同名函數(shù),會(huì)覆蓋動(dòng)態(tài)庫(kù)中定義的函數(shù)
3. 動(dòng)態(tài)庫(kù)中定義的同名函數(shù),先鏈接覆蓋后鏈接的函數(shù)
10)某火車站要通過一條棧道(先進(jìn)后出)來調(diào)換進(jìn)入車站的列車順序,若進(jìn)站的列車順序?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
按題目的理解,A、B、C、D、E、F是進(jìn)棧順序了
12)找工作的季節(jié)馬上就到了,很多同學(xué)去圖書館借閱《面試寶典》這本書,現(xiàn)在圖書館外有6名同學(xué)排隊(duì),其中3名同學(xué)要將手中的《面試寶典》還至圖書館,有3名同學(xué)希望從圖書館中可以借到《面試寶典》,若當(dāng)前圖書館內(nèi)已無庫(kù)存《面試寶典》,要保證借書的3名同學(xué)可以借到書,請(qǐng)問這6位同學(xué)有多少種排隊(duì)方式()
A)60?
B)120
C)180
D)360
13)若完全二叉樹的節(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)下列說法中錯(cuò)誤的是:()
A)插入排序某些情況下復(fù)雜度為O(n)
B)排序二叉樹元素查找的復(fù)雜度可能為O(n)
C)對(duì)于有序列表的排序最快的是快速排序
D)在有序列表中通過二分查找的復(fù)雜度一定是O(n log2n)
16)在程序設(shè)計(jì)中,要對(duì)兩個(gè)16K×16K的多精度浮點(diǎn)數(shù)二維數(shù)組進(jìn)行矩陣求和時(shí),行優(yōu)先讀取和列優(yōu)先讀取的區(qū)別是()
A)沒區(qū)別?
B)行優(yōu)先快
C)列優(yōu)先快
D)2種讀取方式速度為隨機(jī)值,無法判斷
分析:若在內(nèi)存中,則數(shù)據(jù)可以”隨機(jī)存取”,但內(nèi)存數(shù)據(jù)被讀取或?qū)懭霑r(shí),所需要的時(shí)間與這段信息所在的位置無關(guān).但是在讀取和寫入磁盤時(shí),其所需要的時(shí)間與位置就會(huì)有關(guān)系.因?yàn)樵贐ASIC,PASCAL和C/C++語(yǔ)言中,數(shù)組的存放是按照行優(yōu)先來存放的,按行號(hào)第一行第二行…以此類推.本體關(guān)鍵是考察內(nèi)存抖動(dòng)的問題,如果按列訪問則需要跳過一大串內(nèi)存地址,這樣可能需求的內(nèi)存地址不在當(dāng)前頁(yè)中則需要進(jìn)行頁(yè)置換,這樣便需要硬盤IO,減低速度.
17)在下圖的多邊形ABCDE中從哪一點(diǎn)出發(fā),可以遍歷圖上的每條邊一次,而且僅遍歷一次
A)A點(diǎn)
B) B點(diǎn)
C) C點(diǎn)
D)D點(diǎn)
18)字符串www.qq.com所有非空子串(兩個(gè)子串如果內(nèi)容相同則只算一個(gè))個(gè)數(shù)是()
A)1024?
B)1018?
C)55
D)50
所以若字符串的長(zhǎng)度為n,則子串的個(gè)數(shù)就是[n+(n-1)+.......+1+1]個(gè)
19)TCP的關(guān)閉過程,說法正確的是()
A)TIME_WAIT狀態(tài)稱為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ān)閉狀態(tài)并允許丟失數(shù)據(jù)。
分析,對(duì)于A,TCP下每條連接都有一個(gè)屬性叫做maxsegment lifetime,就是說該連接關(guān)閉后,要經(jīng)過2*max segment lifetime的時(shí)間,才算是真正的被關(guān)閉,才能被重新建立,以防止這條鏈路上還有東西在傳輸,停留在TIME_WAIT狀態(tài)的持續(xù)時(shí)間是最長(zhǎng)分節(jié)生命周期(MSL)的兩倍,有時(shí)候稱之為2MSL,但是TIME_WAIT并不是MSL.對(duì)于B,在調(diào)用closesocket之前先調(diào)用shutdown函數(shù)關(guān)閉發(fā)送數(shù)據(jù)通道,從而進(jìn)入半關(guān)閉狀態(tài).對(duì)于C,在收到ack之后可以收不能發(fā).
20)操作系統(tǒng)的一些特別端口要為特定的服務(wù)做預(yù)留,必須要root權(quán)限才能打開的端口描述正確的是()
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)限限制打開
答案 二、填空題
21)除了10進(jìn)制、2進(jìn)制之外,16進(jìn)制表達(dá)式在計(jì)算機(jī)領(lǐng)域中也經(jīng)常使用(例如各種字符集的定義描述),下式:(2012)10+(AF1)16的結(jié)果是( 4813)(請(qǐng)用10進(jìn)制表示)。
22)仔細(xì)閱讀以下一段遞歸的函數(shù)定義:
23)某互聯(lián)網(wǎng)產(chǎn)品(例如,一款網(wǎng)絡(luò)游戲)同時(shí)在線曲線(Average Concurrency Users,ACU)24小時(shí)數(shù)據(jù)如下圖所示。現(xiàn)已知全天平均在線人數(shù)為5000人,玩家每次登陸后平均在線時(shí)長(zhǎng)為2小時(shí)。請(qǐng)你估計(jì)一下,平均下來每分鐘約有( )個(gè)玩家登錄。
24)如下SQL語(yǔ)句是需要列出一個(gè)論壇版面第一頁(yè)(每頁(yè)顯示20個(gè))的帖子(post)標(biāo)題(title),并按照發(fā)布(create_time)降序排列:
SELECT title FROM post( order by)create_time DESC( limit)0,20
25、為了某項(xiàng)目需要,我們準(zhǔn)備構(gòu)造了一種面向?qū)ο蟮哪_本語(yǔ)言,例如,對(duì)所有的整數(shù),我們都通過Integer類型的對(duì)象來描述。在計(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ì)象的值。考慮到性能問題,我們又引入兩種優(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ì)象。現(xiàn)在,假設(shè)我們要計(jì)算表達(dá)式“1+2+3+…+40”,在計(jì)算過程需要?jiǎng)?chuàng)建的Integer對(duì)象個(gè)數(shù)是(40)。
1到7以及他們的和是不用創(chuàng)建的,從8開始,28(是1到7的和)+8=36,36需要?jiǎng)?chuàng)建,36+9=45,45需要?jiǎng)?chuàng)建…依次類推,在加數(shù)是32之前(含32)需要?jiǎng)?chuàng)建的對(duì)象是32-8+1=25,某數(shù)+32=某數(shù)之后33至40所表示的加數(shù)也要?jiǎng)?chuàng)建,這樣有8個(gè)加數(shù) + 8個(gè)和,共有16個(gè)數(shù)需要?jiǎng)?chuàng)建,注意,加數(shù)中包含36,這個(gè)我們已經(jīng)創(chuàng)建了,所以有25+8+8-1=40個(gè)數(shù)的對(duì)象需要?jiǎng)?chuàng)建。
26)A、B兩人玩猜字游戲,游戲規(guī)則如下:
A選定一個(gè) [1,100]之間的數(shù)字背對(duì)B寫在紙上,然后讓B開始猜;
如果B猜的偏小,A會(huì)提示B這次猜的偏小;
一旦B某次猜的偏大,A就不再提示,此次之后B猜的偏小A也不會(huì)再提示,只回答猜對(duì)與否。
請(qǐng)問:B至少要猜( 14)次才能保證猜對(duì)?在這種策略下,B第一次猜測(cè)的數(shù)字是(14 )。
27)仔細(xì)閱讀以下函數(shù)
求最大公約數(shù)
三 、加分題
28)給定一耳光數(shù)組a[N],我們希望構(gòu)造數(shù)組b [N],其中b[j]=a[0]*a[1]…a[N-1] / a[j],在構(gòu)造過程中,不允許使用除法:
要求O(1)空間復(fù)雜度和O(n)的時(shí)間復(fù)雜度;
除遍歷計(jì)數(shù)器與a[N] b[N]外,不可使用新的變量(包括棧臨時(shí)變量、堆空間和全局靜態(tài)變量等);
請(qǐng)用程序?qū)崿F(xiàn)并簡(jiǎn)單描述。
29)20世紀(jì)60年代,美國(guó)心理學(xué)家米爾格蘭姆設(shè)計(jì)了一個(gè)連鎖信件實(shí)驗(yàn)。米爾格蘭姆把信隨即發(fā)送給住在美國(guó)各城市的一部分居民,信中寫有一個(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è)用戶,存儲(chǔ)在一千臺(tái)機(jī)器上的關(guān)系數(shù)據(jù)庫(kù)中,每臺(tái)機(jī)器存儲(chǔ)一百萬個(gè)用戶及其的好友信息,假設(shè)用戶的平均好友個(gè)數(shù)大約為25人左右。
第一問:請(qǐng)你設(shè)計(jì)一個(gè)方案,盡可能快的計(jì)算存儲(chǔ)任意兩個(gè)QQ號(hào)之間是否六度(好友是1度)可達(dá),并得出這兩位用戶六度可達(dá)的話,最短是幾度可達(dá)。
第二問:我們希望得到平均每個(gè)用戶的n度好友個(gè)數(shù),以增加對(duì)用戶更多的了解,現(xiàn)在如果每臺(tái)機(jī)器一秒鐘可以返回一千條查詢結(jié)果,那么在10天的時(shí)間內(nèi),利用給出的硬件條件,可以統(tǒng)計(jì)出用戶的最多幾度好友個(gè)數(shù)?如果希望得到更高的平均n度好友個(gè)數(shù),可以怎樣改進(jìn)方案?
總結(jié)
以上是生活随笔為你收集整理的腾讯2013实习生笔试题+答案1-5aadaa 6-10adbcc 11-15 acacc16-20 bbddc的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何下载Android源码(非常详细,含
- 下一篇: 从Encoder到Decoder实现Se