C++開發(fā)基礎練習題及答案7-2023背題版_第1頁
C++開發(fā)基礎練習題及答案7-2023背題版_第2頁
C++開發(fā)基礎練習題及答案7-2023背題版_第3頁
C++開發(fā)基礎練習題及答案7-2023背題版_第4頁
C++開發(fā)基礎練習題及答案7-2023背題版_第5頁
已閱讀5頁,還剩105頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

試題說明

本套試題共包括1套試卷

每題均顯示答案和解析

C++開發(fā)基礎練習題及答案7(500題)

C++開發(fā)基礎練習題及答案7

1.[單選題]關于CMAKE的說法正確的是?

A)Cmake是跨平臺工程構建工具

B)CnIake是編譯器

C)Cmake是連接器

答案:A

解析:

2.[單選題]對C++語言和C語言的兼容性,描述正確的是()

A)C++兼容C

B)C++部分兼容

C)C兼容C++

答案:A

解析:

3.[單選題]正確的C++語言標識符是()。

A)3d_max

B)if

C)A&

D)sum2

答案:A

解析:

4.[單選題]對下述程序中標定語句號的行,有錯的行是o

A)I行

B)2行

03行

D)4行

答案:A

解析:

5.[單選題]對以下說明語句的正確理解是()。

Inta[10]={6,7,8,9,10};

A)將5個初值依次賦給a[l]至a[5]

B)將5個初值依次賦給a[0]至a[4]

C)將5個初值依次賦給a[6]至a[10]

D)因為數組長度與初值的個數不相同,所以此語句不正確

答案:B

解析:

6.[單選題]下述對C++語言字符數組的描述中錯誤的是()。

A)字符數組的下標從0開始

B)字符數組中的字符串可以進行整體輸入/輸出

C)可以在賦值語句中通過賦值運算符"="對字符數組整體賦值

D)字符數組可以存放字符串

答案:C

解析:

7.[單選題]下列程序的輸出結果是oJfincludeusingnamespacestd;intfun(inta,

intb){staticintm,i=2;i+=m+l;m=i+a+b;return(m);}intmain(){intk=4,m=l,p;

p=fun(k,?n);cout

A)8,17

B)8,16

C)8,20

D)8,8

答案:A

解析:

8.[單選題]在定義inta[2][3];之后,對a的元素正確引用的有。

A)a[2][2]

B)aLl,3]

C)a[l>2][!1]

D)aL2][0]

答案:C

解析:

9.[單選題]設存在函數intmax(int,int)返回兩參數中較大值,若求22,59,70三者中最大值

,下列表達式不正確的是()

A)intm=max(22,max(59,70));

B)intm=max(max(22,59),70);

C)intm=max(22,59,70);

D)intm=max(59,max(22,70));

答案:C

解析:

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

出全部偶數的是O

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",p[i]);

C)inti=0;

while(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++;

)

答案:D

解析:

11.[單選題]設某棵二叉樹的中序遍歷序列為ABCD,前序遍歷序列為CABD,則后序遍歷該二叉樹

得到序列為()

A)BADC

B)BCDA

C)CDAB

D)CBDA

答案:A

解析:

12.[單選題]if語句的語法格式可描述為:格式1:if()或格式2:if()else關于上面的語法格式

下列表述中錯誤的是()。

A)<條件>部分可以是一個if語句,例如if(if(a==0)…)…

B)<語句>部分可以是一個if語句,例如if(…)if(???),,,

C)如果在<條件>前加上邏輯非運算符!并交換<語句1>和〈語句2>的位置,語句功能不變

D)<語句>部分可以是一個循環(huán)語句,例如if(…)while(…)…

答案:A

解析:

13.[單選題]語句COUt<<"s??t"的輸出結果為o(題)

A)s??t

B)s?t

C)s?

D)s

答案:B

解析:

14.[單選題]在C++中用來實現(xiàn)運行時多態(tài)性的是()。

A)重載函數

B)析構函數

C)構造函數

D)虛函數

答案:D

解析:

15.[單選題]以下程序的輸出結果為()。

chara;a='x';a=a-32;printf("%c",a);

A)x

B)X

C)程序出現(xiàn)編譯錯誤

D)a

答案:B

解析:

16.[單選題]解決二義性問題的方法有()

A)只能使用作用域分辨操作符

B)使用作用域分辨操作符或賦值兼容規(guī)則

C)使用作用域分辨操作符或虛基類

D)使用虛基類或賦值兼容規(guī)則

答案:C

解析:

17.[單選題]設指針變量P指向單鏈表中結點A,若刪除單鏈表中結點A,則需要修改指針的操作序列

為()。

A)q=p->next;p->data=q->data;p->next=q->next;free(q);

B)q=p->next;q->data=p->data;p->next=q->next;free(q);

C)q=p->next;p->next=q->next;free(q);

D)q=p->next;p->data=q->data;free(q);

答案:A

解析:

18.[單選題]類中定義的成員默認為()訪問屬性。

A)public

B)private

C)protected

D)friend

答案:A

解析:

19.[單選題]執(zhí)行語句“inti=3.6*6;"后,整型變量i的值為()。

A)18

B)21

022

D)24

答案:B

解析:先乘再取整

20.[單選題]下列正確的八進制整型常量表示是()。

A)0a0

B)015

0080

D)OxlO

答案:B

解析:

21.[單選題]有如下程序:

IntX=3;

Do{

X-=2;

Cout<<x;

}while(!(-x));

執(zhí)行這個程序的輸出結果是()。(題)

A)l-2

B)l

C)30

D)死循環(huán)

答案:A

解析:

22.[單選題]下列符號中能夠作為C++標識符的是()。(題)

A)_shape

B)-count

C)const

D)2f

答案:A

解析:

23.[單選題]在調用函數時,如果實參是簡單的變量,它與對應形參之間的數據傳遞方式是()。

A)地址傳遞

B)單向值傳遞

C)由實參傳形參,再由形參傳實參

D)傳遞方式由用戶指定

