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