CC++考試參考題庫(200題)_第1頁
CC++考試參考題庫(200題)_第2頁
CC++考試參考題庫(200題)_第3頁
CC++考試參考題庫(200題)_第4頁
CC++考試參考題庫(200題)_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

C/C++考試參考題庫(200題)

一、單選題

1.主機字節(jié)序包含大端字節(jié)序和小端字節(jié)序兩種的說法是否正確

A、正確

B、錯誤

答案:A

2.sizeof對數(shù)組,得到整個數(shù)組所占空間大小

A、正確

B、錯誤

答案:A

3.c++11中enumclass的作用是?

A、單純的語法糖

B、限定作用域

答案:B

4.y>=12的情況下,表示關(guān)系12

A、(12

B、(12

C、(12

D、(12

答案:B

5.對于int*target[5]的描述,以下選項是正確的是()

A、target是一個具有5個元素的指針數(shù)組,每個元素是一個int類型的指針

B、target[5]表示某個數(shù)組的第5個元素的值

C、target是一個指向數(shù)組的指針,所指向的數(shù)組是5個int類型的元素

Dxtarget是一個指向某個數(shù)組中第5個元素的指針,該元素是int類型的變量。

答案:A

解析:int*target[n]是指針數(shù)組,口優(yōu)先級高,先與target結(jié)合成為一個數(shù)組,

再由int*說明這是一個整型指針數(shù)組,它有n個指針類型的數(shù)組元素。int(*ta

rget)[n]是數(shù)組指針,()優(yōu)先級高,首先說明target是一個指針,指向一個整

型的一維數(shù)組,這個一維數(shù)組的長度是n,也可以說是target的步長。

6.哪個指令可以查看git改動

A、gitlog

B、gitmit

C、gitadd

D、gitdiff

答案:D

7.對于下面的變量charw;intx;floaty;doublez;則表達式w*x+z-y值的數(shù)據(jù)類

型為()

A、fIoat

B、char

C、int

D、double

答案:D

解析:double表達能力最高

8.在上下文及頭文件均正常的情況下,若有以下定義和語句:charsl□二”12345

",*s2="1234";printf;"%d\n",strlen(strcpy(s1,s2)));則輸出結(jié)果是

A、4

B、5

C、9

D、10

答案:A

解析:strcpy(s1,s2)這個函數(shù)是把s2字符串拷貝到s1這個字符串,同時也把

s2的、(T拷過去,所以覆蓋了s1的所有字符(在空間足夠的情況下,當(dāng)然遇到

s1的空間不足以存放s2,另考慮),所以strcpy執(zhí)行完后是“1234”strlen("

1234”)就是4了

9.doublea;if(a=0){]該寫法是否正確

A、正確

B、錯誤

答案:B

10.下列描述中,()是錯誤的。

A、內(nèi)聯(lián)函數(shù)的主要解決程序的運行效率問題。

B、內(nèi)聯(lián)函數(shù)的定義或聲明必須出現(xiàn)在內(nèi)聯(lián)函數(shù)第一次補調(diào)用之前。

C、內(nèi)聯(lián)函數(shù)中可以包括各種語句

D、對內(nèi)聯(lián)不可以進行異常接口聲明

答案:C

C、I/O

答案:C

14.對于下面代碼段intx=3,y=3;intt=++x||++y;y的值為()

A、不確定

B、4

C、3

D、1

答案:C

解析:當(dāng)解析器遇到了I|時,只要前面的++x為真,后面的語句就不執(zhí)行了

15.一般情況下,new的對象位于那塊內(nèi)存空間?

A、棧

B、堆

答案:B

16.若有如下程序:intmainO{inty=3,x=3,z=1;printf("%d%d\n",(++xry+-),z

+2);)運行該程序的輸出結(jié)果是(

A、34

B、42

C、43

D、33

答案:D

解析:逗號表達的求值順序是從左向右以此計算用逗號分隔的各表達式的值,最

后一個表達式的值就是整個逗號表達式的值,所以(++x,y++)的值將是y++,

因為是先輸出y的值,再將y增1,所以軸線輸出3,再輸出Z+2的值,即3;

所以應(yīng)選擇D

17.在C++中,constinti=0;int*j=(int*)&i;*j=1;printf("%d,%d",i,*j)輸出

是多少?

A、0,1

B、1,1

C、1,0

D、0,0

答案:A

解析:C語言中的const是運行時const,編譯時只是定義,在運行才會初始化。

C語言中const變量不能用于成為數(shù)組長度等作為編譯時常量的情況,原因就在

此。C語言const變量在運行時改變了是可以再次讀出改變后的值的。C++中,c

onst變量是編譯時的常量,可以向#define定義的常量一樣使用。故C++中con

st變量的值在編釋時就已經(jīng)確定了,直接對cosnt變量進行了值的替換,因此

當(dāng)const變量的值改變時,const的變量值是不會得到更新的。這幾行代碼在C

和C++中都會改變const變量的值,只不過C++中const變量在編譯的時候已經(jīng)

確定了,而C中的const變量可以在運行時改變后再次讀取。

18.當(dāng)宏定義需要定義多行代碼時,會使用下列哪個符號()

A、I

B、/

C、\

D、-

答案:C

19.在下面存儲類別中,。變量的可見性與生存期不一致。

A、外部

B、自動

C、內(nèi)部靜態(tài)

D、寄存器

答案:C

解析:如果一個變量在某個文件或函數(shù)范圍內(nèi)是有效的,則稱該文件或函數(shù)為該

變量的作用域,在此作用域內(nèi)可以引用該變量,所以又稱變量在此作用域內(nèi)“可

見”,這種性質(zhì)又稱為變量的“可見性”。如果一個變量值在某一時刻是存在的,

則認(rèn)為這一時刻屬于該變量的“生存期”,或稱該變量在此時此刻“存在”。自

動變量和寄存器變量在函數(shù)內(nèi)外的“可見性”和“存在性”是一致的,即離開函

數(shù)后,值不能被引用,值也不存在。靜態(tài)外部變量和外部變量的可見性和存在性

也是一致的,在離開函數(shù)后變量值仍然存在,且可被引用。而靜態(tài)局部變量的可

見性和存在性不一致,離開函數(shù)后,變量值存在,但不能被引用。

20.struct的默認(rèn)的繼承訪問權(quán)限是?

A、pubIic

B、private

答案:A

21.for(intx=0,y=0;!x&&y<=5;y++)

語句執(zhí)行循環(huán)的次數(shù)是多少次?

A、0

B、5

C、6

D、無數(shù)次

答案:C

解析:

如果循環(huán)體中X得值不改變,!x一直為true,則只需要考慮y的值就可以了,

一共6次。

22.主機字節(jié)序的說法錯誤的是?

A、主機字節(jié)序又叫CPU字節(jié)序

B、主機字節(jié)序由CPU指令集架構(gòu)決定

C、主機字節(jié)序不是由操作系統(tǒng)決定的

D、主機字節(jié)序由操作系統(tǒng)決定的

答案:D

23.class的默認(rèn)的繼承訪問權(quán)限是?

A、pubIic

B、private

答案:B

24.下列為純虛函數(shù)的正確聲明的是()

A、voidvirtuaIprint0=0;

B、virtuaIvoidprint;)=0;

CxvirtuaIvoidprint:)();

D、virtuaIvoidprint;)\;

答案:B

解析:純虛函數(shù)的格式:virtual返回值類型函數(shù)名(參數(shù)列表):0;

25.設(shè)置虛基類的目的是()?

A、簡化程序

B、消除二義性

C、提高運行效率

D、減少目標(biāo)代碼

答案:B

解析:虛基類是為了強調(diào)“這個類型的某些方法沒有意義,只是為了繼承,不要構(gòu)

造這種類型的對象”盡管C++或其他00語言支持多重繼承,但在實際軟件開發(fā)中

多重繼承用的并不多,原因在于多重繼承過手復(fù)雜。

26.Iinux系統(tǒng)中查看網(wǎng)卡信息使用哪個指令?

A、ifconfig

Bxipconfig

答案:A

27.引用與指針有什么區(qū)別錯誤的是?

A、引用必須被初始化,指針不必

B、引用初始化以后不能被改變

C、指針只能讀它所指向的對象,不可以改變所指的對象

D、不存在指向空值的引用,但是存在指向空值的指針

答案:C

28.在64環(huán)境下,int*p=newint[16]{},指針p存儲的位置位于?

A、堆

B、棧

答案:B

29.下面有關(guān)回調(diào)函數(shù)的說法,錯誤的是?

A、回調(diào)函數(shù)一般是一個通過函數(shù)指針調(diào)用的函數(shù)

B、回調(diào)函數(shù)可能被系統(tǒng)API調(diào)用一次,也可能被循環(huán)調(diào)用多次

C、回調(diào)函數(shù)本身可以直接是全局函數(shù)、靜態(tài)函數(shù)或某個特定類的成員函數(shù)

D、回調(diào)函數(shù)可用于通知機制

答案:C

解析:所謂的回調(diào)函數(shù),就是預(yù)先在系統(tǒng)的對函數(shù)進行注冊,讓系統(tǒng)知道這個函

數(shù)的存在,以后,當(dāng)某個事件發(fā)生時,再調(diào)用這個函數(shù)對事件進行響應(yīng)。定義一

個類的成員函數(shù)時在該函數(shù)前加CALLBACK即將其定義為回調(diào)函數(shù),函數(shù)的實現(xiàn)

和普通成員函數(shù)沒有區(qū)別

30.map的底層數(shù)據(jù)結(jié)構(gòu)是?

A、數(shù)組

B、鏈表

C、紅黑樹

D、哈希表

答案:C

31.函數(shù)參數(shù)傳遞使用值傳遞是否會觸發(fā)拷貝?

A、是

B、否

答案:A

32.關(guān)于成員函數(shù)覆蓋(重寫)的說法錯誤的是

A、分別位于派生類與基類

B、函數(shù)名字相同

C、參數(shù)不同

D、基類函數(shù)必須有virtual關(guān)鍵字

答案:C

33.進程之間的通信方式不包括?

A、消息隊列

B、共享內(nèi)存

C、套接字(Socket)

D、鎖

答案:D

34.關(guān)于成員函數(shù)重載的說法錯誤的是

A、相同的范圍(在同一個類中)

B、函數(shù)名字相同,參數(shù)不同

C、返回值不同

D、virtuaI關(guān)鍵字可有可無

答案:C

35.#defineDOUBLE(x)x+x,i=5*D0UBLE(5);

i是多少?

A、25

B、30

C、50

D、15

答案:B

36.關(guān)于棧的數(shù)據(jù)結(jié)構(gòu)的描述正確的是?

A、先進先出

B、先進后出

答案:B

37.執(zhí)行以下語句,輸出結(jié)果為()

#include<stdio.h>

intmain(){

char*p1="heIIo";

char*p2-"worId";

char*p3="apieceofcake";

char*str[]={p1,p2,p3};

printf("%c",*(str[0'+1));

)

A、worId

B、hello

C、編譯時錯誤

D、其他選項都不正確

答案:D

38.static修飾的變量,在main函數(shù)運行前就分配了空間是否正確

A、正確

B、錯誤

答案:A

39.Iinux系統(tǒng)中,關(guān)于線程說法正確的是?

A、線程是資源分配的獨立單位

B、線程是資源調(diào)度的獨立單位

答案:B

40.多線程的說法錯誤的是?

A、充分利用多核,實現(xiàn)并發(fā)

B、不需要考慮資源的互斥,有操作系統(tǒng)保證

C、需要考慮資源的互斥

答案:B

41.以下代碼編譯有錯誤,哪個選項能解決編譯錯誤?classA{public:intGetVa

Iue()const{vv=1;returnvv;}private:intvv;};

A、改變成員變量"vv"為"mutabIeintvv"

B、改變成員函數(shù)"GetValue"的聲明,以使其不是const的

C、都不能修復(fù)編譯錯誤

D、都可以修復(fù)編譯錯誤

答案:D

解析:普通成員函數(shù)后面加上const修飾,就是常函數(shù)。常函數(shù)中的this指針

是常指針,不能在常函數(shù)中對成員變量進行修改,只能讀?。蝗绻胍诔:瘮?shù)

中對成員變量進行修改,可以在成員變量前加上mutable關(guān)鍵字進行修飾;常函

數(shù)可以被普通對象或者常對象調(diào)用,但是常對象只能調(diào)用常函數(shù),常對象只能讀

成員。

42.#includeufiIename.hv,編譯器的搜索文件路徑的描述正確的是?

A、編譯器從用戶的工作路徑開始搜索

B、編譯器從環(huán)境路徑開始搜索

答案:A

43.以下程序運行后的輸出結(jié)果是()intmainO{intp[7]={11,13,14,15,16:17,

18);inti=O,j=O;whiIe(i<7&&p[i]%2==1)j+=p[i++];printf("%d\n",j);}

A、23

B、24

C、25

D、26

答案:B

解析:i等于。時,p[0]為奇數(shù),進入while循環(huán),j累加了p[0]的值為11;i加

1為為奇數(shù),進入whiIe循環(huán),j累加了p[l]的值,為24i加一為2,而

P[2]為偶數(shù),跳出whiIe循環(huán),j為24

44.exterrTC”的作用錯誤的是

A、被exterrTC”修飾的變量和函數(shù)是按照C語言方式編譯和鏈接的

B、避免C++因符號修飾導(dǎo)致代碼不能和C語言庫中的符號進行鏈接的問題。

C、無作用

答案:C

45.若有定義inta[3]⑸,i,j;(且OWi<3,OWj<5),則a[i]口]不正確的地址表

示是()。

A、&a[i][j]

B、a[i]+j

G*(a+i)+j

D、*(*(a+i)+j)

答案:D

解析:

求的是哪個地址表示是錯的,只有選項D明顯解引出來的數(shù)組元素,不是個地址,

結(jié)果答案選D。A,B,C,都是合法的地址表示方法。

46.有如下代碼:structAI{virtuaI~A1(){)};structA2(virtuaI~A2(){)};struc

tB1:A1,A2{};intmain0{Bid;A1*pb1=&d;A2*pb2=dynamic_cast(pb1);//L1A2*p

b22=static_cast(pb1);//L2returnO;}說法正確的是0

A、L1語句編譯失敗,L2語句編譯通過

B、L1語句編譯通過,L2語句編譯失敗

C、L1,L2都編譯失敗

D、L1,L2都編譯通過

答案:B

解析:dynamic_cast是運行時檢查,雖然pb1是A1類型的,但是指向的實體卻

是子類,所以子類轉(zhuǎn)父類A2完全是可以的。但是static_cast比較“死腦筋”,

在編譯期檢查,這樣是不檢查指針指向的值的,于是發(fā)現(xiàn)Pb1是A1類型,A1想

轉(zhuǎn)A2?報錯!

47.靜態(tài)函數(shù)是在什么時候確定的?

A、編譯期

B、運行期

答案:A

48.有如下類的定義:intF1();staticintF2();classTestClass{pubIic:intF3();

staticintF4();};在所描述的函數(shù)中,具有隱含this指針的是哪個()

A、F1

B、F2

C、F3

D、F4

答案:C

解析:類中的非靜態(tài)函數(shù)默認(rèn)是有this指針的,表明為該類的對象所有,靜態(tài)

函數(shù)不屬于任何類的對象,沒有this指針,由類直接調(diào)用

49.Iinux系統(tǒng)中,關(guān)于進程說法正確的是?

A、進程是資源分配的獨立單位

B、進程是資源調(diào)度的獨立單位

答案:A

50.設(shè)有程序段:intk二10;while(k=0)k=k-1;則下面描述中正確的是()

A、while循環(huán)執(zhí)行10次

B、循環(huán)是無限循環(huán)

C、循環(huán)體語句一次也不執(zhí)行

D、循環(huán)體語句執(zhí)行一次

答案:C

解析:因while后面的表達式是默值表達式,其值為0(即為假),所以循環(huán)體

內(nèi)的語句不可能執(zhí)行。故正確答案是C。

51.假定n的值為5,則表達式n++的值為()?

A、6

B、5

C、4

D、7

答案:B

52.this指針是一個隱含于每一個非靜態(tài)成員函數(shù)中的特殊指針,該說法是否正

A、正確

B、錯誤

答案:A

53.在64環(huán)境下,int*p=newint[16]{},指針p所指向的內(nèi)容存儲的位置位于?

A、堆

B、棧

答案:A

54.設(shè)已經(jīng)有A,B,C,D4個類的定義,程序中A,B,C,D析構(gòu)函數(shù)調(diào)用順序為()?

Cc;intmain()(A*pa=newA();Bb;staticDd;deIetepa;}

A、ABCD

B、ABDC

C、ACDB

D、ACBD

答案:B

解析:這道題主要考察的知識點是:全局變量,靜態(tài)局部變量,局部變量空間的

堆分配和棧分配其中全局變量和靜態(tài)局部變量時從靜態(tài)存儲區(qū)中劃分的空間,二

者的區(qū)別在于作用域的不同,全局變量作用域大于靜態(tài)局部變量(只用于聲明它

的函數(shù)中),而之所以是先釋放D在釋放C的原因是,程序中首先調(diào)用的是C

的構(gòu)造函數(shù),然后調(diào)用的是D的構(gòu)造函數(shù),析構(gòu)函數(shù)的調(diào)用與構(gòu)造函數(shù)的調(diào)用順

序剛好相反。局部變量A是通過new從系統(tǒng)的堆空間中分配的,程序運行結(jié)束之

后,系統(tǒng)是不會自動回收分配給它的空間的,需要程序員手動調(diào)用delete來釋

放。局部變量B對象的空間來自于系統(tǒng)的??臻g,在該方法執(zhí)行結(jié)束就會由系統(tǒng)

自動通過調(diào)用析構(gòu)方法將其空間釋放。之所以是先A后B是因為,B是在函數(shù)執(zhí)

行到結(jié)尾“}”的時候才調(diào)用析構(gòu)函數(shù),而語句deletea;位于函數(shù)結(jié)尾“}“之前。

55.關(guān)于構(gòu)造函數(shù)的描述下列說法不正確的是()

A、構(gòu)造函數(shù)可以被重載

B、構(gòu)造函數(shù)不能被覆蓋

C、一個構(gòu)造函數(shù)可以返回一個私有的或一個對象的引用

D、構(gòu)造函數(shù)代碼執(zhí)行順序時是從最遠(yuǎn)的祖先類到當(dāng)前的類層級

答案:C

56.下面程序的輸出結(jié)果是()

#include<stdio.h>

intmain(){

inti,n=0;

floatx=1,y1=2.1/1.9,y2=1.9/2.1;

for(i=1;i<22;i++)

x=x*y1;

whiIe(x!=1.0)(

x=x*y2;n++;

)

printf("%d\n",n);

returnO;

)

A、21

B、22

C、程序無限循環(huán)

D、運行時崩潰

答案:C

解析:

浮點類型不能精確相等

57.哪個操作符不能作為類成員函數(shù)被重載?

A、?:

B、++

C、口

D、二二

答案:A

解析:不可重載運算符包括“?:這四個

58.在C++中,容器是一種()

A、標(biāo)準(zhǔn)類

B、標(biāo)準(zhǔn)對象

G標(biāo)準(zhǔn)函數(shù)

D、標(biāo)準(zhǔn)類模板

答案:D

59.以下代碼是哪一句可能導(dǎo)致的編譯錯誤?

復(fù)制代碼

#incIude<iostream>

usingnamespacestd;

cIassTest

(

pubIic:

Test()lcout?"iIikezk";}

Test(int){cout?"iIikewangyi";}

voidexe()(cout?"thisismychoice";)

);

intmain()

(

Testa⑴;//1

a.exe();//2

Testb();//3

b.exe();//4

Teste;//5

c.exe();//6

returnO;

1

A、1

B、2

C、4

D、6

答案:C

解析:

//3b后面跟小括號,會引起歧義,誤以為是一個函數(shù),b無法正確構(gòu)造。則〃4

無法正確調(diào)用exe(),編譯錯誤

60.對于下面char(*p)[16]的聲明描述正確的一項是()

A、p是長度為16的字符指針數(shù)組

B、p是包含16個字符的字符串

C、p是指向長度為16的字符數(shù)組的指針

D、p是長度為16的字符數(shù)組

答案:C

61.在結(jié)構(gòu)化的程序設(shè)計中,模塊劃分的原則是()

A、各模塊硬包括盡量多的功能

B、各模塊的規(guī)劃應(yīng)盡量大

C、各模塊之間的聯(lián)系盡量緊密

D、模塊內(nèi)具有高內(nèi)聚度,模塊間具有低耦合度

答案:D

62.類B是類A的公有派生類,類A和類B中都定義了虛函數(shù)func(),p是一個指

向類A對象的指針,則p->A::func()將()?

A、調(diào)用類B中函數(shù)func()

B、即調(diào)用類A中函數(shù),也調(diào)用類B中的函數(shù)

C、調(diào)用類A中函數(shù)func()

D、根據(jù)p所指的對象類型而確定調(diào)用類A中或類B中的函數(shù)func()

答案:C

解析:這邊通過作用域解析運算符::明確指定了要訪問的是A類中的func()。

63.inline內(nèi)聯(lián)函數(shù)的說法錯誤的是

A、相當(dāng)于把內(nèi)聯(lián)函數(shù)里面的內(nèi)容寫在調(diào)用內(nèi)聯(lián)函數(shù)處

B、相當(dāng)于不用執(zhí)行進入函數(shù)的步驟,直接執(zhí)行函數(shù)體

C、相當(dāng)于宏,卻比宏多了類型檢查,真正具有函數(shù)特性

D、沒用

答案:D

64.下列程序的輸出結(jié)果是。

復(fù)制代碼

#incIude<iostream>

usingnamespacestd;

intmain(void){

intx=1,i=1;

for(;x<50;i++){

if(x>=10)

break;

if(x%2!=0){

x+=3;

continue;

)

x-=-1;

)

cout?x?*'?i?end;

returnO;

}

A、127

B、116

C、126

D、117

答案:C

65.靜態(tài)庫的說法錯誤的是?

A、Iinux環(huán)境靜態(tài)庫后綴為.so

B、Iinux環(huán)境靜態(tài)庫后綴為.a

C、windows環(huán)境動態(tài)庫后綴為.Iib

答案:A

66.用戶雙擊鼠標(biāo)時產(chǎn)生的消息序列,下面正確的是()

A、WM_LBUTTONDOWN,WM_LBUTTONUP,WM_LBUTTONDOWN,WM_LBUTTONUP

B、WM_LBUTTONDOWN,WM_LBUTTONUP,WM_LBUTTONUP,WM_LBUTTONDBLCLK

C、WM_LBUTTONDOWN,WM_LBUTTONUP,WM_LBUTTONDOWN,WM_LBUTTONDBLCLK

D、WM_LBUTTONDOWN,WM_LBUTTONUP,WM_LBUTTONDBLCLK,WM_LBUTTONUP

答案:D

解析:雙擊即點擊左鍵兩下,第一次觸發(fā)LBUTTONDOWN和LBUTTONUP,第二次點

擊時觸發(fā)雙擊事件LBUTTONDBLCLK(doubleclick),放掉再觸發(fā)LBUTTONUP

67.vector隨機讀的時間復(fù)雜度是?

A、0(1)

B、0(n)

C、O(logN)

D、0(n2)

答案:A

68.不屬于面向?qū)ο蠡咎卣鞯氖牵?/p>

A、封裝

B、繼承

C、多態(tài)

D、過程

答案:D

69.定義一個非常大的數(shù)組可能造成的后果是?

A、系統(tǒng)自動優(yōu)化,無任何影響

B、棧溢出,很有可能造成程序終止

答案:B

70.函數(shù)voidfoo(){staticintval;..}變量val的內(nèi)存地址位于()

A、未初始化數(shù)據(jù)段

B、已初始化數(shù)據(jù)段

C、堆

D、棧

答案:A

解析:1、棧區(qū)(stack)一由編譯器自動分配釋放,存放函數(shù)的參數(shù)值,局部變

量的值等。2、堆區(qū)(heap)一一般由程序員分配釋放,若程序員不釋放,程序

結(jié)束時可能由os回收。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類似

于鏈表。3、全局區(qū)(靜態(tài)區(qū))(static)一全局變量和靜態(tài)變量的存儲是放在

一塊的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域,未初始化的全局變量和未初

始化的靜態(tài)變量在相鄰的另一塊區(qū)域。程序結(jié)束后有系統(tǒng)釋放。4、文字常量區(qū)

一常量字符串就是放在這里的。程序結(jié)束后由系統(tǒng)釋放。5、程序代碼區(qū)一存放

函數(shù)體的二進制代碼。

71.

如下代碼:intarr[8]={1,6,3,3,8,0,7,4);int*p二arr;下面答案中不能夠正確輸

出全部偶數(shù)的是()

A、for(inti=0;i<8;i++)

if(arr[i]%2=0)

printf("%d",arr[i]):

B、for(inti=0;i<8;i++)

if(p[i]%2==0)

printf("%d"fp[i]);

C、inti=0;

whiIe(i<8){

if(*(p+i)%2=0)

printf("%d",*(p+i));

i++;

D、inti=0;

while(i<8){

if((arr+i)%2==0)

printf("%d",arr+i):

i++;

J

答案:D

72.以下哪個MSVC編譯環(huán)境下的鏈接器

A、Id

B、Iink

答案:B

73.下面那個不屬于編譯器

A、gcc

B、msvc

C、clang

D、vscode

答案:D

74.在C++中,要實現(xiàn)動態(tài)聯(lián)編,必須使用()調(diào)用虛函數(shù)。

A、類名

B、派生類指針

C、對象名

D、基類指針

答案:D

75.已知x:43,ch='A',y=O;則表達式(x>=y&&ch<B&&!y)的值是()

A、0

B、語法錯

C、1

D、“假”

答案:C

解析:

x>二y是成立的,A的ASCII值是小于B的,!y=1所以答案是1

76.下面關(guān)于虛函數(shù)和函數(shù)重載的敘述不正確的是()

A、虛函數(shù)不是類的成員函數(shù)

B、虛函數(shù)實現(xiàn)了C++的多態(tài)性

C、函數(shù)重載允許非成員函數(shù),而虛函數(shù)只針對于成員函數(shù)

D、函數(shù)重載的調(diào)用根據(jù)參數(shù)的個數(shù)、序列來確定,而虛函數(shù)依據(jù)對象確定

答案:A

解析:虛函數(shù)也是類的成員函數(shù),A說法是不正確的;虛函數(shù)和函數(shù)重載都實現(xiàn)

了C+二的多態(tài)性,但表現(xiàn)形式不一樣,函數(shù)重載調(diào)用根據(jù)參數(shù)個數(shù)、參數(shù)類型等

進行區(qū)分,而虛函數(shù)則是根據(jù)動態(tài)聯(lián)編來確定調(diào)用什么,故BD說法正確函數(shù)重

載可以是類的成員函數(shù)也可以是非成員函數(shù),比如:intfun(inta);intfun(inta.

intb);這就是非成員重載,虛函數(shù)必須是成員函數(shù)了,否則就失效了,所以C

77.UDP是可靠傳輸協(xié)議?

A、正確

B、錯誤

答案:B

78.函數(shù)參數(shù)傳遞使用引用傳遞是否會觸發(fā)拷貝?

A、是

B、否

答案:B

79.如果定義:floata[10],x;則以下敘述中正確的是()

A、語句a=&x;是非法的

B、表達式a+1是非法的

C、三個表達式a[1]、*(a+1)、&a[1]代表的變量互不相同

D、表達式*&a[1]是非法的,應(yīng)該寫成*(&(a[1]))

答案:A

解析:B選項中,表達式a+1不是非法的;C選項中,*(a+1)即指a[1];D選項

中,不是非法的。因此A選項正確。

80.static的用途說法錯誤的是?

A、在函數(shù)體,一個被聲明為靜態(tài)的變量在這一函數(shù)被調(diào)用過程中維持其值不變

B、在模塊內(nèi)(但在函數(shù)體外),一個被聲明為靜態(tài)的變量可以被模塊內(nèi)所用函數(shù)

訪問,但不能被模塊外其它函數(shù)訪問。它是一個本地的全局變量

C、在模塊內(nèi),一個被聲明為靜態(tài)的函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用。那

就是,這個函數(shù)被限制在聲明它的模塊的本地范圍內(nèi)使用

D、static修飾的變量是線程安全的

答案:D

81.main函數(shù)執(zhí)行以前,還會執(zhí)行什么代碼?

A、全局對象的構(gòu)造函數(shù)

B、全局對象的析構(gòu)函數(shù)

C、局部對象的構(gòu)造函數(shù)

D、局部對象的析構(gòu)函數(shù)

答案:A

解析:全局對象的構(gòu)造函數(shù)會在main函數(shù)之前執(zhí)行。

82.在下面的do-whiIe循環(huán)語句中,其循環(huán)體語句被執(zhí)行的次數(shù)為()?inti二

0;do{i++;}whiIe(i<10)

A、8

B、9

C、10

D、11

答案:C

83.friend友元類的說法正確的是?

A、能訪問私有成員

B\提高了壞封裝性

答案:A

84.數(shù)據(jù)庫的原子性的解釋正確的是?

A、原子性是指事務(wù)包含的所有操作要么全部成功,要么全部失敗回滾

B、原子性是指事務(wù)包含的所有操作一定全部成功

答案:A

85.以下有關(guān)C語言的說法中,錯誤的是。。

A、內(nèi)存泄露一般是指程序申請了一塊內(nèi)存,使用完后,沒有及時將這塊內(nèi)存釋

放,從而導(dǎo)致程序占用大量內(nèi)存。

B、可以通過malloc(size_t)函數(shù)調(diào)用申請超過該機器物理內(nèi)存大小的內(nèi)存塊。

C、無法通過內(nèi)存釋放函數(shù)千ree(void*)直接將某塊已經(jīng)使用完的物理內(nèi)存直接

還給操作系統(tǒng)。

D、可以通過內(nèi)存分配函數(shù)malloc(size_t)直接臼請物理內(nèi)存。

答案:D

解析:內(nèi)存泄漏也稱作“存儲滲漏”,用動態(tài)存儲分配函數(shù)動態(tài)開辟的空間,在

使用完畢后未釋放,結(jié)果導(dǎo)致一直占據(jù)該內(nèi)存單元。直到程序結(jié)束。即所謂內(nèi)存

泄漏。free釋放的內(nèi)存不一定直接還給操作系統(tǒng),可能要到進程結(jié)束才釋放。

可以直到malloc不能直接申請物理內(nèi)存,它申請的是虛擬內(nèi)存

86.已知inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a不能表示數(shù)組a中元素的式

子是。

A、*a

B、*p

C、a

D、a[p-a]

答案:C

87.在32位機器上,代碼段的執(zhí)行結(jié)果為()charx=65;floaty=7.3;inta=100;

doubIeb=4.5;printf("%d,%d,%d,%d\n'\sizeof(x),sizeof(y),sizeof(a),size

of(b));

Ax2,2,2,4

B、1,2,4,4

C、1,4,48

D、2,4,4,8

答案:C

88.使用new實例化一個類的對象的說法正確的是?

A、只調(diào)用malloc分配了內(nèi)存

B、直接調(diào)用構(gòu)造函數(shù)

C、先底層調(diào)用malloc分配了內(nèi)存,然后調(diào)用構(gòu)造函數(shù)

答案:C

89.當(dāng)一個類A中沒有聲明任何成員變量與成員函數(shù),sizeof(A)的值是多少?

A、0

B、1

C、4

答案:B

90.#include<iostrean>

usingnamespacestd;

voidf(int*print*q)

p++;

*q=*q+1;

)

intmain()(

intm=1,n=2,*r二&m;

f(r,&n);

cout?m?","?n;

returnO;

)

程序運行后的輸出結(jié)果是()

A、2,3

B、1,4

C、1,3

D、1,2

答案:C

91.如果c為字符型變量,判斷c是否為空格(假設(shè)已知空格ASCII碼為32)不

能使用()

A、if(c=32)

B、if(c二二'32')

C、if(c=='\40')

D、if(c=='')

答案:B

解析:\40是八進制換算成二進制就是32也就是空格

92.sizeof指針的值是多少

A、指針本身所占空間大小

B、指針?biāo)赶騼?nèi)容的大小

答案:A

93.map隨機讀的時間復(fù)雜度是?

A、0(1)

B、0(n)

C、O(logN)

D、0(n2)

答案:C

94.分布式環(huán)境下是否可以通過套接字(Socket)實現(xiàn)兩個進程(位于不同主機)

的通訊?

A、是

B、不是

答案:A

95.千兆網(wǎng)卡的理論讀寫速度是?

A、100M/S

B、125M/S

C、1000M/S

答案:B

96.下面程序運行的結(jié)果是。。

#include<stdio.h>

voidadd(int*p)(

(*p)++;

printf("%d",*p);

if(*p>5){

return;

)

add(p);

)

intmain(){

inti=0;

add(&i);

returnO;

)

A、12345

B、123456

C、111111

D、未知

答案:B

解析:

*p++:表示先訪問*P,然后p++;(*p)++:表示先訪問*P,然后將*P的值++;P指

針不變。

97.C++當(dāng)中,若局部變量和全局變量重名,會發(fā)生什么?

A、只能訪問局部變量

B、局部變量會屏蔽全局變量,要使用全局變量,需要使用“::”

C、全局變量會屏蔽局部變量,要使用局部變量,需要使用“::”

D、只能訪問全局變量

答案:B

解析:局部變量會覆蓋掉全局變量,如果想要使用的是全局變量,則在使用哪個

變量之前使用“::”,這個是全局命名空間的意思,因為是自己的全局空間,所

以名字為空,但::這個必須要加

98.程序中結(jié)束一個線程是否會導(dǎo)致程序掛掉?

A、會

B、不會

答案:B

99.c/c++中,有關(guān)純虛函數(shù)說法不正確的是。

A、子類中必須覆蓋基類的純虛函數(shù)

B、含有純虛函數(shù)的類不能被實例化

C、子類中不一定覆蓋基類的虛函數(shù)

D、含有純虛函數(shù)的類一定是抽象類

答案:A

100.有如下類模板定義:

tempIate<cIassT>cIassBigNumber(

longn;

pubIic:

BigNumber(Ti):n(i){)

BigNumberoperator+(BigNumberb)

(

returnBigNumber(n+b.n);

)

);

已知b1,b2是BigNumber的兩個對象,則下列表達式中錯誤的是()?

A、3+3

B、b1+3

C、b1+b2

D、3+b1

答案:D

解析:

運算符重載調(diào)用形式其實是:b1.operator+(參數(shù))簡寫成b1+參數(shù)

101.以下哪個C++容器不能用迭代器遍歷

A、set

B、map

C、queue

D、vector

答案:C

102.在C++中,為了讓某個類只能通過new來創(chuàng)建(即如果直接創(chuàng)建對象,編譯

器將報錯),應(yīng)該()

A、將構(gòu)造函數(shù)設(shè)為私有

B、將析構(gòu)函數(shù)設(shè)為私有

C、將構(gòu)造函數(shù)和析構(gòu)函數(shù)均設(shè)為私有

D、沒有辦法能做到

答案:B

解析:編譯器在為類對象分配??臻g時,會先檢查類的析構(gòu)函數(shù)的訪問性,其實

不光是析構(gòu)函數(shù),只要是非靜態(tài)的函數(shù),編譯器都會進行檢查。如果類的析構(gòu)函

數(shù)是私有的,則編譯器不會在??臻g上為類對象分配內(nèi)存。因此,將析構(gòu)函數(shù)設(shè)

為私有,類對象就無法建立在棧(靜態(tài))上了,只能在堆上(動態(tài)new)分配類

對象。

103.下面程序執(zhí)行結(jié)果:

usingnamespacestd;

classAt

pubIic:

virtualvoidf()(cout?"A::f()";}

voidf()const(cout?'A::f()const";)

);

classB:publicA(

pubIic:

voidf(){cout?"B::f0";}

voidf()const(cout?"B::f()const";}

};

voidg(constA*a)(

a->f0;

)

intmain(intargc,char*argv[]){

A*p=newB();

p->f0;

g(p);

deIete(p);

returnO;

)

A、B::f()B::f()const

B、:f()A::f()const

C、A::f0B::f()const

D、A::f0A::f()const

答案:B

解析:

g(P);執(zhí)行的是父類的千()const,因為他不是虛函數(shù)

104.以下關(guān)于內(nèi)存泄漏說法正確的是。

A、如果一個進程在運行過程中占用的內(nèi)存無限制上升,那么該進程可能有內(nèi)存

泄漏

B、單線程程序不可能內(nèi)存泄漏

C、內(nèi)存泄漏是操作系統(tǒng)內(nèi)存管理出錯導(dǎo)致的問題

D、只要進程在退出之前釋放了所有分配的內(nèi)存,那么就不會內(nèi)存泄漏

答案:A

解析:A:內(nèi)存泄露是進程申請了內(nèi)存卻沒有釋放。導(dǎo)致占用內(nèi)存無限上升B:

內(nèi)存泄露跟線程數(shù)無關(guān)C:內(nèi)存泄露是程序設(shè)計的bug,不是操作系統(tǒng)的問題D:

進程退出之前釋放申請的內(nèi)存,不代表進程運行過程中沒有內(nèi)存泄露E:java

是自動管理內(nèi)存的,但是也會有內(nèi)存泄露,比如加入HashMap的對象hash值改

變了就無法從HashMap中remove,這就造成了內(nèi)存泄露

105.快速排序的平均時間復(fù)雜度

A、0(n)

B、O(logN)

C、0(n2)

D、O(nlogN)

答案:D

106.unordered_map隨機讀的時間復(fù)雜度是?

A、0(1)

B、0(n)

C、0(IogN)

D、0(n2)

答案:A

107.如輸入1,最后輸出什么0voidmain(){chare;scanf("%c",&c);switch(c)

(case'1':printf("1");case'2':printf("2")case'3':printf("3")default:pr

intf("error");}}

A、1

B、123

C、error

D、123error

答案:D

解析:沒有寫break,依次執(zhí)行

108.如果downcast是安全的(也就是,如果基類指針或者引用確實指向一個派生

類對象)這個運算符會傳回適當(dāng)轉(zhuǎn)型過的指針。如果downcast不安全,這個運算

符會傳回空指針(也就是說,基類指針或者引用沒有指向一個派生類對象)。這個

是指C++里的0

Axdynamic_cast

B、reinterpret_cast

C、staticcast

D、constcast

答案:A

解析:dynamic_cast將一個基類對象指針(或引用)cast到繼承類指針,dyna

mic_cast會根據(jù)基類指針是否真正指向繼承類指針來做相應(yīng)處理,即會作一定

的判斷。對指針進行dynamijcast,失敗返回null,成功返回正常cast后的對

象指針;對引用進行dynamijcast,失敗拋出一個異常,成功返回正常cast后

的對象引用。reinterpret_cast這個轉(zhuǎn)換是最“不安全”的,兩個沒有任何關(guān)

系的類指針之間轉(zhuǎn)換都可以用這個轉(zhuǎn)換實現(xiàn)。static-cast靜態(tài)轉(zhuǎn)換是最接近于

C風(fēng)格轉(zhuǎn)換,很多時候那需要程序員自身去判斷轉(zhuǎn)換是否安全。const_cast這個

轉(zhuǎn)換好理解,可以將常量轉(zhuǎn)成非常量。

109.intsolve(intx){.....}intsolve2(inty){......}inty;intmain(){x-+;/

/1x=solve(x);//2x=solve2(y);//3x=1;//4}對于上面代碼,main函數(shù)內(nèi)注釋的

1、2、3、4只會同時存在一行,下面說法錯誤的是()

A、多線程對x的操作需要同步的包括x++

B、多線程對x的操作需要同步的包括x二solve(x)

C、多線程對x的操作需要同步的包括x=solve2(y)

D、多線程對x的操作需要同步的包括x=1

答案:D

解析:x=1是一個原子操作,原子操作不需要加鎖

110.::name中::表示全局作用域符

A、正確

B、錯誤

答案:A

111.函數(shù)參數(shù)傳遞一個只讀的對象使用以下哪種方式?

A、值傳遞

B、引用傳遞

答案:B

112.下列語句中錯誤的是()

A、int*p=newint(10);

B、int*p=newint[10];

C、int*p=newint;

D、int*p=newint[40][0);

答案:D

解析:"int*p=newint(10);”表示動態(tài)分配1個整型內(nèi)存空間,初值為10;"

int*p=newintC10];"表示動態(tài)分配10個整型內(nèi)存空間;'int*p二newint;"表示

動態(tài)分配1個整型內(nèi)存空間;”而班=3收[4的(0)”想給一個數(shù)組分配內(nèi)存

空間時,對數(shù)組進行初始化,這是不允許的。

113.有以下程序#也0111€16"$14。.11"#(164116$118(@)(2)-(2)丫0?€1唳冶()(5七@二2,

b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序運行后的輸出結(jié)果是0

A、0

B、-12

C、-20

D、10

答案:C

解析:宏定義在編譯時會替換程序中的內(nèi)容,是直接替換,不改變優(yōu)先級。

114.請聲明一個指針,其所指向的內(nèi)存地址不能改變,但內(nèi)存中的值可以被改變。

A、constintconst*x=&y;

Bxint*constx=&y;

C、constint*x=&y;

D、intconst*x=&y;

答案:B

解析:A,指針?biāo)赶虻膬?nèi)存不可變,內(nèi)存中的值也不能通過指針改變,錯誤;B,

