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