群碩筆試題
群碩的筆試在語(yǔ)言方面主要是Java和C++,夾了一道C#題,趁記憶猶新的時(shí)候記下來(lái)
一、給了一棵二叉樹(shù)的前序遍歷和中序遍歷,要求寫(xiě)出后序遍歷。
看一下數據結構就行了,很easy。提示:前序遍歷的第一個(gè)節點(diǎn)為根結點(diǎn),在中序遍歷中根結點(diǎn)的左邊節點(diǎn)是左子樹(shù),右邊節點(diǎn)是右子樹(shù),如此遞歸。
二、什么是物理內存和虛擬內存,OS中為什么要使用虛擬內存?
看OS的書(shū)。
三、解釋一下C#中的“delegate”。
原先不清楚的,然后在技術(shù)面試的時(shí)候問(wèn)了一下面試官,原來(lái)類(lèi)似于一個(gè)隊列,隊列中存的'是函數指針(托管函數),運行時(shí)隊列中的函數會(huì )在一個(gè)線(xiàn)程中被依次執行。
四、與子程序傳遞參數有哪些方法?
匯編題,我想起來(lái)三個(gè):參數壓棧、參數存寄存器、參數存數據段。
五、解釋一下Java中的String和StringBuffer,什么時(shí)候需要使用StringBuffer?
核心是String對象是不變對象,連接、取子串等操作會(huì )生成新的對象,舊對象可能會(huì )被回收。StringBuufer則是可變對象,上述操作將在原對象上進(jìn)行。
六、Java中哪些容器的默認布局器(layout)是BorderLayout?
這個(gè)不是那得很準,就寫(xiě)了JFrame及其子類(lèi),Frame及其子類(lèi)。
七、一個(gè)C++的函數:
int operation(int numberA,int numberB){
return numberA + numberB;
}
然后聲明了三個(gè)變量:
int a = 2;
int result1 = operation(5, a++);
int result2 = operation(5+a, ++a);
問(wèn)result1和result2的值。
原先以為考得是傳值、傳引用的問(wèn)題,結果仔細一看考得是a++和++a的問(wèn)題,這就簡(jiǎn)單了。
result1 = 7, result2 = 12
八、如果父類(lèi)的析構函數沒(méi)有聲明為虛函數的話(huà)在父類(lèi)的指針上調用析構函數會(huì )有什么后果?
屏蔽多態(tài),子類(lèi)申請的資源將不被釋放。
九、定義了一個(gè)類(lèi):
class Something{
pulic:
Something();
void setValue(int val){
value = val;
}
private:
int value;
}
以及一個(gè)函數:
void doSomething(int val){
Something* sth = new Something(); // Line 1
sth->setValue(val); // Line 2
}
問(wèn)Line 2如果是doSomething()的最后一行的話(huà)會(huì )有什問(wèn)題?
doSomething執行完后sth沒(méi)有被銷(xiāo)毀,內存泄漏。
十、寫(xiě)一個(gè)程序將輸入的16進(jìn)制轉為10進(jìn)制。
基礎
十一、設計一個(gè)微波爐的控制程序(OO)。
這道題有點(diǎn)意思,我主要用Observer模式設計了一個(gè)定時(shí)器,然后把微波爐烹飪的對象抽象為Cookable。
十二、邏輯題,一列火車(chē)以15 mph的速度從北京開(kāi)往上海,另一列火車(chē)以20 mph的速度從上海開(kāi)往北京,一只鳥(niǎo)(比較笨)速度25 mph,在兩列火車(chē)之間來(lái)回飛,相遇即折回。問(wèn)到兩列火車(chē)相遇這只笨鳥(niǎo)一共飛了多遠?
很簡(jiǎn)單,因為鳥(niǎo)一直在飛,所以一共飛了s/(15 + 20),s為上海到北京之間的距離,那么它一共飛了s/(15 + 20) * 25 mile。
12道題,除了那道C#題,其它覺(jué)得沒(méi)多少地方能扣我分了,當天晚上就沒(méi)睡好,很興奮。果然第二天上午就打電話(huà)來(lái)讓我去面試,效率真的很高,然后就果然順利拿到了offer
【群碩筆試題】相關(guān)文章:
群碩軟件筆試題07-11
360筆試題目07-11
華為2017筆試題08-16
華為2017筆試試題08-10
桂林銀行筆試題筆經(jīng)07-20
學(xué)碩和專(zhuān)碩的區別08-21