指針?biāo)赶虻膬?nèi)存不可變,內(nèi)存中的值可以改變,正確;C,指針?biāo)赶虻膬?nèi)存

可變,但內(nèi)存中的值不能通過指針改變,錯誤;D,指針?biāo)赶虻膬?nèi)存可變,但

內(nèi)存中的值不能通過指針改變,錯誤;E,指針?biāo)赶虻膬?nèi)存不可變,內(nèi)存中的

值也不能通過指針改變,錯誤;

115.下面對析構(gòu)函數(shù)的正確描述是()?

A、系統(tǒng)在任何情況下都能正確析構(gòu)對象

B、用戶必須定義類的所構(gòu)函數(shù)

C、析構(gòu)函數(shù)沒有參數(shù),也沒有返回值

D、析構(gòu)函數(shù)可以設(shè)置默認(rèn)參數(shù)

答案:C

解析:編譯器會默認(rèn)生成析構(gòu)函數(shù)不是必須定義的沒有參數(shù)也沒有返回值

116.unordered_map的底層數(shù)據(jù)結(jié)構(gòu)是?

A、數(shù)組

B、鏈表

C、紅黑樹

D\哈希表

答案:D

117.若已定義x為int類型變量,下列語句中說明指針變量p的正確語句是()

A、intp=&x;

