3.1.1 軟件工程師
技術類招聘筆試試題
1、請問C++的類和C里面的struct有什么區別?
2、int i=(j=4,k=8,l=16,m=32); printf(“%d”, i); 輸出是多少?
3、軟件開發五個主要step是什么? 在開發軟件的時候,這5個step分別占用的時間百分比是多少?
4、面向連接與面向非連接各有何利弊?
5、What will be the output of the following C code? (下面的C語言代碼的輸出是什么?)
main()
{
int k, num= 30;
k =(num > 5 ? (num <=10 ? 100:200): 500);
printf(“%d”, k);
}
6、In your opinion ,what do you think are the advantages or benefits of using an object-oriented approach to software development? how do you think those benefits can be achieved or realized? (你認為用面向對象的方法進行軟件開發有哪些優勢或好處?你認為這些好處是如何實現的呢?)
7、Queue is a useful structure (隊列是一種有用的結構)
(1)What is a queue? (什么是隊列?)
(2)Write 5 operations or functions, without details, that can be done on a queue. (寫出5個能被用于隊列的操作或函數,不要求寫出細節。)
8、用任意一種編程語言編寫n!的算法。
9、如圖:
7 8 9 10
6 1 2 11
5 4 3 12
16 15 14 13
設“1”的坐標為(0,0) “7”的坐標為(-1,-1) 編寫一個小程序,使程序做到輸入坐標(X,Y)之后顯示出相應的數字。
10、全局變量和局部變量有什么區別?是怎么實現的?操作系統和編譯器是怎么知道的?
11、請問交換機和路由器各自的實現原理是什么?分別在哪個層次上面實現的?
12、設計函數 int atoi(char *s) (
13、C++里面是不是所有的動作都是main()引起的?如果不是,請舉例。
14、寫一個函數,將其中的\t都轉換成4個空格。
15、實現雙向鏈表刪除一個節點P,在節點P后插入一個節點,寫出這兩個函數。
16、簡述ISO OSI的物理層Layer1,鏈路層Layer2,網絡層Layer3的任務。
17、什么是中斷?中斷發生時CPU做什么工作?
18、(1)編寫一個遞歸函數,刪除一個目錄。 (2)編寫一個非遞歸函數,刪除一個目錄。 并比較其性能。
19、三組程序,找出你認為的錯誤。
(1) a.c long temp[255];
b.c extern *temp;
(2) a.c long temp[255];
b.c extern temp[256];
(3) a.c long temp[255];
b.c extern temp[];
20、下列對MD5的敘述不正確的是:
(1) 是一種散列算法
(2) 指紋(摘要)的長度為128位
(3) 是一種對稱加密算法
(4) 可用來校驗數據的完整性
21、與逆波蘭表達式ab+cd+*對應的中綴表達式是:
(1) a+b+c*d
(2) (a+b)*c+d
(3) (a+b)*(c+d)
(4) a+b*c+d
22、HTTP 1.1協議中規定表示正常響應的狀態代碼是
(1) 0
(2) 100
(3) 200
(4) 400
23、在SOCKET通信過程中,下列哪些函數是客戶端需要調用,但是服務端不需要調用的函數?
(1) socket()
(2) bind()
(3) connect()
(4) send()
24、將網絡地址映射為鏈路層相應地址的協議是
(1) DNS
(2) TCP
(3) ARP
(4) ICMP
25、int listen(SOCKET s, int backlog);該函數中第二個參數的含義
(1) 是否打開log信息
(2) 是否打開后臺log信息
(3) 后臺等待連接隊列的最大限制值
(4) 后臺等待連接隊列的最小限制值
(5) 無意義