1 校內網實習生C++筆試總結 時間為1小時,小題都為填空題共8道,大題有四道。 總體來說小題沒有跑出面試寶典+effective c++ 兩本書。 大題整體也不是太復雜,但是仍然感到犀利。 2 填空題 (1) 一個 #define SUM(a+b) a + b 然后輸出 SUM(a , b) * SUM(c , d) 這個題應該大家都注意過,宏經常會出現的問題。 (2)還有一個考察 sizeof() 和 strlen()的問題。 考察 char s1[] , 與 char *s2 之間的區別,注意一點s1是個字符數組,sizeof(s1) = 字符串長度 + 1 (最后一個0) , sizeof(s2) = 4 strlen 是一個函數,求取的是字符串的長度,對s1和s2結果都一樣,但是注意strlen不需要計數最后一個0 字符。 (3)定義一個結構體 ,結構體中有一個函數,函數中有一個輸出語句。 然后聲明一個結構體指針,但是該指針為NULL。使用該指針調用函數,即使該指針為空,但是不會出現異常。 所謂異常是指訪問了非法內存,但是此種情況不是。 (4)考察了 父類子類的 構造函數和析構函數的執行順序 。 (5)1000個硬幣 ,只有一個與其余999個不同,求找出該硬幣的最小次數。我猜的是用2分 (6) 100 * 1000 平米中種樹,樹苗之間相隔至少為1米,求最多種多少樹。 (7)有一個字符串 復制操作符構造函數,就是考察了 copying 函數,c++ 變焦模糊的地方。 (8)忘了。。。。。 3 大題 (1)求最大公約數,gcd ,思路兩個數a , b ,首先注意當兩者之中有其一為0,需要直接返回0。 然后遞歸是gcd(b , a%b) (2)進程間通信方式 (a)管道方式: 半雙工通信,單向流動只能在具有親緣關系的進程之間通信,即父子進程。 (b)有名管道:半雙工通信,允許無親緣關系的進程之間通信。 (c)信號量: 實際上是一個計數器,可以用來控制多個進程對共享資源的訪問。它常作為一種鎖機制, 來控制多個進程對共享資源的訪問。缺點是傳遞的數據量比較少。 (d) 消息隊列:是消息的隊列,存放在內核中,并由消息隊列標識符標示。 消息隊列客服了消息傳遞的數據量過少,管道只承載無格式字節流以及緩沖區大小受限。 (e) 信號: 一種復雜的機制,用來通知某進程某項任務已經完成。 (f)共享內存: 實質上開辟了一塊內存,這塊內存由一個進程創建,多個進程共享。 這是最快的IPC方式 。它是針對其它進程運行效率低而實現的。 (g)套接字socket: 同樣是一種進程之間通信方式,但是可以作用于不同機器上的不同進程。 (3)用c++實現一段單例模式的代碼,要求是實現線程安全機制,使用mutex,這題不太明白。 難道自己實現mutex? c++語言本身沒有同步的信號量。 要么就是調用系統調用。。 (4)合并兩個有序的單鏈表。糾結許久,還是打算實現了。
posted on 2011-06-15 10:54 kahn 閱讀(280) 評論(0) 編輯 收藏 引用
Powered by: C++博客 Copyright © kahn