B、int*p二x;

C、int*p二&x;

D、*p=*x;

答案:C

118.冒泡排序是否是穩(wěn)定的排序

A、是

B、否

答案:A

119.在64環(huán)境下,int*p=newint[16]{),sizeoftp)的值為多少?

A、1

B、4

C、8

D、64

答案:C

120.哪個指令可以查看git歷史提交記錄

A、gitlog

B、gitmit

C\gitadd

D、gitdiff

答案:A

121.數(shù)據(jù)庫索引的說法正確的是?

Ax用處不大,可有可無

B、加快檢索表中數(shù)據(jù)的方法

答案:B

122.關(guān)于CMAKE的說法正確的是?

Axcmake是跨平臺工程構(gòu)建工具

B、cmake是編譯器

C、cmake是連接器

答案:A

123.下列程序的輸出結(jié)果為()intmain(){intm=7,n=4;fIoata=38.4,b=6.4,x;

x=m/2+n*a/b+1/2;printf("%f\n"Fx);returnO;}

A、27.000000

B、27.500000

C、28.000000

D、28.500000

答案:A

解析:注意整型和整型的除法,等到的仍然是整型,并不會出現(xiàn)浮點型或者dou

ble型

124.若有定義typedefcharT[10];T*a;上述定義中a的類型與下面選項中完全相

