【面试题】 迅雷2014校园招聘笔试题
生活随笔
收集整理的這篇文章主要介紹了
【面试题】 迅雷2014校园招聘笔试题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
溫馨提示:客觀題和主觀題得分都要超過一定標準,才能獲得面試資格,如果一項得分很高,而另外一項得分很低,可能無法獲得面試資格。
答案僅供參考,不保證完全正確
一、單選題(20題,每題2分)1、有變量int i = 0; int a = i++; int b=++a; int c = a+b; 請問表達式 a?b:c 的值是()
A、0 ? ? ? ? ? ? ? B、1 ?? ? ? ? ? ? ?C、2 ? ? ? ? ? ? D、3
2、32位環(huán)境下,int *p=new int[10];請問sizeof(p)的值為()
A、4? ? ? ? ? ? ? ?B、10 ? ? ? ? ? ? ?C、40 ? ? ? ? ? ? ? D、8
3、有語句char str[] = "abcde";請問表達式sizeof(str)的值是() ? ?后面還有\(zhòng)0
A、1 ? ? ? ? ? ? ?B、4 ? ? ? ? ? ? ? C、5 ? ? ? ? ? ? ? ? D、6
4、有函數(shù)int func(int i)的實現(xiàn)為()
int func(int i) {if(i > 1)return i*func(i-1);elsereturn 1; } 請問函數(shù)調(diào)用f(5)的返回值是多少()階乘計算
A、5 ? ? ? ? ? ? ?B、15 ? ? ? ? ? ? ?C、20 ? ? ? ? ? ? ? ?D、120
5、請問以下說法,哪個是正確的()
A、每個類都有一個無參數(shù)的構造函數(shù)
B、每個類都有一個拷貝構造函數(shù)
C、每個類能有多個構造函數(shù)
D、每個類能有多個析構函數(shù)
6、用class關鍵字定義的類,其成員默認的訪問屬性為()
A、private? ? ? ? ? B、protected ? ? ?C、public ? ? ? ? ? D、無定義
7、類的成員有三種訪問屬性,分別是public、protected、private,子類能夠訪問的成員是()
A、都能訪問
B、public和protected
C、public和private
D、protected和private
8、請問對一個排好序的數(shù)組進行查找,時間復雜度為()
A、O(n) ? ? ? ? ?? ?B、O(lgn) ?? ? ? ? C、O(nlgn) ? ? ? ? ?D、O(1)
9、以下二叉樹:
后序遍歷的結果是()
A、丙乙丁甲戊己 ? ? ? ? ? ? ?B、甲乙丙丁戊己 ? ? ? ? ? ? ? C、丙丁乙己戊甲 ?? ? ? ? ? ? ? ? ?D、丙丁己乙戊甲
10、看以下代碼:
A *pa = new A[10];
delete pa;
則類A的構造函數(shù)和析構函數(shù)分別執(zhí)行了幾次()
A、1 ? 1 ? ? ? ? ?B、10 ? 10 ? ? ? ? ?C、1 ? 10 ? ? ? ? ? ? ? ? D、10 ? 1
11、看以下代碼:
class A { public:~A(); }; A::~A() {printf("delete A "); }class B : public A { public:~B(); }; B::~B() {printf("delete B "); } 請問執(zhí)行以下代碼
A *pa = new B();
delete pa;
輸出的串是()A
A、delete A? ? ? ? B、delete B ? ? ? ?C、delete B delete A ? ? ? ? ?D、delete A delete B
12、文件長度是一個大于0的整數(shù),用變量unsigned file_length; 來表示,把文件分成塊,每塊的長度也是一個大于0的整數(shù),用變量unsigned block_length; 來表示,則文件被分成的塊數(shù)為()
A、file_length/block_length ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?B、file_length/block_length+1 ? ? ? ??
C、(file_length+block_length-1)/block_length ? ? ? ? ? ? ? ? D、((file_length-1)/block_length+1?
13、整數(shù)int i = 0xFE78DA45; int k = 0xAC3189B2;則i^k的值為()
A、0x524953f7 ?? ? ? ? B、0xAC308800 ? ? ? ? ?C、0xFE79DBF7 ? ? ? ? ? D、0X0000001
14、看以下代碼:
class parent { public:virtual void output(); }; void parent::output() {printf("parent!"); }class son : public parent { public:virtual void output(); }; void son::output() {printf("son!"); } 則以下程序段:
son s;
::memset(&s , 0 , sizeof(s));
parent& p = s;
p.output();
執(zhí)行結果是()
A、parent! ? ? ? B、son! ? ? ? C、son!parent! ? ? ? ? ?? D、沒有輸出結果,程序運行出錯
15、函數(shù)的局部變量所需存儲空間,是在哪里分配的()
A、進程的數(shù)據(jù)段 ? ? ?B、進程的棧上 ? ?C、進程的堆上 ? ? ?? D、以上都可以
16、以下STL的容器存放的數(shù)據(jù),哪個肯定是排好序的()
A、vector ? ? ? ?B、deque ? ? ? ? C、list ? ? ? ? ? ?? D、map
17、int a[][3]={{1},{3,2},{6,7,8},{9}};中a[2][1]的值是()
A、3 ? ? ? ? ?B、6 ? ? ? ?C、2 ? ? ? ? ?? ?D、7
18、以下關于頭文件,說法正確的是()
A、#include<filename.h>,編譯器尋找頭文件時,會從當前編譯的源文件所在的目錄去找
B、#include“filename.h”,編譯器尋找頭文件時,會從通過編譯選項指定的目錄去找
C、多個源文件同時用到的全局整數(shù)變量,它的聲明和定義都放在頭文件中,是好的編程習慣
D、在大型項目開發(fā)中,把所有自定義的數(shù)據(jù)類型、全局變量、函數(shù)聲明都放在一個頭文件中,各個源文件都只需要包含這個頭文件即可,省去了要寫很多#include語句的麻煩,是好的編程習慣。
19、某棵完全二叉樹上有699個節(jié)點,則該二叉樹的葉子節(jié)點數(shù)為()
A、349 ? ? ? ? ? ??B、350 ??? ? ? ? ? ?C、188 ? ? ? ? ? ? ? ?D、187
n0=n2+1;
n=n0+n1+n2=n0+n1+n0-1=699?
由于完全二叉樹中度為1的節(jié)點只有0個或1個兩種情況,所以,將0或1帶入上面公式,整理后得: ?n0=(n+1)/2或者n0=n/2; ?看看n是否能被2整除,能則用n0=n/2。否則用n0=(n+1)/2 既葉子節(jié)點為n0=(n+1)/2=350
20、在一個指向字符串的指針char *p_str,要把字符串中第4個字符的值改為'a',正確的做法是()
A、p_str[3]='a' ? ? ? ? ? ? B、*(ptr+3)='a'? ? ?? ? C、p_str[4]='a' ? ? ? D、*(ptr+4)='a'
二、多選題(10題,每題3分,錯選漏選都不得分)
1、已知一段文本有1382個字符,使用了1382個字節(jié)進行存儲,這段文本全部是由a、b、c、d、e這5個字符組成,a出現(xiàn)了354次,b出現(xiàn)了483次,c出現(xiàn)了227次,d出現(xiàn)了96次,e出現(xiàn)了232次,對這5個字符使用哈夫曼(Huffman)算法進行編碼,則以下哪些說法正確()
A、使用哈夫曼算法編碼后,用編碼值來存儲這段文本將花費最少的存儲空間
B、使用哈夫曼算法進行編碼,a、b、c、d、e這5個字符對應的編碼值是唯一確定的
C、使用哈夫曼算法進行編碼,a、b、c、d、e這5個字符對應的編碼值可以有多套,但每個字符編碼的位(bit)數(shù)是確定的
D、b這個字符的哈夫曼編碼值位數(shù)應該最短,d這個字符的哈夫曼編碼值位數(shù)應該最長
2、下列表達式中,不合法的是()
已知:double d = 3.2; int n = 3;
A、d<<2;
B、d/n
C、!d && (n-3)
D、(d-0.2)|n
3、下面描述正確的是()
A、while循環(huán)語句的循環(huán)體至少執(zhí)行1次
B、do-while循環(huán)可以寫成while循環(huán)的格式
C、continue語句可以出現(xiàn)在各種循環(huán)體中
D、break語句不可以出現(xiàn)在循環(huán)體內(nèi)
4、關于內(nèi)聯(lián)函數(shù)正確的是()
A、類的私有成員函數(shù)不能作為內(nèi)聯(lián)函數(shù)
B、在所有類說明中內(nèi)部定義的成員函數(shù)都是內(nèi)聯(lián)函數(shù)
C、類的保護成員函數(shù)不能作為內(nèi)聯(lián)函數(shù)
D、使用內(nèi)聯(lián)函數(shù)的地方會在運行階段用內(nèi)聯(lián)函數(shù)體替換掉
5、下面模板聲明中,哪些是非法的()
A、template<class Type>class C1;
B、template<class T,U , class V>class C2;
C、template<class C1 , typename C2>class C3{};
D、template<typename myT , class myT>class C4{};
6、在使用瀏覽器打開一個網(wǎng)頁的過程中,瀏覽器會使用的網(wǎng)絡協(xié)議包括()
A、DNS ? ? ? ? B、TCP ? ? ? ?C、HTTP ? ?? ? ? ? ?D、Telnet
7、下面屬于構造散列函數(shù)的方法是()
A、直接定址法
B、數(shù)字分析法
C、乘余取整法
D、平方取中法
8、拷貝構造函數(shù)的特點是()
A、該函數(shù)名同類名,也是一種構造函數(shù),該函數(shù)返回自身引用
B、該函數(shù)只有一個參數(shù),必須是對某個對象的引用
C、每個類都必須有一個拷貝初始化構造函數(shù),如果類中沒有說明拷貝構造函數(shù),則編譯器系統(tǒng)會自動生成一個缺省拷貝構造函數(shù),作為該類的保護成員
D、拷貝初始化構造函數(shù)的作用是將一個已知對象的數(shù)據(jù)成員值拷貝給正在創(chuàng)建的另一個同類的對象
9、下列關于虛函數(shù)的說法正確的是()
A、在構造函數(shù)中調(diào)用類自己的虛函數(shù),虛函數(shù)的動態(tài)綁定機制還會生效。
B、在析構函數(shù)中調(diào)用類自己的虛函數(shù),虛函數(shù)的動態(tài)綁定機制還會生效。
C、靜態(tài)函數(shù)不可以是虛函數(shù)
因為靜態(tài)成員函數(shù)沒有this,也就沒有存放vptr的地方,同時其函數(shù)的指針存放也不同于一般的成員函數(shù),其無法成為一個對象的虛函數(shù)的指針以實現(xiàn)由此帶來的動態(tài)機制。靜態(tài)是編譯時期就必須確定的,虛函數(shù)是運行時期確定的。
D、虛函數(shù)可以聲明為inline
inline函數(shù)和virtual函數(shù)有著本質(zhì)的區(qū)別,inline函數(shù)是在程序被編譯時就展開,在函數(shù)調(diào)用處用整個函數(shù)體去替換,而virtual函數(shù)是在運行期才能夠確定如何去調(diào)用的,因而inline函數(shù)體現(xiàn)的是一種編譯期機制,virtual函數(shù)體現(xiàn)的是一種運行期機制。
因此,內(nèi)聯(lián)函數(shù)是個靜態(tài)行為,而虛函數(shù)是個動態(tài)行為,他們之間是有矛盾的。
函數(shù)的inline屬性是在編譯時確定的, 然而,virtual的性質(zhì)則是在運行時確定的,這兩個不能同時存在,只能有一個選擇,文件中聲明inline關鍵字只是對編譯器的建議,編譯器是否采納是編譯器的事情。
我并不否認虛函數(shù)也同樣可以用inline來修飾,但你必須使用對象來調(diào)用,因為對象是沒有所謂多態(tài)的,多態(tài)只面向行為或者方法,但是C++編譯器,無法保證一個內(nèi)聯(lián)的虛函數(shù)只會被對象調(diào)用,所以一般來說,編譯器將會忽略掉所有的虛函數(shù)的內(nèi)聯(lián)屬性。
相關知識點: 什么函數(shù)不能聲明為虛函數(shù)?
一個類中將所有的成員函數(shù)都盡可能地設置為虛函數(shù)總是有益的。 ?
設置虛函數(shù)須注意:?
1: 只有類的成員函數(shù)才能說明為虛函數(shù);?
2:靜態(tài)成員函數(shù)不能是虛函數(shù);?
3:內(nèi)聯(lián)函數(shù)不能為虛函數(shù);?
4:構造函數(shù)不能是虛函數(shù);?
5:析構函數(shù)可以是虛函數(shù),而且通常聲明為虛函數(shù)。
10、下列對函數(shù)double add(int a , int b)進行重載,正確的是()
A、int add(int a ,int b ,int c)
B、int add(double a , double b)
C、double add(double a , double b)
D、int add(int a , int b)
三、填空題(15空,每空2分)
1、以下代碼是用來計算100以內(nèi)的素數(shù)的個數(shù),請把相應的空填上。
struct prime_number_node {int prime_number;prime_number_node* next; };int calc_prime_number() {prime_number_node* list_head = new prime_number_node();list_head->next = NULL;list_head->prime_number = 2;prime_number_node* list_tail = list_head;for(int number = 3 ; number < 100 ; number++){int remainder;prime_number_node* cur_node_ptr = list_head;while(cur_node_ptr != NULL){remainder = number%cur_node_ptr->prime_number;if(remainder == 0){//1}else{//2}}if(remainder != 0){prime_number_node* new_node_ptr = new prime_number_node(); new_node_ptr->prime_number = number;new_node_ptr->next = NULL;list_tail->next = new_node_ptr;//3}}int result = 0;while(list_head != NULL){result++;prime_number_node* temp_ptr = list_head;list_head = list_head->next;//4}return result; } 1、2、3、4四行代碼依次為:break;
cur_node_ptr = cur_node_ptr->next;
list_tail = list_tail->next;?
delete temp_ptr;
2、已知集合A和B的元素分別用不含頭結點的單鏈表存儲,函數(shù)difference()用于求解集合A與B的差集,并將結果保存在集合A的單鏈表中。例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成計算后A={10,20,30}。
鏈表結點的結構類型定義如下:
struct node {int elem;node* next; };void difference(node** LA , node* LB) {node *pa , *pb , *pre , *q;pre = NULL;//1while(pa){pb = LB;while( ) //2pb = pb->next;if( ) //3{if(!pre)*LA = ; //4else= pa->next; //5q = pa;pa = pa->next;free(q);}else{; //6pa = pa->next;}} } 1、2、3、4、5、6六行代碼依次為
pa = *LA;
pb && pa->elem != pb->elem
pb
pa->next
pre->next
pre = pa;
代碼中的指針pa用于指向集合A的元素;pb指向集合B的元素;臨時指針q指向需要被刪除的元素;pre用于實現(xiàn)刪除時結點的鏈接,與pa保持所指結點的前后繼關系。
總結
以上是生活随笔為你收集整理的【面试题】 迅雷2014校园招聘笔试题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Tiny4412】 Tiny4412开
- 下一篇: 【SDL】 如何在RedHat6.5中搭