答案:B

解析:

24.[單選題]C++語言中,函數返回值的類型是由()決定。

A)主調函數的類型

B)return語句中表達式的類型

C)由系統(tǒng)臨時指定

D)定義該函數時所指定的函數類型

答案:D

解析:

25.[單選題]下面關于對象概念的描述中錯誤的是()

A)任何對象都必須有繼承性

B)對象是屬性和方法的封裝體

C)對象間的通信靠消息傳遞

D)操作是對象的動態(tài)屬性

答案:A

解析:對象的特點包括兩個方面:屬性和操作。

屬性指的是描述對象靜態(tài)特征(即狀態(tài))的數據項;

操作指的是描述對象動態(tài)特征(即行為)的函數序列。故D正確。

故也可稱對象是屬性和方法的封裝體。故B正確。

“繼承”,就是在編寫一個“新”類的時候,以現(xiàn)有的類作為基礎,使得新類從現(xiàn)有的類”派生

”而來,從而達到代碼擴充和代碼復用的目的。繼承支持層次概念。并不是任何對象都必須具有繼

承性。因此A錯誤。

26.[單選題]有如下程序:

ttinclude<iostream>

^include<stdlib.h>

Usingnamespacestd;

Intmain(){

inti,n;

for(i=0;i<8;i++)

{n=rand()%5;〃rand()為偽隨機函數,可產生任意正整數

switch(n)

{case1:

case3:cout<<n<<endl;break;

case2:

case4:cout<<n<<endl;continue;

case0:exit(0);〃exit()為終止程序函數

)

cout<<n?endl;

)

return0;

)

以下有關程序執(zhí)行情況的敘述,正確的是()。

A)for循環(huán)語句固定執(zhí)行8次

B)當產生的隨機數n為4時結束循環(huán)

C)當產生的隨機數n為1和2不做任何操作

D)當產生的隨機數n為O時結束程序運行

答案:D

解析:

27.[單選題]關于靜態(tài)成員,以下描述中錯誤的是o

A)類外初始化靜態(tài)數據成員,不需要加StatiC

B)類外初始化靜態(tài)數據成員,若不給初值,則初始化為0

C)通過對象或類名,在類外均可以訪問公有的靜態(tài)成員

D)通過對象或類名,在類外均可以訪問私有的和公有的靜態(tài)成員

答案:D

解析:

28.[單選題]以下關于內存泄漏說法正確的是O

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

B)單線程程序不可能內存泄漏

C)內存泄漏是操作系統(tǒng)內存管理出錯導致的問題

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

答案:A

解析:A:內存泄露是進程申請了內存卻沒有釋放。導致占用內存無限上升B:內存泄露跟線程數無關

C:內存泄露是程序設計的bug,不是操作系統(tǒng)的問題D:進程退出之前釋放申請的內存,不代表進程

運行過程中沒有內存泄露E:java是自動管理內存的,但是也會有內存泄露,比如加入HaShMaP的對

象hash值改變了就無法從HaShMaP中remove,這就造成了內存泄露

29.[單選題]下面程序執(zhí)行后的輸出結果是o

ttincIudeusingnamespacestd;#defineN20voidfun(inta口,intn,intm){inti;for(i=m;i〉=n;i-

)a[i+l]=a[i];}intmain(){inti;inta[N]={l,2,3,4,5,6,7,8,9,10};fun(a,1,5);for(i=0;i<5;i++)

cout<

A)10234

B)12344

C)12334

D)12234

答案:D

解析:

30.[單選題]如果downcast是安全的(也就是,如果基類指針或者引用確實指向一個派生類對象)這個

運算符會傳回適當轉型過的指針。如果downcast不安全,這個運算符會傳回空指針(也就是說,基類

指針或者引用沒有指向一個派生類對象)。這個是指C++里的()

A)dynamic_cast

B)reinterpretcast

C)static_cast

D)const_cast

答案:A

解析:dynamic_cast將一個基類對象指針(或引用)CaSt到繼承類指針,dynamiccast會根據基類指

針是否真正指向繼承類指針來做相應處理,即會作一定的判斷。對指針進行dynamic_cast,失敗

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

返回正常CaSt后的對象引用。reinterpret_cast這個轉換是最"不安全"的,兩個沒有任何關系的

類指針之間轉換都可以用這個轉換實現(xiàn)。StatijCaSt靜態(tài)轉換是最接近于C風格轉換,很多時候都

需要程序員自身去判斷轉換是否安全。COnSt_cast這個轉換好理解,可以將常量轉成非常量。

31.[單選題]下列選項中,正確的C++表達式為()。

A)a++3

B)i+

C)a+=b

D)'a'=b

答案:C

解析:A:++先與a結合,后邊3無法解釋,B:表達式缺操作數,D:不允許對常量賦值

32.[單選題]以下4個選項中,不能看作一條語句的是()。

A)if(b==0)m=l;n=2;

B)a=0,b=0,c=0;

C)if(a>O);

D){;}

答案:B

解析:

33.[單選題]有如下語句序列:intk=0;do{k+=5;cout?'$';}while(k<19);while(k—

>0)cout<<'*';執(zhí)

行上面的語句序列輸出字符$和*的個數分別是()。(題)

A)4和20

B)5和20

C)4和21

D)5和21

答案:A

解析:

34.[單選題]下面程序執(zhí)行后的輸出結果是o

ttincIudeusingnamespacestd;intmain(){inta[10]={l,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;cou

t<<*p+*q;returnO;}

A)16

B)10

C)8

D)6

答案:B

解析:

35.[單選題]對C++語言和C語言的兼容性,描述正確的是。

A)C++兼容C

B)C++部分兼容C

OC++不兼容C

D)C兼容C++

答案:A

解析:C語言是C++語言的前身,在進一步擴充和完善C語言的基礎上得到了C++語言。故C++語言兼容

C語言。

36.[單選題]下列敘述中,正確的是O

?)只能在循環(huán)體內和SWiteh語句體內使用break語句