同的是()?

Axchara[10];

B、char(*a)[10];

C、char*a;

D、char*a[10];

答案:B

125.關(guān)于C++中的new和C語言中的maIIoc,以下說法哪個是正確的:。

A、都是用來申請內(nèi)存的

B、都是函數(shù)

C、都會調(diào)用構(gòu)造函數(shù)

D、他們沒有區(qū)別,都一樣

答案:A

解析:1.malloc是庫函數(shù),而new是操作符2.maIloc需要申請內(nèi)存大小,new

不需要3.malloc返回的指針類型需要進行強轉(zhuǎn),但是new不需要4.malloc不能

進行重載,但是new可以

126.有以下語句定義intx=5;constint*constp=&x;constint&q=x;intconst*ne

xt=&x;constint*j=&x:則有語法正確的是()

A、*p=1;

B、q++;

C、next++;

D、(*j)++;

答案:C

127.網(wǎng)絡(luò)字節(jié)順序是TCP/IP中規(guī)定好的一種數(shù)據(jù)表示格式,它與具體的CPU類

型、操作系統(tǒng)等無關(guān),從而可以保重數(shù)據(jù)在不同主機之間傳輸時能夠被正確解釋。

網(wǎng)絡(luò)字節(jié)順序采用哪種排列順序?

