昨天參加了這次實習生筆試題,感覺考的不算難,但是有點廣,數據結構、計算機操作系統、計算機網絡等都有涉及。卻沒有實際編碼題目,看樣子是面試的時候考察吧。其實基礎扎實的話,應該不難。
答案都是自己解答和小伙伴探討以及網上查的資料進行分析的,如有錯誤請留言拍磚!
(一)不定項選擇題(25*4)
1. 使用深度優先算法遍歷下圖,遍歷的順序為()
A ABCDEFG B ABDCFEG
C ABDECFG D ABCDFEG
2. 輸入序列ABCABC經過棧操作變成ABCCBA,下面哪些是可能的棧操作( )
A. push pop push pop push pop pushpush push pop pop pop //ABCCBA
B. push push push push push push poppop pop pop pop pop //CBACBA
C. push push push pop pop pop pushpush pop pop push pop //CBABAC
D. push push push push pop pushpop push pop pop pop pop //ABCCBA
3. 下列關鍵碼序列哪些是一個堆( )
A. 90 31 53 23 16 48 B . 90 48 31 53 16 23
C. 16 53 23 90 314 D.1631 23 90 53 48
//48的左子節點為53,而該堆為大堆,違反其父節點都必須大於或等於其對應的子節點性質
//對於答案C:53右子節點為31,而該堆為小堆,違反其父節點都必須小於或等於其對應的子節點性質
//堆的性質,符合最大堆或者最小堆都行,如果大堆的話所有父節點都必須大於或等於其對應的子節點,
如果小堆的話,所有父節點都必須小於或等於其對應的子節點。
堆是一棵完全二叉樹,從上到下畫好,進行對比就可以得到答案。
4. 稀疏矩陣壓縮的存儲方法是:()
5. 二叉樹的后序排列DBEFCA,中序排列DBAECF,那么對其做先序線索化二叉樹,節點E的線索化指向節點()
A BC B AC C DF D CF
建立線索二叉樹,或者說對二叉樹線索化,實質上就是遍歷一顆二叉樹。(網搜)
//剛開始不明白什么是線索二叉樹,憑感覺應該就是遍歷二叉樹,在遍歷過程中,訪問結點的操作是檢查當前的左,右指針域是否為空,將它們改為指向前驅結點或后續結點的線索。E的前驅是C,后繼是F。
6. 線性結構的是()
A 串 B 鏈式存儲棧 C順序存儲棧 D 順序存儲二叉樹7. Linux命令是哪些()
A ls B mkdir Cmagnify D man
//做錯咯,對linux的magnify(放大鏡實用程序)不敢肯定。但是敲擊進去卻不可用,不知道是不是老版本可用,新版本不可用,真不知道是不是命令。
8. Unix系統中,適合任意兩個進程通信的是()
A FIFO B PIPE C Message Queue D sharememory
//可以進行進程通信的有:管道、信號、信號量、消息隊列、共享內存、套接字(套接字上次的騰訊面試中有提,但是別人答案未選,存在爭議,待解答:))
PS:網友改正,答應應該為ACD,PIPE就是匿名管道的意思,而命名管道的另一種說法就是FIFO。匿名管道只能在父子進程中進行通信。
園中講解:進程間通信程序設計1
9. Windows系統中,不適合進程通訊的是()
A 臨界區 B 互斥量 C 信號量 D 事件10. 下面的內存管理模式中,會產生外零頭的是()
A 頁式 B段式C 請求頁式 D 請求段式11. Linux執行ls,會引起哪些系統調用()
A nmap B read C execve D fork12. a 是二維數組,a[i][j]的指針訪問方式為:()
A *(a+i+j) B *(*(a+i)+j) C *(a+i)+j D *a+i+j
13 輸出以下結果:
#define add(a,b) a+b;
Intmain()
{
Printf(“”,3*add(4,7));
}
A 33 B 19 C 25 D 49 //騰訊筆試好像是去年的原題吧 3*4+7=19
14 對於以下代碼,char * p= newchar[100]
A p 和 new出來的內存都在棧上
B p 和 new出來的內存都在堆上
C p在棧上 new出來的在堆上
D p在堆上 new出來的在棧上
15 進程A讀取B進程中的某個變量(非共享內存),可行的方式()
A 進程向消息隊列寫入一個包含變量內容的消息,B進程從隊列中讀出
B 通過本地環路通信
C 如果A、B 非親屬,那么A通過命名管道把這個變量的地址發給B進程
D 如果 B是A 進程,那么B直接讀取變量內容即可
//不太確定,待解釋
16 使用 send發送大量小的數據包,說法正確的是()
A 帶寬利用率低 B 網卡吞吐很高 C 網卡中斷頻繁 D 進程上下文切換頻繁
//自己選的ABCD,也不知道對不對,求解釋
17 TCP的握手與分手 可能出現的情形是()
A 握手需要3次通信
B 分手需要進行4次通信
C Fin和ACK 在同一包里
D ACK 和SYN 在同一包里
18. 和16題 一樣。。。。。。
19. 新窗口打開網頁,以下哪個()
A _self B _blank C _top D _parent
20.二進制數01011011轉化為十進制為()
A 103 B 91 C 171 D 71
21 版本控制軟件是哪些()
A bugzilla B subversion C Git D loadrunner
Loadrunner: 壓力測試工具
A 字段A 建立hash索引,字段B btree索引
B 字段A 建立hash索引,字段B不建立索引
C字段A 建立btree索引,字段B不建立索引
D 字段A 不建立 索引,字段B建立btree索引
//數據庫內部采用的是B-Tree結構方便查詢一個區間段的值,適合進行區間索引(自認)
A 1個表只能有一個聚族索引,多個非聚族索引
B 字符串模糊查詢不適合索引 //自認為B是對的,但是不確定,待解答
C 哈希索引有利於查詢字段用於大小范圍的比較查詢
D 多余的索引字段會降低性能
24 CPU與外設的傳輸數據的方式是()
A 程序方式 B中斷 C DMA D 通道方式
25 式子7*15=133成立,則用的是幾進制()
A 6 B 7 C 8 D 9 //7*15(轉十進制為13)=133(轉十進制64+24+3=91)
(二)填空題
26. MySQL中表test選擇10條到20條記錄的語句是()
limit是mysql的語法
select * from table limit m,n
其中m是指記錄開始的index,從0開始,表示第一條記錄
n是指從第m+1條開始,取n條。
select * from tablename limit 2,4
即取出第3條至第6條,4條記錄
27. 若信號S為9,則S經過15次P和14次V,S為()
8 每P一次減一,沒V一次加一。相當於一個容器(S),進去一個(P)容量就少一個,出來一個(V)容量就多一個。
28. 頁面走向:4 3 2 1 4 3 5 4 3 2 1 5 4,當分配的內存物理快數4(開始為裝入),采用LRU淘汰算法,產生多少次缺頁()
LRU:最近最少使用淘汰算法:
30. G是一個鄰接表,以V1為起點,深度優先遍歷序列V1V2V3V6V5V4,從V1開始的廣度優先遍歷序列是()