B)ContinUe語句的作用是結束整個循環(huán)

C)在循環(huán)體內使用break語句和ContinUe語句可以起到同樣的作用

D)從多重循環(huán)中退出時,只能使用goto語句

答案:A

解析:

37.[單選題]以下程序段中與語句k=a>b?1:0;功能等價的是(D)。

A)if(a>b)k=l;

B)if(a>b)k=0

C)if(a>b)k=l;

D)if(a<b)k=0;elsek=0;elsek=l;

答案:D

解析:

38.[單選題]用于處理字符串流的是()。

A)strstream

B)ios

C)fstream

D)iosteam

答案:A

解析:

39.[單選題]函數重載必須滿足的條件是()

A)函數名相同

B)參數個數不同

C)參數類型不同

D)函數名不相同

答案:A

解析:函數重載:指在程序的同一范圍內聲明幾個功能類似的同名函數。

實現(xiàn)函數的重載必須滿足下列條件之一:

(1)參數表中對應的參數類型不同。

(2)參數表中參數個數不同。

以上兩個條件滿足之一即可,但函數重載必須滿足的是函數名相同。故本題選A

40.[單選題]有一個有序表為{1,3,9,12,32,41,45,62,75,77,82,95,100),當二分查

找值為82的結點時,多少次比較后查找成功

A)l

B)2

04

D)8

答案:C

解析:

41.[單選題]有以下程序

#include<iostream.h>

voidmain()

{char*pL10]={"abc","aabdfg","dcdbe","abbd","cd");

cout<<p[3]<<endl;

}

執(zhí)行后輸出結果是

A)dcdbe

B)abbd

C)abc

D)abb

答案:B

解析:

42.[單選題]對n個記錄的文件進行快速排序,所需要的輔助存儲空間大致為??

A)0(1)

B)O(n)

C)O(log2n)

D)0(n2)

答案:C

解析:

43.[單選題]下列for循環(huán)的次數為()。for(i=0,x=0;!x&&i

A)5

B)6

Ol

D)無限

答案:B

解析:

44.[單選題]C++中是否允許在類結構中定義函數()

A)不允許

B)允許

C)僅允許定義構造函數

D)只不允許定義構造函數

答案:B

解析:類中定義的數據和函數稱為這個類的成員。故允許在類結構中定義函數。

45.[單選題]關于C++與C語言的關系的描述中,()是錯誤的。

A)C語言是C++的一個子集;

B)C語言與C++是兼容的;

OC++對C語言進行了一些改進;

D)C++和C語言都是面向對象的

答案:D

解析:

46.[單選題]inta=0;intb=++a;b的值是多少?

A)0

B)l

02

D)4

答案:B

解析:

47.[單選題]友員的作用之一是()

A)提高程序的運行效率

B)加強類的封裝

C)實現(xiàn)數據的隱蔽性

D)增加成員函數的種類

答案:A

解析:

48.[單選題]存儲以下數據,占用存儲字節(jié)最多的是()。

A)0

B),0,

C)“0”

D)0.0

答案:D

解析:

49.[單選題]有定義如下:inta[5],*p=a;則下列描述錯誤的是。

A)表達式p=p+l是合法的

B)表達式a=a+l是合法的

C)表達式p-a是合法的

D)表達式a+2是合法的

答案:B

解析:

50.[單選題]下列關于文件包含的敘述中,錯誤的是。

A)文件包含是可以嵌套的,即被包含的文件中還可以使用文件包含命令行

B)若在fl.cpp文件最前面包含了f2.h文件,則在f2.h定義的全局變量在fl.CPP文件中不必使用

extern聲明就可以使用

C)一條文件包含命令只能包含一個文件

D)可以采用晅.1加6"文件名"和#include?兩種方式進行文件包含,兩者是一樣的,沒有區(qū)別

答案:D

解析:

51.[單選題]如果有intX,*p;floaty,*q;則下面操作正確的是()。

A)p=x

B)p=q

C)P=&x

D)P=&y

答案:C

解析:

52.[單選題]IO流中ifstream繼承于()類

A)Ostream

B)istream

C)Ofstream

D)iostream

答案:B

解析:

53.[單選題]istream&get(char&ch);功能是

A)讀入一個字符并把它存儲在Ch

B)輸出一個字符并把它存儲在Ch

C)把它存儲在Ch的字符輸出

D)讀入一個字符串

答案:A

解析:

54.[單選題]下面不是棧的基本運算

A)刪除棧頂元素

B)刪除棧底元素

C)入棧

D)棧置空

答案:B

解析:

55.[單選題]存儲以下數據,占用存儲字節(jié)最多的是()。

A)0

B),0,

C)“0”

D)0.0

答案:D

解析:

56.[單選題]字符串的長度是指()

A)串中不同字符的個數

B)串中不同字母的個數

C)串中所含字符的個數

D)串中不同數字的個數

答案:C

解析:

57.[單選題]有以下程序#includevoidmain(){char

*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};cout

A)dcdbe

B)abbd

C)abc

D)abb

答案:B

解析:

58.[單選題]定義如下一維數組:inta[5],*p=a;則下面描述錯誤的是。

A)表達式p=p+l是合法的

B)表達式a=a+l是合法的

C)表達式p-a是合法的

D)表達式a+2是合法的

答案:B

解析:

59.[單選題]有如下一段代碼:intnCount=0;while(x){nCount++;x=x&(x-1);}假設

X初始為9999,則執(zhí)行完nCount值為()

A)32

B)999

08

D)l

答案:C

解析:X=X&(X-I)這算的是X寫成二進制數后其中1的個數。把9999化為二進制,每進行一次

x&(X-I)的結果就會少一個1(按位與后變?yōu)?),因此原來X的1的個數就是答案

60.[單選題]函數參數的默認值不允許為()

A)全局常量

B)直接常量

C)局部變量

D)函數調用

答案:C

解析:局部變量是函數調用之后,才會被構造出來,而函數參數的值的存在,是在調用函數的時候就

必須存在的。