A、大端字節(jié)序

B、小端字節(jié)序

答案:A

128.以下不是doubIepare(int,int)的重載函數(shù)的是()

Avintpare(doubIe,doubIe)

B、doubIepare(doubIe,doubIe)

C、doubIepare(doubIe,int)

D、intpare(int,int)

答案:D

129.windows系統(tǒng)中查看網(wǎng)卡信息使用哪個指令?

A、ifconfig

B、ipconfig

答案:B

130.HTTP返回狀態(tài)碼200表示?

A、客戶端請求失敗

B、客戶端請求成功

答案:B

131.程序的內(nèi)存分配區(qū)域不包括

A、從靜態(tài)存儲區(qū)域分配

B、從棧區(qū)分配

C、從堆區(qū)分配

D、從文本區(qū)分配

答案:D

132.一個類的static成員函數(shù)和成員對象說法錯誤的是

A、static成員函數(shù)屬于類

B、static成員函數(shù)屬于類的對象實例

C、static成員變量屬于類

答案:B

133.Mysql的默認(rèn)端口號是多少?

A、80

B、21

C、3306

D、8000

答案:C

134.HTTP協(xié)議使用的哪種傳輸層協(xié)議

A、TCP

B、UDP

答案:A

135.linux系統(tǒng),應(yīng)用程序運行在內(nèi)核態(tài)還是用戶態(tài)?