32.
(1)如果A投硬幣是正面的,B給A 1美金
(2)如果A投的是反面,就再投,為正面,B給A 2美金
(3)如果還是反面,就再投,為為正面,B給A 4 美金
(4)假設A投的是反面,就投到正面為止,B就給A 的2的(n-1)次方
如果A、B玩這樣的硬幣游戲,A至少要給B多少錢B才不會虧錢()
此題還真不會做,有待大家解答。只明了不管是哪一次停止,按概率算的話,給出的錢都是1/2: 第n次結束的概率為1/2的n方,而給的錢為2的n-1方
33.左輪槍,左輪槍,有6個彈巢,兩顆子彈放進相鄰的彈巢,撥動轉輪,然后拿着這把槍朝我自己扣動,但我還活着,現在輪到你了,你有兩種選擇
(1)在扣動一次轉輪,把槍對准自己,扣動扳機
(2)不撥動轉輪,直接對准自己,扣動扳機
假設你還不想死,你選擇哪種()原因()

提交的時候遇到這個問題,是不是有點坑爹啊,呵呵,看來網絡環境還是要大家來維系。
附加題:
34.描述mapreduce的執行過程,最好用畫圖的方式表示。
參考解答:http://liouwei20051000285.blog.163.com/blog/static/252367420116125223809/
35.數據庫A的ID從20120120300001到20120120399999,更新ID從00001到99999,遞增加1,不重復,不間斷(並保持高並發的性能)