C++網(wǎng)絡(luò)游戲程序員筆試題
C++由于過度的復(fù)雜性,以及與unix的文化相抵觸,在unix/linux領(lǐng)域受到很多著名人士(比如Linux之父linus torvalds與著名黑客Eric S. Raymond)的強(qiáng)烈批評與抵制。下面就由學(xué)習(xí)啦小編為大家介紹一下C++網(wǎng)絡(luò)游戲程序員筆試題的文章,歡迎閱讀。
C++網(wǎng)絡(luò)游戲程序員筆試題篇1
1 請寫代碼打印100之內(nèi)的素?cái)?shù),講求效率(請做你的解法的效率分析)
2 求m,n的最大公約數(shù)
3 輸入10個(gè)字符串,打印出其中重復(fù)的字符串以及重復(fù)的次數(shù)
4 請畫圖例(UML最好),給出windows下的文件目錄的設(shè)計(jì)模式
5 用OO表示狼吃羊羊吃草
問答題:
1 什么是subversion?它與vss,cvs的區(qū)別在哪?或者有什么優(yōu)勢?
2 什么是wiki,關(guān)于程序項(xiàng)目的wiki你使用過哪些?wiki對你有什么幫助嗎?wiki與程序文擋的差別在哪?
3 什么是tdd?你使用過嗎?tdd的關(guān)鍵在哪?跟傳統(tǒng)的單元測試相比,有什么優(yōu)越性?
4 什么是單元測試?你用過哪些單元測試工具?他們的區(qū)別和好處各有哪些?你主要傾向于哪一種?
5 什么是編程規(guī)范?你傾向于什么樣的規(guī)范?他的好處在哪?
6 什么是mfc?你經(jīng)常使用那些mfc類?那么為什么很多人不主張使用mfc?
7 什么是頭文件依賴?你注意過這些問題嗎?你注意過編譯的時(shí)間嗎?你怎么改進(jìn)編譯時(shí)間?
8 什么是面向?qū)ο?你在哪些方面用過面向?qū)ο?帶來了什么好處?又有什么弊端?
9 什么是接口編程.com,他帶來了什么好處?適用于什么地方?
10 什么是設(shè)計(jì)模式?使用設(shè)計(jì)模式有什么好處?列舉你使用過的設(shè)計(jì)模式
后面還有一道文學(xué)詩歌,一道歷史常識題以及三道邏輯推理題。
C++網(wǎng)絡(luò)游戲程序員筆試題篇2
1. “引用”與指針的區(qū)別是什么?
指針通過某個(gè)指針變量指向一個(gè)對象后,對它所指向的變量間接操作。程序中使用指針,程序的可讀性差;而引用本身就是目標(biāo)變量的別名,對引用的操作就是對目標(biāo)變量的操作。此外,就是上面提到的對函數(shù)傳ref和pointer的區(qū)別。
2. 什么時(shí)候需要“引用”?
流操作符<<和>>、賦值操作符=的返回值、拷貝構(gòu)造函數(shù)的參數(shù)、賦值操作符=的參數(shù)、其它情況都推薦使用引用。
C++網(wǎng)絡(luò)游戲程序員筆試題篇3
1. New delete 與malloc free 的聯(lián)系與區(qū)別?
答案:都是在堆(heap)上進(jìn)行動(dòng)態(tài)的內(nèi)存操作。用malloc函數(shù)需要指定內(nèi)存分配的字節(jié)數(shù)并且不能初始化對象,new 會(huì)自動(dòng)調(diào)用對象的構(gòu)造函數(shù)。delete 會(huì)調(diào)用對象的destructor,而free 不會(huì)調(diào)用對象的destructor.
2. #define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i 是多少?
答案:i 為30.
3. 有哪幾種情況只能用intialization list 而不能用assignment?
答案:當(dāng)類中含有const、reference 成員變量;基類的構(gòu)造函數(shù)都需要初始化表。
4. C++是不是類型安全的?
答案:不是。兩個(gè)不同類型的指針之間可以強(qiáng)制轉(zhuǎn)換(用reinterpret cast)。C#是類型安全的。
5. main 函數(shù)執(zhí)行以前,還會(huì)執(zhí)行什么代碼?
答案:全局對象的構(gòu)造函數(shù)會(huì)在main 函數(shù)之前執(zhí)行。
6. 描述內(nèi)存分配方式以及它們的區(qū)別?
1) 從靜態(tài)存儲(chǔ)區(qū)域分配。內(nèi)存在程序編譯的時(shí)候就已經(jīng)分配好,這塊內(nèi)存在程序的整個(gè)運(yùn)行期間都存在。例如全局變量,static 變量。
2) 在棧上創(chuàng)建。在執(zhí)行函數(shù)時(shí),函數(shù)內(nèi)局部變量的存儲(chǔ)單元都可以在棧上創(chuàng)建,函數(shù)執(zhí)行結(jié)束時(shí)這些存儲(chǔ)單元自動(dòng)被釋放。棧內(nèi)存分配運(yùn)算內(nèi)置于處理器的指令集。
3) 從堆上分配,亦稱動(dòng)態(tài)內(nèi)存分配。程序在運(yùn)行的時(shí)候用malloc 或new 申請任意多少的內(nèi)存,程序員自己負(fù)責(zé)在何時(shí)用free 或delete 釋放內(nèi)存。動(dòng)態(tài)內(nèi)存的生存期由程序員決定,使用非常靈活,但問題也最多。
7.struct 和 class 的區(qū)別
答案:struct 的成員默認(rèn)是公有的,而類的成員默認(rèn)是私有的。struct 和 class 在其他方面是功能相當(dāng)?shù)摹?/p>
從感情上講,大多數(shù)的開發(fā)者感到類和結(jié)構(gòu)有很大的差別。感覺上結(jié)構(gòu)僅僅象一堆缺乏封裝和功能的開放的內(nèi)存位,而類就象活的并且可靠的社會(huì)成員,它有智能服務(wù),有牢固的封裝屏障和一個(gè)良好定義的接口。既然大多數(shù)人都這么認(rèn)為,那么只有在你的類有很少的方法并且有公有數(shù)據(jù)(這種事情在良好設(shè)計(jì)的系統(tǒng)中是存在的!)時(shí),你也許應(yīng)該使用 struct 關(guān)鍵字,否則,你應(yīng)該使用 class 關(guān)鍵字。
8.當(dāng)一個(gè)類A 中沒有生命任何成員變量與成員函數(shù),這時(shí)sizeof(A)的值是多少,如果不是零,請解釋一下編譯器為什么沒有讓它為零。(Autodesk)
答案:肯定不是零。舉個(gè)反例,如果是零的話,聲明一個(gè)class A[10]對象數(shù)組,而每一個(gè)對象占用的空間是零,這時(shí)就沒辦法區(qū)分A[0],A[1]…了。
9. 在8086 匯編下,邏輯地址和物理地址是怎樣轉(zhuǎn)換的?(Intel)
答案:通用寄存器給出的地址,是段內(nèi)偏移地址,相應(yīng)段寄存器地址*10H+通用寄存器內(nèi)地址,就得到了真正要訪問的地址。