Ax內(nèi)核態(tài)

B、用戶態(tài)

答案:B

136.const修飾變量,是為了聲明該變量不可以被改變

A、正確

B、錯誤

答案:A

137.數(shù)據(jù)庫引擎的實現(xiàn)采用何種數(shù)據(jù)結(jié)構(gòu)?

A、B+樹

B、紅黑樹

答案:A

138.以下敘述中正確的是()

A、在一個程序中,允許使用任意數(shù)量的#include命令行

B、在包含文件中,不得再包含其他文件

C、#incIude命令行不能出現(xiàn)在程序文件的中間

D、雖然包含文件被修改了,包含該文件的源程序也可以不重新進行編譯和連接

答案:A

解析:本題考查預(yù)處理中文件包含的概念,包含文件中可以包含其他文件,B選

項錯誤,#incIude可以出現(xiàn)在程序文件的中間,C選項錯誤,包含文件被修改了,

包含該文件的源程序必須重新進行編譯和連接。

139.malloc申請到的內(nèi)存中的初始值是否確定

A、確定

B、不確定

答案:B

140.C++中的拷貝構(gòu)造函數(shù)在下面哪些情況下不會被調(diào)用()

A、對象創(chuàng)建的時候

B、使用一個類的對象去初始化該類的一個新對象