61.[單選題]要定義數組A,使得其中每個元素的數據分別依次為:3、9、4、8、0、0、0,錯誤的定義

語句是o

A)intA[]={3,9,4,8,0,0,0);

B)intA口={3,9,4,8};

C)intA[7]={3,9,4,8,0,0,0);

D)intA[7]={3,9,4,8};

答案:B

解析:

62.[單選題]一個具有1025個結點的二叉樹的高h為

A)ll

B)10

C)Il至1025之間

D)IO至1024之間

答案:C

解析:

63.[單選題]派生類的對象對它的基類成員中()是可以訪問的。

A)公有繼承的公有成員;

B)公有繼承的私有成員;

C)公有繼承的保護成員;

D)私有繼承的公有成員

答案:C

解析:

64.[單選題]從n個數里面找最大的兩個數理論最少需要比較

A)21ogn

B)2Iogn-1

C)n+Iogn-2

D)2n-3

答案:C

解析:

65.[單選題]關于new運算符的下列描述中,()是錯誤的。

A)它可以用來動態(tài)創(chuàng)建對象和對象數組;

B)使用它創(chuàng)建的對象或對象數組可以使用運算符delete刪除;

C)使用它創(chuàng)建對象時要調用構造函數;

D)使用它創(chuàng)建對象數組時必須指定初始值;

答案:D

解析:

66.[單選題]下面程序執(zhí)行后的輸出結果是o#includeusingnamespacestd;ttdefineN

20voidfun(inta[],intn,intm){inti;for(i=m;i>=n;i-)a[i+l]=a[i];}intmain(){int

i;inta[N]={l,2,3,4,5,6,7,8,9,10};fun(a,1,5);for(i=0;i

A)10234

B)12344

C)12334

D)12234

答案:D

解析:

67.[單選題]有如下程序

Winclude<iostream>

Usingnamespacestd;

Voidmain()

Inty=3,x=3,z=l;

Cout<<(++x,y++)<<w"<<z+2<<endl;

}

運行該程序的輸出結果是o(題)

A)34

B)42

043

D)33

答案:D

解析:

68.[單選題]下述程序運行時輸入的數據為“3.6,2.4”,則輸出結果為()。

A)l.5

B)1.6

02.0

D)2.4

答案:B

解析:

69.[單選題]對待排序的元素序列進行劃分,將其分為左、右兩個子序列,再對兩個子序列進行同樣

的排序操作,直到子序列為空或只剩下一個元素為止。這樣的排序方法是

A)冒泡排序

B)折半插入排序

C)快速排序

D)希爾排序

答案:C

解析:

70.[單選題]在數據結構中,我們對算法分析的目的是

A)找出數據結構的合理性

B)研究算法中的輸入和輸出的關系

C)分析算法的效率以求改進

D)分析算法的易懂性和文檔性

答案:C

解析:

71.[單選題]以下程序的運行結果是()。

A)2

B)l

07

D)8

答案:D

解析:

72.[單選題]執(zhí)行語句boolx=5;inta=x==5;變量a的值為()。

A)0

B)l

05

D)false

答案:A

解析:x=5,x的值為真,x==5結果為假,所以a為0.

73.[單選題]考慮函數原型intfunl(floatx,chary="$",inta=9,charb="@"),下面的函數調用

中,屬于不合法調用的是()

A)funl(3.14)

B)funl(3.14,"#")

C)funl(3,14,

D)funl(3.14,"?")

答案:C

解析:在C++語言中,可以在聲明函數時為形參指定默認值。當調用有默認參數值的函數時,調用語

句中可以不給出對應的實參,這就相當于調用該函數時以默認值作為參數。

調用函數時,主調函數的實參與被調函數的形參按從左至右的順序進行匹配對應。

C選項中,實參的個數是3少于形參的個數4,故函數原型形參表中最前面的3個形參與3個實參相對應

,即把字符型實參@賦值給int型形參a,會產生編譯錯誤。選C。

同理,ABD是正確的。

74.[單選題]有關下面程序說法正確的是()(注:11代表空格)intmain(){chars[6]=

"abed";printf("?"%s?"?n",s);return0;}

A)"abed"

B)?"abcd?"

C)"abedlj"

D)編譯錯誤

答案:A

解析:

75.[單選題]在C++中,關于下列設置缺省參數值的描述中,()是正確的。

A)不允許設置缺省參數值;

B)在指定了缺省值的參數右邊,不能出現(xiàn)沒有指定缺省值的參數;

C)只能在函數的定義性聲明中指定參數的缺省值;

D)設置缺省參數值時,必須全部都設置;

答案:B

解析:

76.[單選題]函數VOidfoo(){staticintval;..}變量Val的內存地址位于()

A)未初始化數據段

B)已初始化數據段

C)堆

D)棧

答案:A

解析:1、棧區(qū)(StaCk)-由編譯器自動分配釋放,存放函數的參數值,局部變量的值等。2、堆區(qū)

(heap)-一般由程序員分配釋放,若程序員不釋放,程序結束時可能由。S回收。注意它與數據

結構中的堆是兩回事,分配方式倒是類似于鏈表。3、全局區(qū)(靜態(tài)區(qū))(static)-全局變量和靜

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

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

放在這里的。程序結束后由系統(tǒng)釋放。5、程序代碼區(qū)-存放函數體的二進制代碼。

77.[單選題]表示一個語句是宏定義語句的標識符是()。

A)include

B)ttinclude

C)define

D)ttdefine

答案:D

解析:

78.[單選題]設"char**s;",以下正確的表達式是

A)S=llComputer";

B)*s="computer";

C)**s="computer";

D)*s='c';

答案:B

解析:

79.[單選題]判斷字符型變量Ch是否為大寫英文字母,應使用表達式()(題)

A)ch>='A'Mch<='Z'

B)'A'<=ch<='Z'

C)ch<='Λ'I∣ch>='Z'

D)ch>='A'fech<='Z'

答案:A

解析:

80.[單選題]下列程序的運行結果是.0

