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