C、被調(diào)用函數(shù)的形參是類的對象

D、當(dāng)函數(shù)的返回值是類的對象時,函數(shù)執(zhí)行完成返回調(diào)用者

答案:A

解析:在三種情況下系統(tǒng)會調(diào)用拷貝構(gòu)造函數(shù):(1)用類的一個對象去初始化

另一個對象時(2)當(dāng)函數(shù)的形參是類的對象時(也就是值傳遞時),如果是引

用傳遞則不會調(diào)用(3)當(dāng)函數(shù)的返回值是類的對象或引用時

141.下面說法錯誤的是()

A、在組合類的析構(gòu)函數(shù)中不需要顯式調(diào)用其成員對象的析構(gòu)函數(shù)

B、在類的繼承層次中,可以自動進行向上和向下類型轉(zhuǎn)換.而且都是安全的

C、構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)不能重載

D、C++的派生類如果要覆蓋一個繼承到的成員函數(shù),在基類中需要將該函數(shù)聲明

為virtuaI

答案:B

解析:A選項:在組合類的析構(gòu)函數(shù)中并不需要顯式調(diào)用其成員對象的析構(gòu)函數(shù),

因為當(dāng)執(zhí)行組合類的析構(gòu)函數(shù)時,其數(shù)據(jù)成員也會被銷毀,對于類成員對象來說,

成員對象銷毀時,程序會自動調(diào)用其析構(gòu)函數(shù);不過對于組合類中new的指向類

成員的指針,組合類需要自己去delete該指針;B選項:顯然是錯的,在類繼

承層次中,基類在上,派生類在下,所以可以自動進行向上類型轉(zhuǎn)換,即可以使

基類指針和引用指向派生類對象,而不可以使派生類指針和引用指向基類對象;

C選項:對的,構(gòu)造函數(shù)可以根據(jù)參數(shù)的不同實現(xiàn)函數(shù)重載,而因為析構(gòu)函數(shù)沒

有參數(shù),對于一個類來說也是唯一的,所以是不能重載的;D選項:即派生類想

要重寫繼承來的成員函數(shù),需要用到virtual函數(shù),來實現(xiàn)動態(tài)多態(tài)。

142.TCP頭部是多少個字節(jié)

A、4

B、8

C、20

D、1500

答案:C

143.以下代碼中的兩個sizeof用法有問題嗎?voidllpperCase(charstr口)〃將

str中的小寫字母轉(zhuǎn)換成大寫字母

(

for(size_ti=0;i<sizeof(str)/sizeof(str[0]);++i)

if(,a,<=str[i]&&str[i]<='z')

str-=Ca'-'A');

)

charstr[]="aBcDe";

cout?"str字符長度為:"?sizeof(str)/sizeof(str[0])?endI;

UpperCase(str);

cout?str?endI;

A、函數(shù)內(nèi)的有問題

B、函數(shù)外的有問題

C、函數(shù)內(nèi),外的都有問題

D、用法正確

答案:C

解析:

外層是字符串長度不正確,內(nèi)層是數(shù)組退化為指計。

144.什么函數(shù)不能聲明為虛函數(shù)?

A、靜態(tài)成員函數(shù)、構(gòu)造函數(shù)

B、內(nèi)聯(lián)函數(shù)、構(gòu)造函數(shù)

C、靜態(tài)成員函數(shù)、析均函數(shù)

D、內(nèi)聯(lián)函數(shù)、析構(gòu)函數(shù)

答案:A

解析:常見的不能聲明為虛函數(shù)的有:普通函數(shù)(非成員函數(shù))、靜態(tài)成員函數(shù)、

內(nèi)聯(lián)成員函數(shù)、構(gòu)造函數(shù)、友元函數(shù)。