Wincludeusingnamespacestd;Structperson{charnameLlO];intage;};intmain()(personroom[4]={{

"Zhang",19},{"Li",20},{"Wang",17},{"Zhao",18});Coutnameage;returnO;}

A)Wang:17

B)Wang:19

C)Li:20

D)Li:19

答案:B

解析:

81.[單選題]已知類A是類B的友元,類B是類C的友元,則()。

A)類A一定是類C的友元

B)類C一定是類A的友元

O類C的成員函數可以訪問類B的對象的任何成員

D)類A的成員函數可以訪問類B的對象的任何成員

答案:D

解析:

82.[單選題]下列語句中,錯誤的是()。(題)

A)constinttemp;

B)constintbuffer=256;

C)constdouble*point;

D)constdouble*rt=newdouble(5.5);

答案:A

解析:

83.[單選題]每個C++程序都必須有且僅有一個()。

A)預處理命令

B)主函數

C)函數

D)語句

答案:B

解析:

84.[單選題]關于new運算符的下列描述中,()是錯的。

A)它可以用來動態(tài)創(chuàng)建對象和對象數組;

B)使用它創(chuàng)建的對象或對象數組可以使用運算符delete刪除;

C)使用它創(chuàng)建對象時要調用構造函數;

D)使用它創(chuàng)建對象數組時必須指定初始值。

答案:D

解析:

85.[單選題]下列選項中,用于清除基數格式位設置以十六進制輸出的語句是()o

A)cout<<setf(ios::dec,ios::basefield);

B)cout<<setf(ios::hex,ios::basefield);

C)cout<<setf(ios::oct,ios::basefield);

D)cin>>setf(ios::hex,ios::basefield);

答案:B

解析:

86.[單選題]假定AA為一個類,a()為該類公有的函數成員,X為該類的一個對象,則訪問X對象中函

數成員a()的格式為()。

A)X.a

B)x.a()

C)χ->a

D)χ->a()

答案:B

解析:

87.[單選題]if語句的語法格式可描述為:格式l:if()或格式2:if()else關于上面的語法格式

,下列表

述中錯誤的是()。(題)

A)部分可以是一個if語句,例如if(if(a==0)…)???

B)部分可以是一個if語句,例如if(…)if(???)

C)如果在前加上邏輯非運算符!并交換和的位置,語句功能不變

D)部分可以是一個循環(huán)語句,例如if(…)while(…)…

答案:A

解析:

88.[單選題]設變量a和b的值滿足a〈b,判斷變量X的值是否位于閉區(qū)間[a,b]的表達式是()。

A)a<x<y

B)a<=x<=b

C)a〈=x&&x〈=b

D)a<x&&x<b

答案:C

解析:

89.[單選題]設類A將其它類對象作為成員,則建立A類對象時,下列描述正確的是()

A)A類構造函數先執(zhí)行

B)成員構造函數先執(zhí)行

C)兩者并行執(zhí)行

D)不能確定

答案:B

解析:

90.[單選題]關于友元,下列說法錯誤的是o

A)如果類A是類B的友元,那么類B不一定是類A的友元

B)類B是類A的派生類,一個函數若是A類的友元,它不一定是B類的友元

C)友元函數是成員函數,在其中能直接訪問私有成員

D)友元關系不能被繼承

答案:C

解析:

91.[單選題]下列關于運算符重載的敘述中,正確的是()

A)通過運算符重載,可以定義新的運算符

B)有的運算符只能作為成員函數重載

C)若重載運算符+,則相應的運算符函數名是+

D)重載雙目運算符時,必須聲明兩個形參

答案:B

解析:

92.[單選題]使用new創(chuàng)建的對象,對其生命周期描述正確的是O

A)由系統(tǒng)決定

B)由用戶控制

C)全局生命周期

D)永久存在

答案:B

解析:運算符new用于建立生存期可控的對象,new返回這個對象的指針。使用new建立的動態(tài)對象只

能用delete刪除,以便釋放所占空間,因此由new創(chuàng)建的對象生命周期由用戶控制。

93.[單選題]已知P是一個指向類SamPIe數據成員m的指針,S是類SamPIe的一個對象。如果要給m賦值

為5,哪個是正確的()。

A)s.p=5

B)s->p=5

C)s.*p=5

D)*s.p=5

答案:C

解析:

94.[單選題]()不是構造函數的特征

A)構造函數的函數名與類名相同

B)構造函數可以重載

C)構造函數可以設置缺省參數

D)構造函數必須指定類型說明

答案:D

解析:

95.[單選題]以下程序的運行結果是:

ttinclude<iostream>

usingnamespacestd;

classA{

public:

voidset(inti,intj)

{

x=i;

y=j:

}

intget_y()

(

returny;

}

private:

intx,y;

):

classbox{

public:

voidset(int1,intw,ints,intp)

(

Iength=I;

width=w;

label,set(s,p);

)

intget_area()

(

returnlength*width;

)

private:

intlength,width;

Alabel;

);

intmain(){

boxb;

b.set(4,6,1,20);

cout<<b.get_area()<<endl;

return0;

)

A)24

B)4

C)20

D)6

答案:A

解析:

96.[單選題]設函數int&index(inta,inti)返回數組a中下標為i的元素,如果整型數組int

array[]={l,2,3},在執(zhí)行index(array,1)+=3后,array中各元素值為()

A){4,2,3}

B){1,5,3)

0(1,2,6}

D){4,5,6}

答案:B

解析:數組的下標從O開始,index(array,1)+=3使用加法賦值運算符(+=),故也可以表示為

:index(array,l)=index(array,1)+3?

index(array,1)返回array[1]的值,即為2,然后array[1]=2+3=5,所以array中各元素值為

{l,5,3}t,選B。

97.[單選題]在intb□[3]={{l},{3,2},{4,5,6},{0}kb[2][2]的值是()。

A)0

B)2

05

D)6

答案:D

解析:

98.[單選題]有如下類聲明

