當前位置:概念範文網>求職簡歷>筆試題目>

C網絡遊戲程序員筆試題

筆試題目 閲讀(1.29W)

C++由於過度的複雜性,以及與unix的文化相牴觸,在unix/linux領域受到很多著名人士(比如Linux之父linus torvalds與著名黑客Eric S. Raymond)的強烈批評與抵制。下面就由本站小編為大家介紹一下C++網絡遊戲程序員筆試題的文章,歡迎閲讀。

C網絡遊戲程序員筆試題

C++網絡遊戲程序員筆試題篇1

1 請寫代碼打印100之內的素數,講求效率(請做你的解法的效率分析)

2 求m,n的最大公約數

3 輸入10個字符串,打印出其中重複的字符串以及重複的次數

4 請畫圖例(UML最好),給出windows下的文件目錄的設計模式

5 用OO表示狼吃羊羊吃草

問答題:

1 什麼是subversion?它與vss,cvs的區別在哪?或者有什麼優勢?

2 什麼是wiki,關於程序項目的wiki你使用過哪些?wiki對你有什麼幫助嗎?wiki與程序文擋的差別在哪?

3 什麼是tdd?你使用過嗎?tdd的關鍵在哪?跟傳統的單元測試相比,有什麼優越性?

4 什麼是單元測試?你用過哪些單元測試工具?他們的區別和好處各有哪些?你主要傾向於哪一種?

5 什麼是編程規範?你傾向於什麼樣的規範?他的好處在哪?

6 什麼是mfc?你經常使用那些mfc類?那麼為什麼很多人不主張使用mfc?

7 什麼是頭文件依賴?你注意過這些問題嗎?你注意過編譯的時間嗎?你怎麼改進編譯時間?

8 什麼是面向對象?你在哪些方面用過面向對象?帶來了什麼好處?又有什麼弊端?

9 什麼是接口編程,他帶來了什麼好處?適用於什麼地方?

10 什麼是設計模式?使用設計模式有什麼好處?列舉你使用過的設計模式

後面還有一道文學詩歌,一道歷史常識題以及三道邏輯推理題。

C++網絡遊戲程序員筆試題篇2

1. “引用”與指針的區別是什麼?

指針通過某個指針變量指向一個對象後,對它所指向的變量間接操作。程序中使用指針,程序的可讀性差;而引用本身就是目標變量的別名,對引用的操作就是對目標變量的操作。此外,就是上面提到的對函數傳ref和pointer的區別。

2. 什麼時候需要“引用”?

流操作符<<和>>、賦值操作符=的返回值、拷貝構造函數的參數、賦值操作符=的參數、其它情況都推薦使用引用。

C++網絡遊戲程序員筆試題篇3

1. New delete 與malloc free 的聯繫與區別?

答案:都是在堆(heap)上進行動態的內存操作。用malloc函數需要指定內存分配的字節數並且不能初始化對象,new 會自動調用對象的構造函數。delete 會調用對象的destructor,而free 不會調用對象的destructor.

2. #define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i 是多少?

答案:i 為30.

3. 有哪幾種情況只能用intialization list 而不能用assignment?

答案:當類中含有const、reference 成員變量;基類的構造函數都需要初始化表。

4. C++是不是類型安全的?

答案:不是。兩個不同類型的指針之間可以強制轉換(用reinterpret cast)。C#是類型安全的。

5. main 函數執行以前,還會執行什麼代碼?

答案:全局對象的構造函數會在main 函數之前執行。

6. 描述內存分配方式以及它們的區別?

1) 從靜態存儲區域分配。內存在程序編譯的時候就已經分配好,這塊內存在程序的整個運行期間都存在。例如全局變量,static 變量。

2) 在棧上創建。在執行函數時,函數內局部變量的存儲單元都可以在棧上創建,函數執行結束時這些存儲單元自動被釋放。棧內存分配運算內置於處理器的指令集。

3) 從堆上分配,亦稱動態內存分配。程序在運行的時候用malloc 或new 申請任意多少的內存,程序員自己負責在何時用free 或delete 釋放內存。動態內存的生存期由程序員決定,使用非常靈活,但問題也最多。

ct 和 class 的區別

答案:struct 的成員默認是公有的,而類的成員默認是私有的。struct 和 class 在其他方面是功能相當的。

從感情上講,大多數的開發者感到類和結構有很大的差別。感覺上結構僅僅象一堆缺乏封裝和功能的開放的內存位,而類就象活的並且可靠的社會成員,它有智能服務,有牢固的封裝屏障和一個良好定義的接口。既然大多數人都這麼認為,那麼只有在你的類有很少的方法並且有公有數據(這種事情在良好設計的系統中是存在的!)時,你也許應該使用 struct 關鍵字,否則,你應該使用 class 關鍵字。

8.當一個類A 中沒有生命任何成員變量與成員函數,這時sizeof(A)的值是多少,如果不是零,請解釋一下編譯器為什麼沒有讓它為零。(Autodesk)

答案:肯定不是零。舉個反例,如果是零的話,聲明一個class A[10]對象數組,而每一個對象佔用的空間是零,這時就沒辦法區分A[0],A[1]…了。

9. 在8086 彙編下,邏輯地址和物理地址是怎樣轉換的?(Intel)

答案:通用寄存器給出的地址,是段內偏移地址,相應段寄存器地址*10H+通用寄存器內地址,就得到了真正要訪問的地址。