145.以下哪個GCC編譯環(huán)境下的鏈接器

A、Id

B、Iink

答案:A

146.在下列運算符中,優(yōu)先級最高的是()

A、<=

B、*二

c、+

D、*

答案:D

解析:

單目運算符>算術(shù)運算符)移位〉比較〉按位》邏輯》三目運算符)賦值運算符

147.下面對構(gòu)造函數(shù)的不正確描述是()?

A、用戶定義的構(gòu)造函數(shù)不是必須的

B、構(gòu)造函數(shù)可以重載

C、構(gòu)造函數(shù)可以有參數(shù),也可以有返回值

D、構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù)

答案:C

解析:構(gòu)造函數(shù)沒有返回值

148.Mysql的說法正確的是?

A、Mysql為非關(guān)系型數(shù)據(jù)庫

B、Mysql常作為關(guān)系型數(shù)據(jù)庫使用

答案:B

149.vector的底層數(shù)據(jù)結(jié)構(gòu)是?

A、數(shù)組

B、鏈表

C、紅黑樹

D、哈希表

答案:A

150.explicit修飾構(gòu)造函數(shù)時,可以防止隱式轉(zhuǎn)換,該說法是否正確

A、正確

B、錯誤

答案:A

151.小端模式下#incIude<stdio.h>unionC{inta;charb;};intmain(){Cc;c.a=0

x02020101;if(c.b二二0x02){printf("bingend\n");}else{printf("Iitterend\n

”);})輸出是多少?

Axbingend

B、Iitterend

答案:B

152.函數(shù)重載發(fā)生在那個時期?

A、編譯期

B、運行期

答案:A

153.inta=0;intb=a++:b的值是多少?

A、0

B、1

C、2

D、4

答案:A

154.函數(shù)參數(shù)的默認(rèn)值不允許為()

Ax全局常量

B、直接常量

0\局部變量

D、函數(shù)調(diào)用

答案:C

解析:局部變量是函數(shù)調(diào)用之后,才會被構(gòu)造出來,而函數(shù)參數(shù)的值的存在,是

在調(diào)用函數(shù)的時候就必須存在的。

155.下列代碼,循環(huán)了多少次intk=2000;while(k>1){k=k?1;}

A、10

B、11

C、12

D、20

答案:A

解析:》是位移符號??梢岳斫鉃槊看纬?.從k=2000直到仁1,共需10次位

移操作

156.關(guān)于類成員函數(shù)的重載、覆蓋和隱藏,下面說法錯誤的是()

A、重載函數(shù)必須要在同一個類中

B、派生類函數(shù)覆蓋基類函數(shù),基類函數(shù)最好不要有virtual關(guān)鍵字

C、如果派生類的函數(shù)與基類的函數(shù)名相同,通過派生類的實例也只能調(diào)用到派

生類的函數(shù)。

D、重載函數(shù)不必使用virtual關(guān)鍵字修飾

答案:B

157.unsignedinta=0x10100101;charb=a;b的值是多少?

A、0x10

B、0x01

答案:B

158.快速排序是否是穩(wěn)定的排序

Ax是

B、否

答案:B

159.下列描述中正確的是()

A、表示m>n為true或m。為true的表達式為"m>n&&m<n”

B、switch語句結(jié)構(gòu)中必須有default語句

C、如果至少有一個操作數(shù)為true,則包含"||”運算符的表達式true

D、if語句結(jié)構(gòu)中必須有else語句

答案:C

160.編譯鏈接的過程包含預(yù)編譯、編譯、匯編、鏈接四個過程的說法是否正確

A、正確

B、錯誤

答案:A

161.下面程序段輸出結(jié)果是()shortinti=32769;printf("%d\n",i);

A、32769

B、32767

C、-32767

D、輸出不是確定的數(shù)

答案:C

解析:因為(32769)10二(1000000000000001)2,所以i的值在內(nèi)存中補碼形式表

示為1000000000000001,最高位是1表示負(fù)數(shù),其表示的有符號數(shù)是-(0111111

111111111)2,即十進制數(shù)-32767。所以正確答案是C。

162.C++11的智能指針類型不包括?

A、shared_ptr

B、unique_ptr

C、weak_ptr

D、auto_ptr

答案:D

163.設(shè)x為整型變量,不能正確表達數(shù)學(xué)關(guān)系1VxV5的C++邏輯表達式是()。

A、1<x

B、x二二2||x二二3||x二二4

C、1

D、!(x=5)

答案:A

164.某函數(shù)申明如下:voidFunc(int&nVal1);有inta,下面使用正確的為()

A、Func(a)

B、Func(&a)

C、Func(*a)

D、Func(&(*a))

答案:A

165.要求打開文件D:\file.dat,并能夠?qū)懭霐?shù)據(jù),正確的語句是()?

A、ifstreaminfile("D:\\fiIe.dat",ios::in);

B、ifstreaminfile("D:\\fiIe.dat",ios::out):

C、ofstreamoutfile("D:\\fiIe.dat",ios::in);

D、fstreaminfile("D:\\fiIe.dat",ios::in|ios::out);

答案:D

解析:A,選項創(chuàng)建了文件的讀取流,且文件打開模式是讀取方式,不符合,B,

選項創(chuàng)建了文件的讀取流,不符合。C,選項創(chuàng)建了文件的寫入流,但是文件打

開方式為讀取方式,故而也不符合。D,選項創(chuàng)建了文件的讀取寫入流,同時文

件打開方式也為可讀可寫方式,故而選D。

166.以下關(guān)于類占用內(nèi)存空間的說法錯誤的是。

A、類所占內(nèi)存的大小是由成員變量(靜態(tài)變量除外)和虛擬函數(shù)表指針空間(若

有虛函數(shù))所決定

B、32位操作系統(tǒng)環(huán)境下空類的內(nèi)存大小是4個字節(jié)

C、類中無論有多少個虛函數(shù),只會多占一個虛表指針空間

D、子類的內(nèi)存大小等于父類的內(nèi)存大小加上子類獨有成員變量的內(nèi)存大小

答案:B

解析:空的類是會占用內(nèi)存空間的,而且大小是1,原因是C++要求每個實例在

內(nèi)存中都有獨一無二的地址。

167.有關(guān)下面程序說法正確的是()(注:=代表空格)intmainO{chars[6]

="abcd";printf("\"%s\"\n",s);returnO;}

A、"abed"

B、\"abcd\"

C、"abed1"

D、編譯錯誤

答案:A

168.虛析構(gòu)函數(shù)是為了解決基類的指針指向派生類對象,并用基類的指針刪除派

生類對象的時候可能出現(xiàn)的內(nèi)存泄漏。此說法是否正確

A、正確

B、錯誤

答案:A

169.下面關(guān)于C++lambda表達式說法正確的有

A、[capture](params)->ret{body}這是一個完整的lambda表達式形式

B、capture值為[a,&b]表示a變量以值的方式唄捕獲,b以引用的方式被捕獲

C、capture為[二]表示不捕獲外部的任何變量

Dvlambda表達式是屬于C++14的新特性

答案:B

解析:Lambda函數(shù)語法定義:[capture](parameters)mutabIe->return-type{st

atement);A錯誤.[二]表示值傳遞方式捕捉所有父作用域的變量(包括this)方錯

誤.Iambda表達式是屬于C++11&14新特性;D錯誤.

170.現(xiàn)在有以下語句:struct_THUNDER{intiVersion;chardag;charcAdv;inti

User;charcEnd;}Nowcoder

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論