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