- 相關(guān)推薦
騰訊校招技術(shù)研發(fā)筆試題
一、不定項(xiàng)選擇題(共25題,每題4分,共100分,多選、少選、錯(cuò)選均不得分)
1、 如果MyClass為一個(gè)類(lèi),執(zhí)行”MyClass a[5], *b[6]”語(yǔ)言會(huì)自動(dòng)調(diào)用該類(lèi)構(gòu)造函數(shù)的次數(shù)是( )
A. 2 B.5 C. 4 D.9
2、下面程序的運(yùn)行結(jié)果是( )
#include using namespace std; class Base { int x; public: Base(int b):x(b) {} virtual void display() { cout< } }; class Derived:public Base { int y; public: Derived(int d):Base(d),y(d) {} void display() { cout< } }; int main() { Base b(2); Derived d(3); b.display(); d.display(); Base *p=&d; p->display(); system("pause"); return 0; }
A. 2 2 3 B.3 2 2 C. 2 3 3 D.2 3 2
3、在C++語(yǔ)言中,下面描述中,正確的是 ( )
A. 一個(gè)基類(lèi)的聲明中有純虛函數(shù),該基類(lèi)派生類(lèi)一定不再是抽象類(lèi)
B. 函數(shù)類(lèi)型不能作為重載函數(shù)的調(diào)用的依據(jù)
C. 靜態(tài)數(shù)據(jù)成員不是所有對(duì)象所公有的
D. 內(nèi)聯(lián)函數(shù)在運(yùn)行時(shí)是將該函數(shù)的目標(biāo)代碼插入每個(gè)調(diào)用該函數(shù)的地方
4、有如下程序:執(zhí)行后的輸出結(jié)果應(yīng)該是 ( )
#include using namespace std; class Base { public: ~Base() { cout<<"BASE"; } ; }; class DERIVED:public BASE { public: ~DERIVED() { cout<<"DERIVED"; } ; }; int main() { DERIVED x; return 0; }
A. BASE B. DERIVED
C. BASEDERIVED D. DERIVEDBASE
5、典型的路由選擇方式有兩種,靜態(tài)路由和動(dòng)態(tài)路由。以下描述正確的是( )
A. 當(dāng)動(dòng)態(tài)路由與靜態(tài)路由發(fā)證沖突時(shí),以靜態(tài)路由為準(zhǔn)
B. 當(dāng)動(dòng)態(tài)路由與靜態(tài)路由發(fā)證沖突時(shí),以動(dòng)態(tài)路由為準(zhǔn)
C. 靜態(tài)路由適用于網(wǎng)絡(luò)規(guī)模大、網(wǎng)絡(luò)拓?fù)鋸?fù)雜的網(wǎng)絡(luò)
D. 動(dòng)態(tài)路由適用于網(wǎng)絡(luò)規(guī)模大、網(wǎng)絡(luò)拓?fù)鋸?fù)雜的網(wǎng)絡(luò)
6、下列哪些屬于分布式文件系統(tǒng)?( )
A. HBase
B. Spark
C. MapReduce
D.KFS
E. Hive
7、 下面程序的輸出結(jié)果是( )
#include using namespace std; int i=0; int fun(int n) { static int a=2; a++; return a*n; } int main() { int k=5; { int i=2; k+=fun(i); } k+=fun(i); cout<
A. 13 B. 14 C.15 D. 16
8、在Java中,以下那些數(shù)據(jù)結(jié)構(gòu)可以以長(zhǎng)亮的時(shí)間復(fù)雜度0(1)添加元素( )
A. HashMap B.ArrayList C. TreeMap D. LinkedList
9、若一棵二叉樹(shù)的前序遍歷為a, e, b, d, c,后序遍歷為b, c, d, e, a,則根節(jié)點(diǎn)的孩子節(jié)點(diǎn)為( )
A. 只有e B. 有e、b C. 有e、c D. 無(wú)法確定
10、一面墻,單獨(dú)工作時(shí),A花18小時(shí)砌好,B花24小時(shí),C花30小時(shí),現(xiàn)A, B, C的順序輪流砌,每人工作1小時(shí)換班,完工時(shí),B總共干了多少小時(shí)?( )
A. 8小時(shí) B. 7小時(shí)44分 C.7小時(shí) D. 6小時(shí)48分
11、32位機(jī)器上定義如下結(jié)構(gòu)體:
struct xx { long long _x1; char _x2; int _x3; char _x4[2]; static int _x5; }; int xx::_x5;
請(qǐng)問(wèn)sizeof(xx)的大小是( )
A.19 B.20 C.15 D. 24
12、儲(chǔ)蓄盒中2分和5分的硬幣的個(gè)數(shù)相等,2分和5分的錢(qián)數(shù)也相等,問(wèn):可能是多少元?( )
A.2.1元 B.2.4元 C.2.8元 D. 3.0元
13、入棧序列是:a1,a3,a5,a2,a6出棧序列是:a5,a4,a2,a0,a3,a1,則棧的容量最小是多少( )
A. 2 B.3 C. 4 D. 5
14、TCP報(bào)文首部信息中與關(guān)閉連接有關(guān)的是( )
A.URG B.ACK C. SYN D.FIN
15、int foo(int n) { if (n<=1) return 1; return n*foo(n-1); }
上面算法時(shí)間復(fù)雜度是( )
A. 0(log2n) B. 0(n) C.0(nlog2n) D. 0(n2)
16、turbo c環(huán)境下,下面程序運(yùn)行的結(jié)果是( )
#include int main() { printf("\n"); int a[5]= {1,2,3,4,5}; int *p,**k; p=a; k=&p; printf("%d",*(p++)); printf("%d",**k); return 0; }
A.11 B.21 C.22 D. 12
17、現(xiàn)有一個(gè)包含m個(gè)節(jié)點(diǎn)的三叉樹(shù),即每個(gè)節(jié)點(diǎn)都有三個(gè)指向孩子結(jié)點(diǎn)的`指針,請(qǐng)問(wèn):在這3m個(gè)指針中有( )個(gè)空指針。
A. 2m B. 2m-1 C. 2m+1 D.3m
18、在下面的描述中,哪些不屬于數(shù)據(jù)庫(kù)安全性的措施( )
A. 普通ZIP壓縮存
B. 關(guān)聯(lián)加密存儲(chǔ)
C. 數(shù)據(jù)分段
D. 授權(quán)限制
E. 數(shù)據(jù)多機(jī)備份
19、以下哪些工具可以寫(xiě)實(shí)源機(jī)器與目標(biāo)機(jī)器之間的路由數(shù)量,以及各路由之間的RTT( )
A. Traceroute B. Ping C. FTP D. Telnet
20、流量劫持是網(wǎng)絡(luò)安全中常見(jiàn)的安全威脅,下列哪些情況可能會(huì)造成流量劫持?( )
A. MAC地址欺騙
B. DNS劫持
C. 偽造的DHCP服務(wù)器
D. 使用https協(xié)議
21、以下哪些可以工作于數(shù)據(jù)鏈路層?( )
A. tcpdump B. 集線器 C.交換機(jī) D. 路由器
22、UDP報(bào)頭中沒(méi)有下面那些信息?( )
A.目的地址 B.窗口大小 C.序列號(hào) D.檢驗(yàn)和
23、以下方法那些可以讓一個(gè)元素浮動(dòng)起來(lái)( )
A.mutable B.absolute C.fixed D. static
24、在競(jìng)選條件(race condition)的情況下,兩線程執(zhí)行如下代碼段,其中count為共享變量,線程1執(zhí)行代碼段A,線程2指向代碼段B,那么變量count的值可能為( )
int count =10;
代碼段A: Thread_1() { //do something count++; }
代碼段B: Thread_2() { //do something count--; }
A.9 B.10 C.11 D. 12
25、加入john看到擺鐘的時(shí)間是17:32分,請(qǐng)問(wèn)下這時(shí),時(shí)針跟分針的最小夾角是多少度?( )
A.25度 B.26度 C.28度 D. 32度
二、附加題(共3題,每題20分,不計(jì)入總分)
1、請(qǐng)?jiān)O(shè)計(jì)一個(gè)函數(shù)可以把10進(jìn)制的正整數(shù)轉(zhuǎn)換為4位定長(zhǎng)的36進(jìn)制字符串。
36進(jìn)制的規(guī)則為:“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”;
舉例說(shuō)明:
1=“0001”
10=“000A”
20=“000K”
35=“000Z”
36=“0010”
100=“002S”
2000=“01JK”
2、在MMO游戲中,服務(wù)器采用Linux操作系統(tǒng),網(wǎng)絡(luò)通信與游戲邏輯處理進(jìn)程一般是分離的。
例如:GameSvr進(jìn)程處理游戲邏輯,TCPSvr進(jìn)程處理網(wǎng)絡(luò)通信。Linux操作系統(tǒng)提供了很多機(jī)制可以實(shí)現(xiàn)GameSvr和TCPSvr進(jìn)程之間的數(shù)據(jù)通信。請(qǐng)您列出兩種你認(rèn)為最好的機(jī)制來(lái),并為主(最好)次(次佳)描述他們實(shí)現(xiàn)的框架,優(yōu)缺點(diǎn)對(duì)比和應(yīng)用中的注意事項(xiàng)。
3、NSTimer會(huì)retain目標(biāo)對(duì)象,可能會(huì)造成循環(huán)引用,請(qǐng)?jiān)贜STimer的基礎(chǔ)上封裝一個(gè)不retain目標(biāo)對(duì)象的Timer,要求至少實(shí)現(xiàn)下面兩個(gè)方法,并介紹設(shè)計(jì)思路。
@interface NSTimer : NSObject
+(NSTimer*)scheduledTimerWithTimeInterval : (NSTimerInterval)ti target: (id)aTarget
selector:(SEL)aSelector userInfo: (id)userinfo repeats: (BOOL)yesOrNo;
-(void)invalidate;
//other methods…