:classA{intx;public:A(intn){x=n;}};classB:publicA{Ay;public:B(inta,intb);};在類體外定

義構造函數B,下列選項中正確的是。

A)B::B(int

A,intb):X(a),y(b){}

B)B::B(int

A,intb):A(a),y(b){}

C)B::B(int

A,intb):x(a),B(b){}

D)B::B(int

A,intb):A(a),B(b){}

答案:B

解析:

99.[單選題]已知:"inta=5;charc='a';"則輸出語句CoUt<<c+l<<a<<c;的顯示結果是()

A)65a

B)985a

C)98'5'a

D)65'a'

答案:B

解析:eout是一個標準輸出流對象,使用流插入運算符“<<”向輸出設備屏幕輸出信息。

使用CoUt進行輸出時,系統(tǒng)會自動判別輸出數據的類型,并按相應的類型輸出對應的數據。

字符型數據在內存中以ASCH碼的形式存放。故a對于的ASCil的代碼值為97,c+1為98,因此輸出結

果為985a。故選B。

100.[單選題]模板函數的真正代碼是在()時候產生。

A)源程序中聲明函數時

B)源程序中定義函數時

C)源程序中的調用函數時

D)運行執(zhí)行函數時

答案:C

解析:

101.[單選題]假設已徑定義類一個類StUdent,現(xiàn)在要定義類derived,它是從StUdent私有派生的

,定義類derived的正確寫法是:

A)classderived:studentprivate{...};

B)classderived:studentpublic{...};

C)classderived:privatestudent{...};

D)classderived:publicstudent{...};

答案:C

解析:

102.[單選題]下面是關于派生類聲明的開始部分,其中正確的是。

A)classvirtualB:publicA

B)virtualclassB:publicA

C)classB:publicAvirtual

D)classB:virtualpublicA

答案:D

解析:

103.[單選題]下列循環(huán)語句的循環(huán)次數是owhile(inti=0)i―;

A)0

B)l

02

D)3

答案:A

解析:

104.[單選題]內部靜態(tài)變量的作用域是()

A)定義該靜態(tài)變量的函數外部

B)定義該靜態(tài)變量的函數內部

C)定義該靜態(tài)變量的文件外部

D)定義該靜態(tài)變量的文件內部

答案:B

解析:

105.[單選題]for(intx=0,y=0;!x&&y〈=10;y++);語句執(zhí)行循環(huán)的次數是。

A)0

B)10

Oll

D)無限

答案:C

解析:

106.[單選題]當一個派生類私有繼承一個基類時,基類中的所有公有成員和保護成員成為派生類的(

)o

A)public成員

B)private成員

C)protected成員

D)友員

答案:B

解析:

107.[單選題]字符串‘'a+b=12?n?t”的長度為()。

A)12

B)10

08

D)6

答案:C

解析:

108.[單選題]關于內聯(lián)函數說法錯誤的是()。

A)不是任何一個函數都可定義成內聯(lián)函數。

B)內聯(lián)函數的函數體內不能含有復雜的結構控制語句。

C)遞歸函數可以被用來作為內聯(lián)函數。

D)內聯(lián)函數一般適合于只有1?5行語句的小函數。

答案:C

解析:

109.[單選題]執(zhí)行C++程序時出現(xiàn)的“溢出”錯誤屬于()錯誤。(題)

A)運行

B)編譯

C)連接

D)邏輯

答案:A

解析:

IlO.[單選題]在面向對象方法中,不屬于“對象”基本特點的是()。(題)

A)一致性

B)分類性

C)多態(tài)性

D)標識唯一性

答案:A

解析:

IlL[單選題]將兩個各有n個元素的有序表合并成一個有序表,其最少的比較次數為

A)n

B)2n-1

C)2n

D)n*n

答案:A

解析:

112.[單選題]已知int*p,a=5,b;,下列正確的程序段是o

A)p=&b;cin?p;

B)p=&b;cin>>?p;

C)p=&b;*p=a;

D)cin>>b;*p=b;

答案:C

解析:

113.[單選題]決定C++語言中函數的返回值類型的是。

A)return語句中的表達式類型

B)調用該函數時系統(tǒng)隨機產生的類型

C)調用該函數時的主調用函數類型

D)在定義該函數時所指定的數據類型

答案:D

解析:函數都需要由類型說明并在定義該函數時指定數據類型。故本題選D。

114.[單選題]以下敘述中正確的是()

A)即使不進行強制類型轉換,在進行指針賦值運算時,指針變量的基類型也可以不同

B)如果企圖通過一個空指針來訪問一個存儲單元,將會得到一個出錯信息

C)設變量P是一個指針變量,則語句p=0;是非法的,應該使用P=NULL;

D)指針變量之間不能用關系運算符進行比較

答案:B

解析:A選項描述不正確,指針變量的賦值只能賦予地址,決不能賦予任何其它數據,否則將引起

錯誤;C選項中,p=NULL;和p=0;是等價的;D選項中,指向同一數組的兩指針變量進行關

系運算可表示它們所值數組元素之間的關系。因此B選項正確。

115.[單選題]下列敘述中,錯誤的是()。

A)true是一個boo1常量

B)"x"是一個字符常量

C)IOO是一個int常量

D)3.14是一個double常量

答案:B

解析:字符常量用單引號

116.[單選題]從前有座山,山里有座廟,廟里有個老和尚,再給小和尚講故事,故事內容是:從前

有座山,山里有座廟,廟里有個老和尚,再給小和尚講故事,故事內容是:……描述的是()

A)窮舉

B)分治

C)遞歸

D)貪心

答案:C

解析:

117.[單選題]執(zhí)行語句for(inti=50;i>l;—i)cout

A)48

B)49

C)50

D)51

答案:B

解析:

118.[單選題]若有語句int*point,a=4;和Point=&a;下面均代表地址的一組選項

是()

?)?,point,*&a

B)&*a,&a,*Point

C)*&point,*Point,&a

D)&a,&*Point,point

答案:D

解析:

