接下來(lái)的面試題傳送門(mén):
2014 360校園招聘技術(shù)類(lèi)面試題
<p>
</p>
選擇題
- 小畢最近電腦很慢,懷疑是中了病毒,于是找了三款殺毒軟件掃描了一下:
A軟件掃描結(jié)果:如果中了病毒X,那么也可能中了病毒Y
B軟件掃描結(jié)果:如果沒(méi)有中病毒X,那么一定中了病毒Y
C軟件掃描結(jié)果:中了病毒X
小畢不知道該相信哪個(gè),于是找360技術(shù)支持,360技術(shù)支持告訴他只有一個(gè)軟件的掃描結(jié)果是正確,那么請(qǐng)推斷:()
A 中了病毒X
B 中了病毒Y
C 兩個(gè)病毒都中了
D 兩個(gè)都沒(méi)中
一個(gè)富人雇1人為他做七天工,他給他的工錢(qián)是毗鄰在一起的七塊金條(天天一塊),要保證天天雇工拿到他應(yīng)拿工錢(qián)(不能多也不能少),富人只能掰斷二次連在一起的金條,問(wèn):最少掰斷幾次能做到按要求給雇工報(bào)酬()
A. 2 B .3 C. 4 D .7某學(xué)校有四名外國(guó)專(zhuān)家,分別來(lái)自美國(guó)、加拿大、韓國(guó)和日本。他們分別在電子、機(jī)械
和生物三個(gè)系工作,其中:
① 日本專(zhuān)家單獨(dú)在機(jī)械系;
② 韓國(guó)專(zhuān)家不在電子系;
③ 美國(guó)專(zhuān)家和另外某個(gè)外國(guó)專(zhuān)家同在某個(gè)系;
④ 加拿大專(zhuān)家不和美國(guó)專(zhuān)家同在一個(gè)系。
以上條件可以推出美國(guó)專(zhuān)家所在的系為 (D)
(A) 電子
(B) 機(jī)械系
(C) 生物系
(D) 電子系或生物系五對(duì)夫婦甲乙丙丁戊聚會(huì),見(jiàn)面是互相握手問(wèn)候,每個(gè)人都可以和其他人握手,但夫婦之間不能握手,甲先生好奇地私下問(wèn)每個(gè)人(包括他太太)打聽(tīng)剛才握手的次數(shù),得到的回答是:0,1, 2,3,4,5,6,7,8,文甲太太握手( )次。
A. 3 B. 4 C. 5 D. 6甲、乙、丙、丁四個(gè)人,一個(gè)是教師,一個(gè)是售貨員,一個(gè)是工人,一個(gè)是老板。請(qǐng)你根據(jù)下面的情況判斷每個(gè)人的職業(yè)。
(1) 甲和乙是鄰居,每天一起騎車(chē)去上班
(2) 甲比丙年齡大
(3) 甲和丁業(yè)余煉武術(shù)
(4) 教師每天步行上班
(5) 售貨員的鄰居不是老板
(6) 老板和工人互不相識(shí)
(7) 老板比售貨員和工人年齡都大某商店以60元同時(shí)賣(mài)出兩件商品,已知其中一件賺20%,另一件虧20%,那么這個(gè)商店賣(mài)出這兩件商品是賺了()
A -10 B 5 C -5 D 0某城市發(fā)生了一起汽車(chē)撞人逃跑事件,該城市只有兩種顏色的車(chē),藍(lán)色15% 綠色85%,事發(fā)時(shí)有一個(gè)人在現(xiàn)場(chǎng)看見(jiàn)了,他指證是藍(lán)車(chē)。
但是根據(jù)專(zhuān)家在現(xiàn)場(chǎng)分析,當(dāng)時(shí)那種條件能看正確的可能性是80%
那么,肇事的車(chē)是藍(lán)車(chē)的概率到底是多少()
A 12% B 21% C 41% D 80%X是類(lèi)名稱(chēng),下面哪個(gè)寫(xiě)法是錯(cuò)誤的()
A const X * x B X const * x C const X const *x D X * const x下面輸出什么?()
#include <stdio.h>
void main()
{
for(int a = 1, b = 1; a <= 100; a++)
{
if(b >= 20) break;
b += 3;
}
b = b - 5;
printf("%d\n", a);
}
A 6 B 7 C 8 D 9
下面說(shuō)法正確的是()
for(int i = 0, k = 1; k = 0; i++, k++)
A 判斷循環(huán)的條件不合法
B 陷入無(wú)限循環(huán)
C 循環(huán)一次也不執(zhí)行
D 循環(huán)只執(zhí)行一次假設(shè)指針變量p定義為:int *p = new int[100],下面釋放p所執(zhí)行內(nèi)存的操作中正確的是()
A delete p B delete *p C delete &p D delete []p選擇填空()
#include <stdio.h>
void test(void *data)
{
unsigned int value = 填空處;
printf("%d\n", value);
}
void main()
{
unsigned int data = 10;
test(&data);
}
A *data B (unsigned int) *data
C (unsigned *)data D *(unsigned int *)data
在C++中下面哪個(gè)可以成為對(duì)象繼承之間的轉(zhuǎn)換()
A static_cast B dynamic_cast C const_static D reinterpret_cast下面程序的輸出結(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
- 輾轉(zhuǎn)相除法求兩個(gè)非負(fù)整數(shù)之間的最大公約數(shù)()
long long gcd(long long x, long long y)
{
if(y == 0) return 0;
else return gcd(y, x % y);
}
假設(shè)x和y中較大的數(shù)長(zhǎng)度為n,則此算法的時(shí)間復(fù)雜度是(B)
A O(1) B O(lgn) C O(n) D O(n ^ 2)
進(jìn)程間通訊方式中哪種訪(fǎng)問(wèn)速度最快?()
A 管道 B消息隊(duì)列 C 共享內(nèi)存 D 套接字TCP關(guān)閉過(guò)程中,正確的是()
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ù)。下列說(shuō)法錯(cuò)誤的是()
A、單線(xiàn)程異步非阻塞模式通常在單核CPU情況下能夠比多線(xiàn)程更充分利用資源
B、采用鎖來(lái)訪(fǎng)問(wèn)現(xiàn)場(chǎng)共享資源時(shí),如果加鎖和解鎖操作處在同一個(gè)線(xiàn)程中,則不會(huì)導(dǎo)致死鎖
C、一個(gè)程序枝梢有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線(xiàn)程
D、一個(gè)同步方法是一段時(shí)間內(nèi)只允許一個(gè)線(xiàn)程進(jìn)入執(zhí)行代碼生成階段的主要任務(wù)是(把中間代碼變換成依賴(lài)具體機(jī)器的目標(biāo)代碼)。
詞法分析器用來(lái)識(shí)別(C )
A 句子 B 句型 C 單詞 D 生產(chǎn)式下列哪一個(gè)可以作為對(duì)象繼承之間的轉(zhuǎn)換(A)
A static_cast B dynamic_cast C const_cast D reinterpret_cast下列說(shuō)法中,哪個(gè)是錯(cuò)誤的(C)
A、若進(jìn)程A和進(jìn)程B在臨界段上互斥,那么當(dāng)進(jìn)程A處于該臨界段時(shí),它不能被進(jìn)程B中斷
B、虛擬存儲(chǔ)管理中采用對(duì)換策略后,用戶(hù)進(jìn)程可使用的存儲(chǔ)空間似乎增加了
C、虛擬存儲(chǔ)管理中的抖動(dòng)現(xiàn)象是指頁(yè)面置換時(shí)用于換頁(yè)的時(shí)間大于程序執(zhí)行時(shí)間
D、進(jìn)程可以由程序、數(shù)據(jù)和進(jìn)程控制塊描述操作系統(tǒng)采用分頁(yè)式存儲(chǔ)管理中,要求(B)
A、每個(gè)進(jìn)程擁有一張頁(yè)表,且進(jìn)程的頁(yè)表駐留在內(nèi)存中
B、每個(gè)進(jìn)程擁有一張頁(yè)表,但只要執(zhí)行進(jìn)程的頁(yè)表駐留在內(nèi)存中,其他進(jìn)程的頁(yè)表不必駐留在內(nèi)存中
C、所有進(jìn)程共享一張頁(yè)表,以節(jié)約有限的內(nèi)存空間,但頁(yè)表必須駐留在內(nèi)存中
D、所有進(jìn)程共享一張頁(yè)表,只有頁(yè)表中當(dāng)前使用的頁(yè)面必須駐留在內(nèi)存中,以最大限度的節(jié)約有限的內(nèi)存空間linux中調(diào)用write發(fā)送網(wǎng)絡(luò)數(shù)據(jù)返回n(n > 0)表示()
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)用失敗HTTP應(yīng)答中的500錯(cuò)誤是指()
A 服務(wù)器內(nèi)部錯(cuò)誤 B 文件未找到 C 客戶(hù)端網(wǎng)絡(luò)不通 D 沒(méi)有訪(fǎng)問(wèn)權(quán)限根據(jù)自己的理解描述下Android數(shù)字簽名。
答:(1)所有的應(yīng)用程序都必須有數(shù)字證書(shū),Android系統(tǒng)不會(huì)安裝一個(gè)沒(méi)有數(shù)字證書(shū)的應(yīng)用程序
(2)Android程序包使用的數(shù)字證書(shū)可以是自簽名的,不需要一個(gè)權(quán)威的數(shù)字證書(shū)機(jī)構(gòu)簽名認(rèn)證
(3)如果要正式發(fā)布一個(gè)Android ,必須使用一個(gè)合適的私鑰生成的數(shù)字證書(shū)來(lái)給程序簽名,而不能使用adt插件或者ant工具生成的調(diào)試證書(shū)來(lái)發(fā)布。
(4)數(shù)字證書(shū)都是有有效期的,Android只是在應(yīng)用程序安裝的時(shí)候才會(huì)檢查證書(shū)的有效期。如果程序已經(jīng)安裝在系統(tǒng)中,即使證書(shū)過(guò)期也不會(huì)影響程序的正常功能。如何判斷大小端?
big endian(大端法)是指低地址存放最高有效字節(jié)(MSB),而little endian(小端法)則是低地址存放最低有效字節(jié)(LSB)。
#include <iostream>
using namespace std;
int main()
{
unsigned int a = ~0;
if( a>65536 )
{
cout<<"32 bit"<<endl;
}
else
{
cout<<"16 bit"<<endl;
}
return 0;
}
編程題
有一堆磚,工人每天搬剩下的一半,然后老板說(shuō)不夠,再加三塊。n天搬完,問(wèn)一共多少磚。
主觀(guān)題
- 在審計(jì)某一開(kāi)源項(xiàng)目的代碼時(shí),假設(shè)有下面一個(gè)foo()子函數(shù)的實(shí)現(xiàn)。從安全的角度看,會(huì)存在安全漏洞嗎?有的話(huà),請(qǐng):
(1)描述漏洞細(xì)節(jié);
(2)說(shuō)明可以利用的方法;
(3)還有該怎么修補(bǔ)漏洞。沒(méi)有的話(huà),也請(qǐng)說(shuō)明為什么。
int foo( (void*funcp)() ){
char * ptr = pointer_to_an_array;
char buf[128];
gets(buf);
strncpy(ptr, buf, 8);
(*funcp)();
}
- 編寫(xiě)一個(gè)函數(shù)求一個(gè)數(shù)組中的第二大數(shù)。