作為中國三大巨頭之一 的360,更是受畢業(yè)生喜愛,下面為奇虎360研發(fā)類校園招聘筆試題以及部分答案。
客觀題
1. 小畢最近電腦很慢,懷疑是中了病毒,于是找了三款殺毒軟件掃描了一下:
A軟件掃描結(jié)果:如果中了病毒X,那么也可能中了病毒Y
B軟件掃描結(jié)果:如果沒有中病毒X,那么一定中了病毒Y
C軟件掃描結(jié)果:中了病毒X
小畢不知道該相信哪個(gè),于是找36技術(shù)支持,36技術(shù)支持告訴他只有一個(gè)軟件的掃描結(jié)果是正確,那么請(qǐng)推斷:()
A 中了病毒X B 中了病毒Y C 兩個(gè)病毒都中了 D 兩個(gè)都沒中
2. 一個(gè)富人雇1人為他做七天工,他給他的工錢是毗鄰在一起的七塊金條(天天一塊),要保證天天雇工拿到他應(yīng)拿工錢(不能多也不能少),富人只能掰斷二次連在一起的金條,問:最少掰斷幾次能做到按要求給雇工報(bào)酬?()
A. 2 B 3 C 4 D 7
3. 某學(xué)校有四名外國專家,分別來自美國、加拿大、韓國和日本。他們分別在電子、機(jī)械
和生物三個(gè)系工作,其中:
、 日本專家單獨(dú)在機(jī)械系;
② 韓國專家不在電子系;
、 美國專家和另外某個(gè)外國專家同在某個(gè)系;
、 加拿大專家不和美國專家同在一個(gè)系。
以上條件可以推出美國專家所在的系為
(A) 電子
(B) 機(jī)械系
(C) 生物系
(D) 電子系或生物系
答案: D
4. 五對(duì)夫婦甲乙丙丁戊聚會(huì),見面是互相握手問候,每個(gè)人都可以和其他人握手,但夫婦之間不能握手,甲先生好奇地私下問每個(gè)人(包括他太太)打聽剛才握手的次數(shù),得到的回答是:,1,2,3,4,5,6,7,8,文甲太太握手( )次。
A. 3 B 4 C 5 D 6
答案:B
分析:這是一道邏輯推理趣題 .顯然 ,每個(gè)人不會(huì)和自己握手 ,也不會(huì)和自己的配偶握手 .當(dāng)然某兩人之間也不會(huì)握兩次手 .此外 ,由于各種原因造成可握手的人并不一定都握手 .因此在他們這 1個(gè)人中 ,握手次數(shù)最多的人握手的次數(shù)也不能大于 8. 由甲已經(jīng)問得九個(gè)人握手的次數(shù)分別是 ,1,2 ,3 ,4,5 ,6,7,8, 共九種情形 .分析可得 :握手次數(shù)為 8的人和握手次數(shù)為零的人必定是一對(duì)夫妻 .這是因?yàn)槲帐执螖?shù)為 8的人 ,不妨假定為乙 ,他必和除乙太太以外的四對(duì)夫婦中的每個(gè)人都握了手 .于是這四對(duì)夫婦中的每個(gè)人握手的次數(shù)都不能是零 .那么 ,握手次數(shù)為零者只能是乙太太了 .這樣 ,乙氏夫婦的握手次數(shù)已經(jīng)確定 ,予以排除...,那么既然握手次數(shù)之和為8的必定是一對(duì)夫妻,九人中又沒有兩個(gè)人握手的次數(shù)相同,所以只有甲先生和甲太太握手次數(shù)同為4次
5. 甲、乙、丙、丁四個(gè)人,一個(gè)是教師,一個(gè)是售貨員,一個(gè)是工人,一個(gè)是老板。請(qǐng)你根據(jù)下面的情況判斷每個(gè)人的職業(yè)。()
(1) 甲和乙是鄰居,每天一起騎車去上班 (2) 甲比丙年齡大
(3) 甲和丁業(yè)余煉武術(shù)
(4) 教師每天步行上班
(5) 售貨員的鄰居不是老板
(6) 老板和工人互不相識(shí)
(7) 老板比售貨員和工人年齡都大
6. 某商店以6元同時(shí)賣出兩件商品,已知其中一件賺2%,另一件虧2%,那么這個(gè)商店賣出這兩件商品是賺了()
A -1 B 5 C -5 D
7. 某城市發(fā)生了一起汽車撞人逃跑事件,該城市只有兩種顏色的車,藍(lán)色15% 綠色85%,事發(fā)時(shí)有一個(gè)人在現(xiàn)場(chǎng)看見了,他指證是藍(lán)車
但是根據(jù)專家在現(xiàn)場(chǎng)分析,當(dāng)時(shí)那種條件能看正確的可能性是8%
那么,肇事的車是藍(lán)車的概率到底是多少()
A 12% B 21% C 41% D 8%
提示:貝葉斯概率題
8. X是類名稱,下面哪個(gè)寫法是錯(cuò)誤的
A const X * x B X const * x C const X const *x D X * const x
9. 程序輸出題()
#include
void main()
{
for(int a = 1, b = 1; a <= 1; a++)
{
if(b >= 2) break;
b += 3;
}
b = b - 5;
printf("%d\n", a);
}
A 6 B 7 C 8 D 9
10.判斷題()
for(int i = , k = 1; k = ; i++, k++)
A 判斷循環(huán)的條件不合法 B 陷入無限循環(huán) C 循環(huán)一次也不執(zhí)行 D 循環(huán)只執(zhí)行一次
11. 假設(shè)指針變量p定義為:int *p = new int[1],下面釋放p所執(zhí)行內(nèi)存的操作中正確的是()
A delete p B delete *p C delete &p D delete []p
12. 選擇填空()
#include
void test(void *data)
{
unsigned int value = 填空處;
printf("%d\n", value);
}
void main()
{
unsigned int data = 1;
test(&data);
}
A *data B (unsigned int) *data
A (unsigned *)data B *(unsigned int *)data
13. 在C++中下面哪個(gè)可以成為對(duì)象繼承之間的轉(zhuǎn)換()
A static_cast B dynamic_cast C const_static D reinterpret_cast
答案:A
14. 下面程序的輸出結(jié)果是()
A *pa = new A();
pa->f();
B *pb = (B*)pa;
pb->f();
delete pa, pb;
pa = new B();
pa->f();
pb = (B*)pa;
pb->f();
A AABA B AABB C AAAB D ABBA
15. 輾轉(zhuǎn)相除法求兩個(gè)非負(fù)整數(shù)之間的最大公約數(shù)
long long gcd(long long x, long long y)
{
if(y == ) return ;
else return gcd(y, x % y);
}
假設(shè)x和y中較大的數(shù)長度為n,則此算法的時(shí)間復(fù)雜度是()
A O(1) B O(lgn) C O(n) D O(n ^ 2)
答案:輾轉(zhuǎn)相除法的時(shí)間復(fù)雜度穩(wěn)定于O(logn)
16. 進(jìn)程間通訊方式中哪種訪問速度最快?()
A 管道 B消息隊(duì)列 C 共享內(nèi)存 D 套接字
答案:C
17. TCP關(guān)閉過程中,正確的是()
A、處于TIME_WAIT狀態(tài)的鏈接等待2MSL后真正關(guān)閉鏈接
B、對(duì)一個(gè)established狀態(tài)的TCP連接,在調(diào)用shutdown函數(shù)之前調(diào)用close接口,可以讓主動(dòng)調(diào)用的一方進(jìn)入半關(guān)閉狀態(tài)
C、主動(dòng)發(fā)送FIN消息的連接端,收到對(duì)方回應(yīng)ack之前不能發(fā)只能收,在收到對(duì)方回復(fù)ack之后不能發(fā)也不能收,進(jìn)入CLOSING狀態(tài)
D、在已經(jīng)成功建立連接的TCP連接上,任何情況下都不允許丟失數(shù)據(jù)。
18. 下列說法錯(cuò)誤的是()
A、單線程異步非阻塞模式通常在單核CPU情況下能夠比多線程更充分利用資源
B、采用鎖來訪問現(xiàn)場(chǎng)共享資源時(shí),如果加鎖和解鎖操作處在同一個(gè)線程中,則不會(huì)導(dǎo)致死鎖
C、一個(gè)程序枝梢有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線程
D、一個(gè)同步方法是一段時(shí)間內(nèi)只允許一個(gè)線程進(jìn)入執(zhí)行
19. 代碼生成階段的主要任務(wù)是()
就不給出選項(xiàng)了,答案是:把中間代碼變換成依賴具體機(jī)器的目標(biāo)代碼
2. 詞法分析器用來識(shí)別
A 句子 B 句型 C 單詞 D 生產(chǎn)式
答案:C
21. 下列說法中,哪個(gè)是錯(cuò)誤的
A、若進(jìn)程A和進(jìn)程B在臨界段上互斥,那么當(dāng)進(jìn)程A處于該臨界段時(shí),它不能被進(jìn)程B中斷
B、虛擬存儲(chǔ)管理中采用對(duì)換策略后,用戶進(jìn)程可使用的存儲(chǔ)空間似乎增加了
C、虛擬存儲(chǔ)管理中的抖動(dòng)現(xiàn)象是指頁面置換時(shí)用于換頁的時(shí)間大于程序執(zhí)行時(shí)間
D、進(jìn)程可以由程序、數(shù)據(jù)和進(jìn)程控制塊描述
答案:C
22. 操作系統(tǒng)采用分頁式存儲(chǔ)管理中,要求
A、每個(gè)進(jìn)程擁有一張頁表,且進(jìn)程的頁表駐留在內(nèi)存中
B、每個(gè)進(jìn)程擁有一張頁表,但只要執(zhí)行進(jìn)程的頁表駐留在內(nèi)存中,其他進(jìn)程的頁表不必駐留在內(nèi)存中
C、所有進(jìn)程共享一張頁表,以節(jié)約有限的內(nèi)存空間,但頁表必須駐留在內(nèi)存中
D、所有進(jìn)程共享一張頁表,只有頁表中當(dāng)前使用的頁面必須駐留在內(nèi)存中,以最大限度的節(jié)約有限的內(nèi)存空間
答案:B
23. linux中調(diào)用write發(fā)送網(wǎng)絡(luò)數(shù)據(jù)返回n(n > )表示()
A 對(duì)方已收到n個(gè)字節(jié) B 本地已發(fā)送n個(gè)字節(jié)
C 系統(tǒng)網(wǎng)絡(luò)buff已收到n個(gè)字節(jié) D 系統(tǒng)調(diào)用失敗
24. HTTP應(yīng)答中的5錯(cuò)誤是指()
A 服務(wù)器內(nèi)部錯(cuò)誤 B 文件未找到 C 客戶端網(wǎng)絡(luò)不通 D 沒有訪問權(quán)限
答案:A
主觀題
1. 在審計(jì)某一開源項(xiàng)目的代碼時(shí),假設(shè)有下面一個(gè)foo()子函數(shù)的實(shí)現(xiàn)。從安全的角度看,會(huì)存在安全漏洞嗎?有的話,請(qǐng)(1)描述漏洞細(xì)節(jié),(2)說明可以利用的方法,(3)還有該怎么修補(bǔ)漏洞。沒有的話,也請(qǐng)說明為什么。
int foo( (void*funcp)() ){
char * ptr = pointer_to_an_array;
char buf[128];
gets(buf);
strncpy(ptr, buf, 8);
(*funcp)();
}
提示:函數(shù)指針的缺陷、gets函數(shù)的缺陷、foo函數(shù)傳參的問題等。
2. 編寫一個(gè)函數(shù)求一個(gè)數(shù)組中的第二大數(shù)
提示:比較簡單,但是有很多細(xì)節(jié)需要考慮,反正我面試時(shí)被面試官問到我寫的這個(gè)程序,指出了里面的N多bug,所以細(xì)節(jié)很重要。