119.[單選題]對于線性表的描述正確的是O

A)一個有限序列,可以為空

B)一個有限序列,不可以為空

C)一個無限序列,可以為空

D)一個無限序列,不可以為空

答案:A

解析:

120.[單選題]下列對構造函數和析構函數的描述中,錯誤的是()。

A)析構函數可以重載

B)析構函數名與類名相同

C)構造函數中可以設置參數的缺省值

D)類中只有一個析構函數

答案:A

解析:

121.[單選題]排序算法的穩(wěn)定性是指()

A)經過排序之后,能使值相同的數據保持原順序中的相對位置不變

B)經過排序之后,能使值相同的數據保持原順序中的絕對位置不變

C)算法的排序性能與被排序元素的數量關系不大

D)算法的排序性能與被排序元素的數量關系密切

答案:A

解析:

122.[單選題]下列表達式中表示int變量X可以被3整除的表達式是()。

A)x∕3==0

B)x%3==0

C)x%3!=0

D)(x%3)

答案:B

解析:

123.[單選題]以下程序的輸出結果是()。

Longfun(intn)

{longs;

if(n==l∣!n==2)s=2;

elses=n-fun(r?-l);

returns;

}

Intmain()

(

cout<<fun(3)<<endl;

return0;

)

A)l

B)2

C)3

D)4

答案:A

解析:

124.[單選題]運算符重載函數不能是:

A)在類外定義的普通函數

B)類的成員函數

C)類的友元函數

D)虛函數

答案:D

解析:

125.[單選題]C++語言中定義運算符重載函數必須用的關鍵字是:

A)void

B)operator

C)function

D)complex

答案:B

解析:

126.[單選題]設有定義:inti=2,j=3;則表達式i/j的結果為()。

A)0

B)0.7

OO.6667

D)0.666667

答案:A

解析:兩整數相除結果為整數商

127.[單選題]"以下代碼片段中程序有錯誤的行號是()。

voidmain()

(

intx,*p,**pp;

1x=10;

2p=&x;

3pp=p;

4printf(""%d?n"",**pp);

)

A)l

B)2

C)3

D)4

答案:C

解析:

128.[單選題]下列哪種默認參數的聲明是不正確的()

A)intmax(inta,intb,intc,intd=0);

B)intmax(inta,intb,intc=0,intd=0);

C)intmax(inta=0,intb,intc=0,intd=0);

D)intmax(inta,intb=0,intc=0,intd=0);

答案:C

解析:調用函數時,主調函數的實參與被調函數的形參按從左至右的順序進行匹配對應。總之,定義

函數時,只能為函數最后面的連續(xù)若干個參數設置默認值,且在調用處也只能缺省后面的連續(xù)若干

個實參。

故只有C不符合在最后面連續(xù)設置默認值。

129.[單選題]字符C的ASCn碼1、為IOoOOll,貝(]G的ASCIl碼為()。

A)1000100

B)1001001

OIOOOIII

D)1001010

答案:c

解析:

130.[單選題]若inti,j;,則for(i=j=0;i〈10&&j〈8;i++,j+=3)控制的循環(huán)體執(zhí)行的次數是()

A)9

B)8

03

D)2

答案:C

解析:

131.[單選題]IO流中iostream繼承于()類

Λ)Ostream

B)iftream

Oofstream

D)以上都是

答案:A

解析:

132.[單選題]有以下程序:

^include<iostream>

Usingnamespacestd;

Voidmain()

Chara=1?',b;

Cout<<++a;

Cout<<(b=a++)<<endl;

程序運行后的輸出結果是o(題)

A)BB

B)BC

OAC

D)AB

答案:A

解析:

133.[單選題]下列各運算符中,()優(yōu)先級最高。

A)+(雙目)

B)*(單目)

CX=

D)*=

答案:B

解析:

134.[單選題]設一維數組中有n個數組元素,則讀取第i個數組元素的平均時間復雜度為

A)O(n)

B)0(nlog2n)

OO(I)

D)0(n^2)

答案:C

解析:

135.[單選題]關于break語句的描述不正確的是()。(題)

A)break語句可用在if語句中,它可使執(zhí)行的流程跳出當前的if語句。

B)break語句可用在循環(huán)體中,它將是執(zhí)行的流程跳出本層循環(huán)。

C)break語句可用在SWitCh語句中,它使執(zhí)行的流程跳出當前SWitCh語句。

D)break語句在一層循環(huán)體中可出現(xiàn)多次。

答案:A

解析:

136.[單選題]fl(int)是類A的公有成員函數,p是指向成員函數fl()的指針,采用()是正

確的。

A)p=fl

B)P=A::fl

C)p=Λ::fl()

D)p=fl()

答案:C

解析:

137.[單選題]給定的一個長度為N的字符串str,查找長度為P(P

A)不存在比最壞時間復雜度O(NP)好的算法

B)不存在比最壞時間復雜度0(N'2)好的算法

C)不存在比最壞時間復雜度0(P-2)好的算法

D)存在最壞時間復雜度為O(N+P)的算法

答案:D

解析:

138.[單選題]以下程序的輸出結果為()。

structst

(

intx;int*y;}*p;

intd[4]={10,20,30,40);

structsta[4]={50Λd[0],60,&d[0],70,&d[lL80,&d[l]

);

main()

(

P=a;

printf(""%d?n"",++(p->x));

)

A)10

B)11

C)51

D)60

答案:C

解析:

139.[單選題]給定下列程序,那么執(zhí)行Printf(映d?n",foo(20,13));的輸出結果是。int

fOO(intX,inty){if(x

A)3

B)9

C)27

D)81

答案:D

解析:

140.[單選題]對使用關鍵字new所開辟的動態(tài)存儲空間,釋放時必須使用()

A)free

B)create

C)delete

D)realse

答案:c

解析:

141.[單選題]類B是類A的公有派生類,類A和類B中都定義了虛函數func(),p是一個指向類A對象的指

針,則p->A::func()將()?

A)調用類B中函數func()

