“小企鵝”IT公司,就是做IM的那個。“小企鵝”的筆試考得覆蓋面比較全,但都比較基礎,評記憶存檔一份吧。由於記憶不全,有些題只給出描述,後面的括號是我當時的答案。
選擇題:20*3=60分
1、R1、R2、R3三個組件,其中R1、R3串聯,兩個R2並聯再和R1、R3串聯,已經R1、R3的可靠性是c1,c3,如果想要整個系統的可靠性達到c,問R2的可靠性最少要達到多少?(c=c1*x*c3, x = 1-(1-c2)2 )
2、Fibonacci數列, f(0)=0, f(1)=1, f(n)=f(n-1)+f(n-2), n>=2, 問用簡單遞歸方法f(5)總共做了幾次加操作?(7次)
3、HTTP協議相關(是服務器與客戶端協議,應用層協議)
4、有三個進程P1、P2、P3優先級爲P1>P2>P3,分時搶佔式佔用單處理器,三個進程可以並行使用IO。如果每個進程都要CPU執行10S,IO操作13s,然後再CPU執行5s。問三個進程同時執行,問CPU空閒多少時間?(13s)
5、操作系統中所說的“顛簸”是指什麼?(頻繁的剛替換出去的內存頁不久又被替換回來)
6、如果一個進程申請到了排它鎖,可以進行讀寫?(可讀可寫)
7、if(x<500){
...
}else if(x<=2000){
}else{
}
給出滿足覆蓋率100%的測試用例?
8、SQL語句,s表,c表,sc表,求每門課的平均成績,要求按兩點排序。(AVG函數,然後需要group by子語)
9、一個算術表達式,求後綴表達式
10、一段程序:
for(int i=0;i<150;i++)
for(int j=0;j<100;j++)
A[i][j]=0;
爲此段程序分配兩個數據頁,每個頁面可存放150個int, 其中i、j已經存放到代碼頁中,初始時兩個數據頁爲空,問執行此段程序共會
產生多少次頁中斷?(50次)
11、MST最小生成樹,給一個圖,圖上邊有權值,求MST的邊權和。
12、MD5(消息摘要算法),問輸出爲多少比特位?(4個32位並聯,共128位)
13、已經一棵二叉樹,問通過左兒子右兄弟轉化結果?
14、數據流圖(DFD)、UML圖、ER圖中哪個用來表示數據流傳送,數據加工過程?(DFD)
15、給一組數據,問經過qsort一次時結果?
16、給一個虛擬地址,給出頁表,問轉換後的物理地址?
17、5個點的權值分別是a、b、c、d、e,問構造5個葉子節點的哈夫曼樹權值和?(原理一樣,只不過比哈夫曼前綴編碼表述不一樣)
18、tcp協議中,關於send()與recv()的一些問題。send()成功是否表示數據已經接受成功。兩次send()是否一次recv()就可以等等。
19、cache的原理哪些不正確?(增加了內存容量)
20、給一組數據進行排序,給出迭代三次結果,問是哪種排序?
程序填空題 4*10=40分
1、文字描述:創建單鏈表、單鏈表逆序
2、設計一個計算器,支持簡單數字形式,即+-*/操作(支持括號)。
細節:操作是用函數跳轉表、支持括號使用遞歸做的。相比前一題有難度。
附加題:不算成績,只是給面試者參考
(C/C++方向)
文字描述:一個嵌入式設備,有一個連續8M的內存。程序運行會申請內存,有16B、16B~32B、32B~64B...128B~1K,並且每種塊大小範圍的請求有一定比例。讓設計一個內存分配器,達到最佳性能。問如何使更多請求得到滿足,估算內存利用率有多少?