B)即調用類A中函數,也調用類B中的函數

C)調用類A中函數func()

D)根據P所指的對象類型而確定調用類A中或類B中的函數func()

答案:C

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

142.[單選題]在參數傳遞過程中,對形參和實參的要求是()

A)函數定義時,形參一直占用存儲空間

B)實參可以是常量、變量或表達式

C)形參可以是常量、變量或表達式

D)形參和實參類型和個數都可以不同

答案:B

解析:

143.[單選題]執(zhí)行如下語句序列,輸出結果不可能出現(xiàn)的情況是().intx;cin>>x;if(x>250)

cout<<'A';if(x<250)cout<<'B';elsecout<<'A';

A)A

B)B

C)ΛB

D)AA

答案:C

解析:

144.[單選題]()不是構造函數的特征。

A)構造函數的函數名與類名相同;

B)構造函數可以重載;

C)構造函數可以設置缺省參數;

D)構造函數必須指定類型說明。沒有類型

答案:D

解析:

145.[單選題]有關運算符重載正確的描述是()

A)C++語言允許在重載運算符時改變運算符的操作個數

B)C++語言允許在重載運算符時改變運算符的優(yōu)先級

OC++語言允許在重載運算符時改變運算符的結合性

D)C++語言允許在重載運算符時改變運算符原來的功能

答案:D

解析:

146.[單選題]數據結構中,線性數據結構是

A)研究數據元素一對多的關系

B)比樹結構更復雜

C)比圖結構更復雜

D)研究數據元素一對一的關系

答案:D

解析:

147.[單選題]向具有n個結點的二叉搜索樹中插入一個元素時,其時間復雜度大致為

A)O⑴

B)0(log2n)

OO(n)

D)0(nlog2n)

答案:B

解析:

148.[單選題]執(zhí)行下列代碼,程序的輸出結果是(用下劃線表示空格)。int

a=29,b=100;cout

A)29_100

B)_29_100

C)29100

D)_29100

答案:D

解析:

149.[單選題]下列不是異常處理中需要用到的標識符是()。

A)try

B)catch

C)throw

D)go

答案:D

解析:

150.[單選題]設二叉樹的深度為h,且只有度為1和0的結點,則此二叉樹的結點總數為

A)2h

B)2h-1

Oh

D)h+1

答案:C

解析:

151.[單選題]以下代碼中的兩個SiZeOf用法有問題嗎?voidUpperCase(charstrL])〃將str

中的小寫字母轉換成大寫字母

(

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

if("a'<=strLi]&&strEi]<='z')

str-=('a'-'A');

)

charstr[]="aBcDe";

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

UpperCase(str);

cout<<str<<endl;

A)函數內的有問題

B)函數外的有問題

C)函數內,外的都有問題

D)用法正確

答案:C

解析:外層是字符串長度不正確,內層是數組退化為指針。

152.[單選題]已知有結構體類型及變量定義

:Structstudent{charnum[20];intage;}studl,*p;p=&studl;下列對結構體變量StUdl的成員age的

非法引用是O

A)studl.age

B)student,age

C)p->age

D)(*p).age

答案:B

解析:

153.[單選題]對函數intmax(inta,intb=0,intc=0,intd=0,inte=0);下列調用方式正確的

是()

A)intm=max(10,11,12,13,14);

B)intm=max(10,,12,13,14);

C)intm=max(10,11,,13,14);

D)intm=max(10,11,12,,14);

答案:A

解析:調用函數時,主調函數的實參與被調函數的形參按從左至右的順序進行匹配對應。

總之,定義函數時,只能為函數最后面的連續(xù)若干個參數設置默認值,且在調用處也只能缺省后面

的連續(xù)若干個實參。

BCD選項中的默認值都不是放在最后的連續(xù)參數,故都錯誤。

154.[單選題]已知函數test定義為:voidtest(){}則函數定義中VOid的含義是

A)執(zhí)行函數test后,函數沒有返回值

B)執(zhí)行函數test后,函數不再返回

C)執(zhí)行函數test后,函數返回任意類型值

D)以上三個答案都是錯誤的

答案:A

解析:

155.[單選題]適宜采用inline定義函數情況是()

A)函數體含有循環(huán)語句

B)函數體含有SWitCh語句

C)函數代碼多,不常調用

D)函數代碼少,頻繁調用

答案:D

解析:定義內聯(lián)函數時只需在函數頭返回值類型的前面加上關鍵字inline。

內聯(lián)函數的適用情況:只有幾條語句,且頻繁調用的小函數。故本題選D。

156.[單選題]執(zhí)+264:291行下列代碼,程序的輸出結果是:()CoUt

A)ff

B)hex:ff

C)Hex:ff

D)f

答案:C

解析:

157.[單選題]下列程序段的輸出是ounsignedshorti=65538;cout

A)65538

B)有語法錯誤,無法編譯通過

Oo

D)2

答案:D

解析:

158.[單選題]下面的類型聲明中正確的是:

A)int&a[4];

B)int&*p;

C)int&&q;

D)inti,*p=fei;

答案:D

解析:

159.[單選題]已知有聲明inta[10];,若用其中某個數組元素作函數實參,則下列說法正確的是

A)形參應為符號常量

B)形參應為數組名

C)形參應為表達式

D)形參應為簡單變量

答案:D

解析:

160.[單選題]以下正確的說法是()

A)結構體類型變量不能初始化。

B)結構體類型變量為外部變量或靜態(tài)變量時能初始化。

C)結構體數組不能初始化

D)可以用賦值語句將一組常量賦給一個結構體變量

答案:B

解析:

161.[單選題]設有函數TSum(TX,Ty){returnx+y;},其中T為模板類型,則下列語句中

對該函數錯誤的使用是()

A)Sum(1,2);

B)Sum(3.0,2.2);

C)Sum('A','C');

D)Sum("A","C");

答案:D

解析:

162.[單選題]以下關于友元的說法錯誤的是

溫馨提示

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

評論

0/150

提交評論