c++復習試題資料期末復習試題必須具備_第1頁
c++復習試題資料期末復習試題必須具備_第2頁
c++復習試題資料期末復習試題必須具備_第3頁
c++復習試題資料期末復習試題必須具備_第4頁
c++復習試題資料期末復習試題必須具備_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

...wd......wd...word格式.整理版...wd...拷貝構造函數的格式為:類名〔const類名&對象名〕;//拷貝構造函數的原型,參數是常量對象的引用。由于拷貝構造函數的目的是成員復制,不應修改原對象,所以建議使用const關鍵字。一.單項選擇〔共40題,共80分〕

1.假定AB為一個類,則執行“ABx;〞語句時將自動調用該類的()。〔2分〕

A.帶參構造函數B.無參構造函數C.拷貝構造函數

D.賦值重載函數★標準答案:B

2.假設類X是類Y的友元類,則以下哪種訪問關系是正確的〔2分〕A.類X的成員不能訪問類Y的私有成員B.類X的成員可以訪問類Y的私有成員

C.類Y的成員可以訪問類X的私有成員D.只有類Y的公共成員才能訪問類X的私有成員★標準答案:B

3.假定AA是一個類,abc是該類的一個成員函數,則參數表中隱含的第一個參數的類型為()。〔2分〕

A.int

B.char

C.AA

D.AA*

★標準答案:D

4.如果類A被說明成類B的友元,則()〔2分〕

A.類A的成員即類B的成員

B.類B的成員即類A的成員

C.類A的成員函數不得訪問類B的成員

D.類B不一定是類A的友元

★標準答案:C

5.以下關于類和對象的表達中,錯誤的選項是()〔2分〕

A.一個類只能有一個對象B.對象是類的具體實例

C.類是對某一類對象的抽象

D.類和對象的關系是一種數據類型與變量的關系

★標準答案:A

6.對于任一個類,用戶所能定義的構造函數的個數至多為()。〔2分〕

A.0

B.1

C.2

D.任意個

★標準答案:D

7.類的構造函數可以帶有()個參數。〔2分〕

A.0

B.1

C.2

D.任意★標準答案:D

8.假定AB為一個類,則執行“ABx(a,5);〞語句時將自動調用該類的()。〔2分〕

A.帶參構造函數B.無參構造函數C.拷貝構造函數

D.賦值重載函數★標準答案:A

9.設px是指向一個類對象的指針變量,則執行“deletepx;〞語句時,將自動調用該類的()。〔2分〕

A.無參構造函數

B.帶參構造函數C.析構函數D.拷貝構造函數

★標準答案:C

10.在一個類的定義中,包含有()成員的定義。〔2分〕

A.數據B.函數C.數據和函數

D.變量

★標準答案:C

11.在C++中,當一個對象被創立后,它的每一個成員函數都含有一個系統自動生成的隱含的指針,稱之為()指針。〔2分〕

A.對象

B.派生

C.基類D.this★標準答案:D

12.假定AA為一個類,a()為該類公有的函數成員,x為該類的一個對象,則訪問x對象中函數成員a()的格式為()。〔2分〕

A.x.a

B.x.a()

C.x->a

D.x->a()

★標準答案:B

13.下面有關重載函數的說法中正確的選項是()。〔2分〕

A.重載函數必須具有不同的返回值類型;

B.重載函數形參個數必須不同;

C.重載函數必須有不同的形參列表;

D.重載函數名可以不同;

★標準答案:C

14.當類中一個字符指針成員指向具有n個字節的存儲空間時,它所能存儲字符串的最大長度為()。〔2分〕

A.n

B.n+1

C.n-1

D.n-2

★標準答案:C

15.一個類的析構函數通常被定義為該類的()成員。〔2分〕

A.私有

B.保護

C.公用

D.友元

★標準答案:C

16.類的析構函數是一個對象被()時自動調用的。〔2分〕

A.建設B.撤消C.賦值

D.引用

★標準答案:B

17.假定AA為一個類,inta()為該類的一個成員函數,假設該成員函數在類定義體外定義,則函數頭為()。〔2分〕A.intAA::a()

B.intAA:a()

C.AA::a()

D.AA::inta()

★標準答案:A

18.在一個類的定義中,包含有()成員的定義。〔2分〕

A.數據

B.函數C.數據和函數

D.數據或函數

★標準答案:C

19.對于公有繼承,基類中的私有成員在派生類中將()。〔2分〕

A.能夠直接使用成員名訪問

B.能夠通過成員運算符訪問

C.仍然是基類的私有成員

D.變為派生類的私有成員

★標準答案:C

20.下面描述中,表達錯誤的選項是()。〔2分〕

A.公有繼承時基類中的public成員在派生類中仍是public的

B.私有繼承時基類中的private成員在派生類中仍是private的

C.私有繼承時基類中的protected成員在派生類中仍是protected的

D.私有繼承時基類中的public成員在派生類中是private的★標準答案:C

21.在C++中,對于基類的protected成員,當以protected方式派生一個新類時。該成員將成為派生類的()成員。〔2分〕

A.private

B.protected

C.public

D.非法★標準答案:B

22.在c++中,一個虛函數是通過關鍵字()放在其基類說明的前面來加以說明的.〔2分〕

A.virtual

B.protected

C.operator

D.this

★標準答案:A

23.設置虛基類的目的是()。〔2分〕

A.簡化程序;B.消除二義性;C.提高運行效率;D.減少目標代碼;

★標準答案:B

24.但凡能用以派生新類,卻不能創立自己的對象的類稱為()。〔2分〕

A.虛基類B.抽象類C.容器類D.派生類★標準答案:B

25.抽象類是〔〕:〔2分〕

A.不可以定義對象B.可以定義對象C.不可以派生新類D.不可以輸出

★標準答案:A

26.假定有定義“intb[10];int*pb;〞,則不正確的賦值語句為()。〔2分〕

A.pb=b;

B.pb=&b[0];

C.*pb=newint;D.pb=b[5];

★標準答案:D

27.假定一條定義語句為“inta[10],x,*pa=a;〞,假設要把數組a中下標為3的元素值賦給x,則不正確的語句為()。〔2分〕

A.x=pa[3];

B.x=*(a+3);

C.x=a[3];

D.x=*pa+3;

★標準答案:D

28.以下給字符數組賦初值時,正確的選項是()。〔2分〕

A.chars1[]=〞abcdef〞;

B.chars2[4]=〞abcd〞;

C.chars3[2][3]={“abc〞,〞xyz〞};

D.chars4[4][]={‘a’,’x’,’s’,’t’};

★標準答案:A

29.執行語句“chara[10]={"abcd"},*p;p=a;〞后,*(p+4)的值是〔〕〔2分〕

A.“abcd〞

B.'d'

C.'\0'D.不能確定★標準答案:C

30.設有如下函數定義

intf(char*s){

char*p=s;

while(*p!=’\0’)p++;

return(p-s);}

在主函數中用cout<<f(“good〞)調用上述函數,則輸出結果為〔〕。

〔2分〕

A.3

B.4

C.5

D.6

★標準答案:B

31.下面語句()是非法的。〔2分〕

A.charx='C';

B.charx='#';

C.charx='';

D.charx='$';

★標準答案:C

32.一個C++程序至少應包含()個函數。〔2分〕

A.0

B.1

C.2

D.3

★標準答案:B

33.設a=12,n=5,則表達

式a%=(n%=2)運算后,a的值為()。〔2分〕

A.0

B.1

C.6

D.12★標準答案:D

34.以下關于單目運算符++、--的表達中正確的選項是〔2分〕

A.它們的運算對象可以是任何變量和常量

B.它們的運算對象可以是char型變量和int型變量,但不能是float型變量

C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量

D.它們的運算對象可以是char型變量、int型變量和float型變量

★標準答案:D

35.假定變量x定義為“intx=5;〞,要使rx成為x的引用〔別名〕,rx應定義為〔〕。〔2分〕

A.intrx=x;

B.intrx=&x;

C.int*rx=&x;

D.int&rx=x;

★標準答案:D

36.以下描述中正確的選項是()。〔2分〕

A.for循環只能用于循環次數已經確定的情況

B.for循環是先執行循環體語句,后判斷表達式

C.在for循環中,不能用break語句跳出循環體D.for循環的循環體語句中,可以包含多條語句,但必須用花括號括起來★標準答案:D

37.循環語句“for(inti=0;i<n;i++)cout<<i*i<<’’;〞中循環體執行的次數為()。〔2分〕

A.1

B.n-1

C.n

D.n+1

★標準答案:C

38.C++語言的跳轉語句中,對于break和continue說法正確的選項是()。〔2分〕

A.break語句只用于循環體中B.continue語句只用于循環體中

C.break是無條件跳轉語句,continue不是D.break和continue的跳轉范圍不夠明確,容易產生問題

★標準答案:B

39.在下面循環語句中循環體執行的次數為()。

inti=0,s=0;while(s<20){i++;s+=i;}〔2分〕

A.4

B.5

C.6

D.7

★標準答案:C

40.do語句能夠改寫為()語句。〔2分〕

A.復合

B.if

C.switch

D.while

★標準答案:D

1.采用重載函數的目的是()。〔2分〕

A.實現共享B.減少空間

C.提高速度D.使用方便,提高可讀性

★標準答案:D

2.假定AB為一個類,則執行“ABx(a,5);〞語句時將自動調用該類的()。〔2分〕

A.帶參構造函數

B.無參構造函數

C.拷貝構造函數

D.賦值重載函數

★標準答案:A

3.假定AB為一個類,則執行“AB*s=newAB(a,5);〞語句時得到的一個動態對象為()。〔2分〕

A.s

B.s->a

C.s.a

D.*s

★標準答案:D

4.當將一個類A或函數f()說明為另一個類B的友元后,類A或函數f()能夠直接訪問類B的()。〔2分〕

A.只能是公有成員

B.只能是保護成員

C.只能是除私有成員之外的任何成員

D.任何權限的成員

★標準答案:D5.在關鍵字private后面定義的成員為類的()成員。〔2分〕

A.私有

B.公用

C.保護

D.任何

★標準答案:A6.一個C++程序文件的擴展名為()。〔2分〕

A..h

B..c

C..cpp

D..cp

★標準答案:C

7.對于任一個類,用戶所能定義的構造函數的個數至多為()。〔2分〕

A.0

B.1

C.2

D.任意個★標準答案:D

8.在C++程序中使用的cout標識符是系統類庫中定義的()類中的一個對象。〔2分〕

A.istream

B.ostream

C.iostream

D.fstream

★標準答案:B

9.類的析構函數可以帶有()個參數。〔2分〕

A.0

B.1

C.2

D.任意

★標準答案:A

10.如果類A被說明成類B的友元,則()〔2分〕

A.類A的成員即類B的成員B.類B的成員即類A的成員C.類A的成員函數不得訪問類B的成員D.類B不一定是類A的友元

★標準答案:C

11.類的析構函數是一個對象被()時自動調用的。〔2分〕

A.建設B.撤消C.賦值

D.引用★標準答案:B

12.引入友元的主要目的是為了()。〔2分〕

A.增強數據安全性B.提高程序的可靠性C.提高程序的效率和靈活性

D.保證類的封裝性★標準答案:C

13.關于封裝,以下說法中不正確的選項是()。〔2分〕

A.通過封裝,對象的全部屬性和操作結合在一起,形成一個整體

B.通過封裝,一個對象的實現細節被盡可能地隱藏起來〔不可見〕

C.通過封裝,每個對象都成為相對獨立的實體

D.通過封裝,對象的屬性都是不可見的

★標準答案:D

14.被非靜態成員函數訪問的類的數據成員()。〔2分〕

A.可以是非靜態數據成員或靜態數據成員B.不可能是類的靜態數據成員

C.只能是類的非靜態數據成員D.只能是類的靜態數據成員★標準答案:A

15.在C++程序中使用的cin標識符是系統類庫中定義的()類中的一個對象。〔2分〕

A.istream

B.ostream

C.iostream

D.fstream

★標準答案:A

16.對于任意一個類,析構函數的個數最多為()〔2分〕

A.0

B.1C.2

D.3

★標準答案:B

17.假定AA為一個類,a()為該類公有的函數成員,x為該類的一個對象,則訪問x對象中函數成員a()的格式為()。〔2分〕

A.x.a

B.x.a()

C.x->a

D.x->a()

★標準答案:B

18.在C++中,當一個對象被創立后,它的每一個成員函數都含有一個系統自動生成的隱含的指針,稱之為()指針。〔2分〕

A.對象

B.派生

C.基類D.this

★標準答案:D

19.如果類B在類A的根基上構造,那么,就稱〔〕。〔2分〕

A.類A為基類或父類,類B為超類或子類B.類A為基類、父類或超類,類B為派生類或子類

C.類A為派生類,類B為基類D.類A為派生類或子類,類B為基類、父類或超類

★標準答案:B

20.C++的基類指針可以訪問派生類對象,但不能訪問派生類對象的()成員。〔2分〕

A.private

B.protected

C.public

D.新增★標準答案:D

21.派生類的成員函數可以直接訪問基類的〔〕成員。〔2分〕

A.所有B.公有和保護C.保護和私有D.私有★標準答案:B

22.派生類的對象對其基類中()可直接訪問。〔2分〕

A.公有繼承的公有成員B.公有繼承的私有成員

C.公有繼承的保護成員D.私有繼承的公有成員★標準答案:A

23.當派生類中有和基類一樣名字的成員時,一般來說,()。〔2分〕

A.將產生二義性B.派生類的同名成員將覆蓋基類的成員

C.是不能允許的

D.基類的同名成員將覆蓋派生類的成員

★標準答案:B

24.c++語言的運算符可以重載為成員函數和〔〕:〔2分〕

A.算術函數

B.輸出函數C.友元函數D.邏輯函數

★標準答案:C

25.不能重載的運算符是:〔〕〔2分〕

A./

B.*

C.::

D.+=

★標準答案:C

26.要想在程序中使用strcpy()函數,須把()包含到程序中。〔2分〕

A.iostream.h

B.stdio.h

C.string.h

D.iomanip.h

★標準答案:C

27.以下函數的返回結果是〔〕。

intfunction(char*x){

char*p=x;

while(*p++);

return(p-x-1);

}〔2分〕

A.求字符串的長度

B.將字符串x連接到字符串p后面

C.將字符串x復制到字符串p中

D.將字符串x反向存放

★標準答案:A8.假定p是具有double類型的指針變量,則表達式++p使p的值〔以字節為單位〕增加()。〔2分〕

A.1

B.4

C.sizeof(double)

D.sizeof(p)

★標準答案:C

29.假定指針變量p定義為“int*p=newint[30];〞,要釋放p所指向的動態內存,應使用語句()。〔2分〕

A.deletep;

B.delete*p;

C.delete&p;

D.delete[]p;

★標準答案:D

30.執行語句“chara[10]={"abcd"},*p;p=a;〞后,*(p+4)的值是〔〕〔2分〕

A.“abcd〞

B.'d'

C.'\0'

D.不能確定★標準答案:C

31.一個C++程序至少應包含()個函數。〔2分〕

A.0

B.1

C.2

D.3

★標準答案:B

32.以下錯誤的描述是〔〕。〔2分〕

A.被調用函數中可以不用return語句B.被調用函數中可以用多個return語句

C.被調用函數中,如果有返回值,就一定要有return語句

D.被調用函數中,一個return語句可返回多個值給調用函數★標準答案:D3.設a=12,n=5,則表達式a%=(n%=2)運算后,a的值為()。〔2分〕

A.0

B.1

C.6

D.12★標準答案:D

34.以下標識符中()是正確。〔2分〕A._suml23__

B._suml23$

C.*pt_123

D.Sum-Count

★標準答案:A

35.函數調用不可以〔〕。〔2分〕

A.出現在一個表達式中

B.出現在執行語句中

C.作為一個函數的實參

D.作為一個函數的形參

★標準答案:D

36.在下面循環語句中循環體執行的次數為()。

for(inti=0;i<n;i++)

if(i>n/2)break;〔2分〕

A.n/2

B.n/2+1

C.n/2-1

D.n-1

★標準答案:B

37.C++語言的跳轉語句中,對于break和continue說法正確的選項是()。〔2分〕

A.break語句只用于循環體中B.continue語句只用于循環體中

C.break是無條件跳轉語句,continue不是

D.break和continue的跳轉范圍不夠明確,容易產生問題

★標準答案:B

38.C++中用于構造化程序設計的三種根本構造是〔2分〕

A.順序構造、選擇構造、循環構造

B.if、switch、break

C.for、while、do-while

D.if、for、continue

★標準答案:A

39.有以下程序

voidmain()

inti;

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

switch(i)

case1:cout<<i;

case2:cout<<i;

default:cout<<i;

}執行后輸出的結果是

〔2分〕

A.011122

B.012

C.012020

D.120

★標準答案:A

40.switch語句能夠改寫為()語句。〔2分〕

A.for

B.if

C.do

D.while

★標準答案:B

一.單項選擇〔共40題,共80分〕

1.類中定義的成員默認為()訪問屬性。〔2分〕

A.public

B.private

C.protected

D.friend

★標準答案:B

2.在類作用域中能夠通過直接使用該類的()成員名進展訪問。〔2分〕

A.私有B.公用C.保護D.任何

★標準答案:D

3.類的構造函數是在定義該類的一個()時被自動調用執行的。〔2分〕

A.成員函數

B.數據成員C.對象

D.友元函數

★標準答案:C

4.對于任意一個類,析構函數的個數最多為()〔2分〕

A.0

B.1

C.2

D.3

★標準答案:B

5.在一個類的定義中,包含有()成員的定義。〔2分〕

A.數據B.函數C.數據和函數

D.數據或函數★標準答案:C

6.對于一個類的析構函數,其函數名與類名()。〔2分〕

A.完全一樣

B.完全不同C.只相差一個字符

D.無關系

★標準答案:C

7.下面有關重載函數的說法中正確的選項是()。〔2分〕

A.重載函數必須具有不同的返回值類型;

B.重載函數形參個數必須不同;

C.重載函數必須有不同的形參列表;

D.重載函數名可以不同;

★標準答案:C

8.在關鍵字private后面定義的成員為類的()成員。〔2分〕

A.私有B.公用

C.保護

D.任何

★標準答案:A

9.類的構造函數可以帶有()個參數。〔2分〕

A.0

B.1

C.2

D.任意

★標準答案:D

10.假定AA為一個類,a為該類公有的數據成員,假設要在該類的一個成員函數中訪問它,則書寫格式為()。〔2分〕

A.a

B.AA::a

C.a()

D.AA::a()

★標準答案:A

11.假定AB為一個類,則執行ABx;語句時將自動調用該類的()。〔2分〕

A.有參構造函數B.無參構造函數

C.拷貝構造函數

D.賦值構造函數

★標準答案:B

12.一個類的友元不是該類的成員,與該類的關系密切,所以它()。〔2分〕

A.有this指針,有默認操作的對象

B.沒有this指針,可以有默認操作的對象

C.有this指針,不能執行默認操作D.沒有this指針,也就沒有默認操作的對象

★標準答案:D

13.如果類A被說明成類B的友元,則()〔2分〕

A.類A的成員即類B的成員B.類B的成員即類A的成員

C.類A的成員函數不得訪問類B的成員

D.類B不一定是類A的友元

★標準答案:C

14.引入友元的主要目的是為了()。〔2分〕

A.增強數據安全性

B.提高程序的可靠性

C.提高程序的效率和靈活性

D.保證類的封裝性

★標準答案:C

15.被非靜態成員函數訪問的類的數據成員()。〔2分〕

A.可以是非靜態數據成員或靜態數據成員

B.不可能是類的靜態數據成員

C.只能是類的非靜態數據成員

D.只能是類的靜態數據成員

★標準答案:A

16.靜態成員函數對類的數據成員訪問()。〔2分〕

A.是不允許的B.只允許是靜態數據成員

C.只允許是非靜態數據成員

D.可允許是靜態數據成員或非靜態數據成員

★標準答案:B

17.設px是指向一個類對象的指針變量,則執行“deletepx;〞語句時,將自動調用該類的()。〔2分〕

A.無參構造函數

B.帶參構造函數C.析構函數

D.拷貝構造函數

★標準答案:C

18.假定AA是一個類,abc是該類的一個成員函數,則參數表中隱含的第一個參數的類型為()。〔2分〕

A.int

B.char

C.AA

D.AA*

★標準答案:D

19.C++的繼承性允許派生類繼承基類的〔〕。〔2分〕

A.局部特性,并允許增加新的特性或重定義基類的特性

B.局部特性,但不允許增加新的特性或重定義基類的特性

C.所有特性,并允許增加新的特性或重定義基類的特性

D.所有特性,但不允許增加新的特性或重定義基類的特性

★標準答案:A

20.派生類的對象對它的基類成員中()是可以訪問的。〔2分〕

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

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

C.公有繼承的保護成員;D.私有繼承的公有成員;

★標準答案:A21.如果類B在類A的根基上構造,那么,就稱〔〕。〔2分〕

A.類A為基類或父類,類B為超類或子類

B.類A為基類、父類或超類,類B為派生類或子類

C.類A為派生類,類B為基類

D.類A為派生類或子類,類B為基類、父類或超類

★標準答案:B

22.派生類的成員函數可以直接訪問基類的〔〕成員。〔2分〕

A.所有

B.公有和保護

C.保護和私有

D.私有

★標準答案:B

23.C++的基類指針可以訪問派生類對象,但不能訪問派生類對象的()成員。〔2分〕

A.private

B.protected

C.public

D.新增

★標準答案:A

24.靜態聯編又稱為:〔〕〔2分〕

A.靜多態

B.靜態約定

C.靜態約束D.靜態束定

★標準答案:D

25.但凡能用以派生新類,卻不能創立自己的對象的類稱為()。〔2分〕

A.虛基類B.抽象類

C.容器類D.派生類

★標準答案:B

26.假定p是具有double類型的指針變量,則表達式++p使p的值〔以字節為單位〕增加()。〔2分〕

A.1

B.4

C.sizeof(double)

D.sizeof(p)

★標準答案:C

27.在C++中,當為一個變量定義引用時,引用類型()。〔2分〕

A.必須與變量類型一致B.不一定與變量類型一致

C.也即變量的指針D.也即變量的地址

★標準答案:A

28.假定有定義“intb[10];int*pb;〞,則不正確的賦值語句為()。〔2分〕

A.pb=b;

B.pb=&b[0];

C.*pb=newint;

D.pb=b[5];

★標準答案:D

29.在下面的字符數組定義中,()有語法錯誤。〔2分〕

A.chara[20]="abcdefg";

B.chara[]="x+y=55.";

C.chara[15];

D.chara[10]='5';

★標準答案:D

30.有二維字符數組chars[4][6]={“zhang〞,〞gao〞,〞tang〞,〞wang〞},執行程序cout<<s[2],屏幕上顯示〔〕〔2分〕

A.gao

B.tang

C.g

D.t

★標準答案:B

31.以下正確的函數聲明語句是()。〔2分〕

A.doublefun(intx,inty)

B.doublefun(intx;inty)

C.doublefun(int,int);

D.doublefun(intx,y);

★標準答案:C

32.函數調用不可以〔〕。〔2分〕

A.出現在一個表達式中

B.出現在執行語句中

C.作為一個函數的實參

D.作為一個函數的形參

★標準答案:D

33.在一個C++程序中〔2分〕

A.main函數必須出現在所有函數之前B.main函數可以在任何地方出現

C.main函數必須出現在所有函數之后

D.main函數必須出現在固定位置

★標準答案:B

34.函數聲明語句正確的選項是〔〕。〔2分〕

A.intFunction(voida);

B.voidFunction(int);

C.intFunction(a);

D.voidint(doublea);

★標準答案:B

35.C++中函數返回值的類型是由〔〕決定的。〔2分〕

A.return語句中表達式的類型B.該函數定義時的類型

C.調用函數時的調用語句

D.系統根據結果★標準答案:B

36.循環語句“for(inti=0;i<n;i++)cout<<i*i<<’’;〞中循環體執行的次數為()。〔2分〕

A.1

B.n-1

C.n

D.n+1

★標準答案:C

37.有以下程序

voidmain()

inti;

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

switch(i)

case1:cout<<i;

case2:cout<<i;

default:cout<<i;

}執行后輸出的結果是

〔2分〕

A.011122

B.012

C.012020

D.120

★標準答案:A

38.循環體至少被執行一次的語句為()。〔2分〕

A.for循環B.while循環C.do循環

D.任一種循環

★標準答案:C

39.在下面循環語句中內層循環體S語句的執行總次數為()。

for(inti=0;i<n;i++)

for(intj=i;j<n;j++)S;〔2分〕

A.n2

B.(n+1)/2

C.n(n-1)/2

D.n(n+1)/2

★標準答案:D

40.在下面循環語句中循環體執行的次數為()。

inti=0,s=0;while(s<20){i++;s+=i;}〔2分〕

A.4

B.5

C.6

D.7

★標準答案:C

1.關于封裝,以下說法中不正確的選項是()。〔2分〕

A.通過封裝,對象的全部屬性和操作結合在一起,形成一個

整體

B.通過封裝,一個對象的實現細節被盡可能地隱藏起來〔不

可見〕

C.通過封裝,每個對象都成為相對獨立的實體

D.通過封裝,對象的屬性都是不可見的★標準答案:D

2.假定AA是一個類,abc是該類的一個成員函數,則參數表

中隱含的第一個參數的類型為()。〔2分〕

A.int

B.char

C.AA

D.AA*

★標準答案:D

3.當將一個類A或函數f()說明為另一個類B的友元后,類A或

函數f()能夠直接訪問類B的()。〔2分〕

A.只能是公有成員B.只能是保護成員

C.只能是除私有成員之外的任何成員D.任何權限的成員

★標準答案:D

4.類的析構函數可以帶有()個參數。〔2分〕A.0

B.1

C.2

D.任意

★標準答案:A

5.一個類的析構函數通常被定義為該類的()成員。〔2分

A.私有B.保護C.公用D.友元★標準答案:C.6.函數重載是指()。〔2分〕

A.兩個或兩個以上的函數取一樣的函數名,但形參的個數或

類型不同

B.兩個以上的函數取一樣的名字和具有一樣的參數個數,但

形參的類型可以不同

C.兩個以上的函數名字不同,但形參的個數或類型一樣

D.兩個以上的函數取一樣的函數名,并且函數的返回類型一樣

★標準答案:A

7.一個類的構造函數通常被定義為該類的()成員。〔2分

A.公用B.保護

C.私有

D.友元★標準答案:A

8.在C++程序中使用的cout標識符是系統類庫中定義的()

類中的一個對象。〔2分〕

A.istream

B.ostream

C.iostream

D.fstream

★標準答案:B

9.采用重載函數的目的是()。〔2分〕

A.實現共享B.減少空間

C.提高速度D.使用方便,提高可讀性

★標準答案:D

10.在公有繼承的情況下,基類成員在派生類中的訪問權限(

A.受限制B.保持不變

C.受保護

D.不受保護

★標準答案:B

11.在關鍵字private后面定義的成員為類的()成員。〔2

A.私有

B.公用

C.保護

D.任何

★標準答案:A12.假定AB為一個類,則執行ABx;語句時將自動調用該類

的()。〔2分〕

A.有參構造函數B.無參構造函數

C.拷貝構造函數

D.賦值構造函數

★標準答案:B

13.在關鍵字public后面定義的成員為類的()成員。〔2

A.私有C.保護D.任何★標準答案:B

14.類的構造函數是在定義該類的一個()時被自動調用執行的。〔2分〕

A.成員函數

B.數據成員C.對象

D.友元函數

★標準答案:C

15.假定AB為一個類,則執行“AB*s=newAB(a,5);〞語句時得到的一個動態對象為()。

A.s

B.s->a

C.s.a

D.*s

★標準答案:D

16.在C++程序中使用的cin標識符是系統類庫中定義的()

類中的一個對象。〔2分〕

A.istream

B.ostream

C.iostream

D.fstream

★標準答案:A

17.假定AA為一個類,inta()為該類的一個成員函數,假設

該成員函數在類定義體外定義,則函數頭為()。〔2分〕A.intAA::a()

B.intAA:a()

C.AA::a()

D.AA::inta()

★標準答案:A

18.假定AA為一個類,a為該類私有的數據成員,GetValue

()為該類公有函數成員,它返回a的值,x為該類的一個對象

,則訪問x對象中數據成員a的格式為()。〔2分〕

A.x.a

B.x.a()

C.x->GetValue()

D.x.GetValue()

★標準答案:D19.派生類的對象對其基類中()可直接訪問。〔2分〕A.公有繼承的公有成員B.公有繼承的私有成員C.公有繼承的保護成員D.私有繼承的公有成員★標準答案:A

20.派生類的對象對它的基類成員中()是可以訪問的。〔2

分〕

A.公有繼承的公有成員;B.公有繼承的私有成員;C.公有繼承的保護成員;

D.私有繼承的公有成員;★標準答案:A21.如果類B在類A的根基上構造,那么,就稱〔〕。〔2分A.類A為基類或父類,類B為超類或子類B.類A為基類、父類或超類,類B為派生類或子類

C.類A為派生類,類B為基類

D.類A為派生類或子類,類B為基類、父類或超類★標準答案:B22.C++中的虛基類機制可以保證()。〔2分〕

A.限定基類只通過一條路徑派生出派生類

B.允許基類通過多條路徑派生出派生類,派生類也就能屢次

繼承該基類

C.當一個類屢次間接從基類派生以后,派生類對象能保存多

份間接基類的成員

D.當一個類屢次間接從基類派生以后,其基類只被一次繼承

★標準答案:A

23.設置虛基類的目的是()。〔2分〕

A.簡化程序;

B.消除二義性;

C.提高運行效率;

D.減少目標代碼;

★標準答案:B

24.抽象類是〔〕:〔2分〕A.不可以定義對象

B.可以定義對象

C.不可以派生新類

D.不可以輸出★標準答案:A

25.動態聯編又稱為〔〕〔2分〕

A.多態B.動態束定

C.動態約束

D.動態約定

★標準答案:B

26.假定指針變量p定義為“int*p=newint;〞,要釋放p所指向的動態內存,應使用語句()。

A.deletep;

B.delete*p;

C.delete&p;

D.delete[]p;

★標準答案:A

27.有以下程序

#include<iostream.h>

#include<string.h>

voidmain()

chara[]={'a','b','c','d','e','f','g','h','\0'};

inti,j;

i=sizeof(a);

j=strlen(a);

cout<<i<<","<<j<<endl;

}〔2分〕

A.9,9

B.8,9

C.1,8

D.9,8★標準答案:D

28.假設有定義:intaa[8];則以下表達式中不能代表數組元素aa[1]的地址的是()。

A.&aa[0]+1

B.&aa[1]

C.&aa[0]++

D.aa+1

★標準答案:C

29.設intx[]={1,3,5,7,9,11,13},*p;p=x;則不能正確引用數組元素的表達式是〔〕〔2A.*〔p--〕B.*〔--p〕

C.*〔p++〕

D.*〔++p〕

★標準答案:B

30.以下能正確定義數組并正確賦初值的語句是〔2分〕

A.intN=5,b[N][N];

B.inta[1][2]={{1},{3}};

C.intc[2][]={{1,2},{3,4}};

D.intd[3][2]={{1,2},{3,4}};

★標準答案:D

31.預處理命令在程序中都是以()符號開頭

A.*

B.#

C.&

D.@

★標準答案:B

32.以下字符串屬于合法標識符的是()。〔2分〕A.INT

B.5_student

C.long

D.!DF

★標準答案:A

33.設x=1.2,y=2.0,則語句z=(int)x+y;執行后,x的結果

為()。〔2分〕

A.3.2

B.1

C.3.0

D.1.2

★標準答案:C

34.以下關于單目運算符++、--的表達中正確的選項是〔2分〕

A.它們的運算對象可以是任何變量和常量

B.它們的運算對象可以是char型變量和int型變量,但不能

是float型變量

C.它們的運算對象可以是int型變量,但不能是double型變

量和float型變量

D.它們的運算對象可以是char型變量、int型變量和float

型變量★標準答案:D

35.以下正確的函數聲明語句是()。〔2分〕

A.doublefun(intx,inty)

B.doublefun(intx;inty)

C.doublefun(int,int);

D.doublefun(intx,y);

★標準答案:C

36.以下程序執行后sum的值是〔〕。

#include<iostream.h>

voidmain()

inti,sum;

for(i=1;i<6;i++)sum+=i;

cout<<sum<<endl;

}〔2分〕

A.15

B.14

C.不確定

D.0

★標準答案:C

37.在下面循環語句中循環體執行的次數為()。

inti=0;doi++;while(i*i<10);〔2分〕

A.4

B.3

C.5

D.2

★標準答案:A

38.以下描述中正確的選項是()。〔2分〕

A.for循環只能用于循環次數已經確定的情況

B.for循環是先執行循環體語句,后判斷表達式

C.在for循環中,不能用break語句跳出循環體

D.for循環的循環體語句中,可以包含多條語句,但必須用

花括號括起來

★標準答案:D

39.do語句能夠改寫為()語句。〔2分〕

A.復合

B.if

C.switch

D.while

★標準答案:D

40.C++語言的跳轉語句中,對于break和continue說法正確

的是()。〔2分〕

A.break語句只用于循環體中B.continue語句只用于循環體中

C.break是無條件跳轉語句,continue不是

D.break和continue的跳轉范圍不夠明確,容易產生問題

★標準答案:B

1.靜態數據成員的初始化是在()中進展的。〔2分〕

A.構造函數

B.任何成員函數

C.所屬類D.類體外

★標準答案:D

2.一個類的友元不是該類的成員,與該類的關系密切,所以它()。〔2分〕

A.有this指針,有默認操作的對象

B.沒有this指針,可以有默認操作的對象

C.有this指針,不能執行默認操作

D.沒有this指針,也就沒有默認操作的對象

★標準答案:D

3.假定AB為一個類,則執行“ABx;〞語句時將自動調用該類的()。〔2分〕

A.帶參構造函數

B.無參構造函數

C.拷貝構造函數

D.賦值重載函數

★標準答案:B

4.在一個類的定義中,包含有()成員的定義。〔2分〕

A.數據B.函數C.數據和函數

D.變量

★標準答案:C

5.假定AA為一個類,a為該類公有的數據成員,假設要在該類的一個成員函數中訪問它,則書寫格式為()。〔2分〕

A.a

B.AA::a

C.a()

D.AA::a()

★標準答案:A

6.一個類的構造函數通常被定義為該類的()成員。〔2分〕

A.公用B.保護

C.私有

D.友元

★標準答案:A

7.在公有繼承的情況下,基類成員在派生類中的訪問權限()〔2分〕

A.受限制B.保持不變

C.受保護

D.不受保護★標準答案:B

8.對于任一個類,用戶所能定義的構造函數的個數至多為()。〔2分〕

A.0

B.1

C.2

D.任意個

9.假定AA為一個類,inta()為該類的一個成員函數,假設該成員函數在類定義體外定義,則函數頭為()。〔2分〕A.intAA::a()

B.intAA:a()

C.AA::a()

D.AA::inta()

★標準答案:A

10.()是析構函數的特征。〔2分〕

A.析構函數可以有一個或多個參數;

B.析構函數名與類名不同;

C.析構函數的定義只能在類體內;

D.一個類中只能定義一個析構函數

★標準答案:D

11.以下關于對象數組的描述中,()是錯的。〔2分〕

A.對象數組的下標是從0開場的;

B.對象數組的數組名是一個常量指針:

C.對象數組的每個元素是同一個類的對象;D.對象數組只能賦初值,而不能被賦值。

★標準答案:D

12.對于任意一個類,析構函數的個數最多為()〔2分〕

A.0

B.1

C.2

D.3

★標準答案:B

13.有如下類聲明:classFoo{intbar;};則Foo類的成員bar是〔〕〔2分〕

A.公有數據成員

B.公有成員函數C.私有數據成員

D.私有成員函數

★標準答案:C

14.對于一個類的構造函數,其函數名與類名()。〔2分〕

A.完全一樣

B.根本一樣

C.不一樣

D.無關系

★標準答案:A

15.假定AB為一個類,則執行“AB*s=newAB(a,5);〞語句時得到的一個動態對象為()。〔2分〕

A.s

B.s->a

C.s.a

D.*s

★標準答案:D

16.在一個類的定義中,包含有()成員的定義。〔2分〕

A.數據

B.函數C.數據和函數D.數據或函數

★標準答案:C

17.對于任一個類,用戶所能定義的析構函數的個數至多為()。〔2分〕

A.0

B.1

C.2

D.任意個

★標準答案:B

18.在C++中,當一個對象被創立后,它的每一個成員函數都含有一個系統自動生成的隱含的指針,稱之為()指針。〔2分〕

A.對象B.派生

C.基類D.this

19.C++的繼承性允許派生類繼承基類的〔〕。〔2分〕

A.局部特性,并允許增加新的特性或重定義基類的特性

B.局部特性,但不允許增加新的特性或重定義基類的特性

C.所有特性,并允許增加新的特性或重定義基類的特性

D.所有特性,但不允許增加新的特性或重定義基類的特性

★標準答案:A

20.下面描述中,表達錯誤的選項是()。〔2分〕

A.公有繼承時基類中的public成員在派生類中仍是public的

B.私有繼承時基類中的private成員在派生類中仍是private的

C.私有繼承時基類中的protected成員在派生類中仍是protected的

D.私有繼承時基類中的public成員在派生類中是private的

★標準答案:C

21.派生類的成員函數可以直接訪問基類的〔〕成員。〔2分〕

A.所有B.公有和保護

C.保護和私有

D.私有

★標準答案:B

22.在c++中,一個虛函數是通過關鍵字()放在其基類說明的前面來加以說明的.〔2分〕

A.virtual

B.protected

C.operator

D.this

★標準答案:A

23.對于公有繼承,基類的公有和保護成員在派生類中將()成員。〔2分〕

A.全部變成公有

B.全部變成保護

C.全部變成私有D.仍然相應保持為公有和保護

★標準答案:D

24.但凡能用以派生新類,卻不能創立自己的對象的類稱為()。〔2分〕

A.虛基類B.抽象類

C.容器類

D.派生類

★標準答案:B

25.動態聯編又稱為〔〕〔2分〕

A.多態

B.動態束定

C.動態約束

D.動態約定

★標準答案:B

26.在下面的二維數組定義中,正確的選項是()。〔2分〕

A.inta[5][];

B.inta[][5];

C.inta[][3]={{1,3,5},{2}};

D.inta[](10);

★標準答案:C

27.假設有一些定義和語句inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;則以下選項中錯誤的語句是〔2分〕

A.*q=0;

B.w=p;

C.*p=&a;

D.*p=*w;

★標準答案:C

28.假定一條定義語句為“inta[10],x,*pa=a;〞,假設要把數組a中下標為3的元素值賦給x,則不正確的語句為()。〔2分〕

A.x=pa[3];

B.x=*(a+3);

C.x=a[3];

D.x=*pa+3;

★標準答案:D

29.在下面的一維數組定義中,()有語法錯誤。〔2分〕

A.inta[]={1,2,3};

B.inta[10]={0};

C.inta[];

D.inta[5];

★標準答案:C

30.假定變量m定義為“intm=7;〞,則定義變量p的正確語句為()。〔2分〕

A.intp=&m;

B.int*p=&m;

C.int&p=*m;

D.int*p=m;

★標準答案:B

31.10+'a'+1.5-567.345/'b'的結果是()型數據。〔2分〕

A.long

B.double

C.int

D.float

★標準答案:B

32.以下正確的描述是〔〕。〔2分〕

A.函數的定義可以嵌套,函數的調用不可以嵌套

B.函數的定義不可以嵌套,函數的調用可以嵌套

C.函數的定義和函數的調用均可以嵌套

D.函數的定義和函數的調用均不可以嵌套

★標準答案:B

33.C++中函數返回值的類型是由〔〕決定的。〔2分〕

A.return語句中表達式的類型B.該函數定義時的類型

C.調用函數時的調用語句

D.系統根據結果

★標準答案:B

34.全局變量的作用域限于()。〔2分〕

A.整個程序

B.從定義變量的位置開場到根源文件完畢

C.根源文件

D.從定義變量的位置開場到本程序完畢

★標準答案:B

35.以下對引用的陳述中不正確的選項是〔〕。〔2分〕

A.每一個引用都是其所引用對象的別名,因此必須初始化

B.形式上針對引用的操作實際上作用于它所引用的對象

C.一旦定義了引用,一切針對其所引用對象的操作只能通過該引用間接進展

D.不需要單獨為引用分配存儲空間

★標準答案:C

36.在下面循環語句中循環體執行的次數為()。

inti=0;doi++;while(i*i<10);〔2分〕

A.4

B.3

C.5

D.2

★標準答案:A

37.以下描述中正確的選項是()。〔2分〕

A.for循環只能用于循環次數已經確定的情況B.for循環是先執行循環體語句,后判斷表達式

C.在for循環中,不能用break語句跳出循環體

D.for循環的循環體語句中,可以包含多條語句,但必須用花括號括起來

★標準答案:D

38.switch語句能夠改寫為()語句。〔2分〕

A.for

B.if

C.do

D.while

★標準答案:B

39.C++語言的跳轉語句中,對于break和continue說法正確的選項是()。〔2分〕

A.break語句只用于循環體中

B.continue語句只用于循環體中

C.break是無條件跳轉語句,continue不是

D.break和continue的跳轉范圍不夠明確,容易產生問題

★標準答案:B

40.do語句能夠改寫為()語句。〔2分〕

A.復合

B.if

C.switch

D.while

★標準答案:D

一.單項選擇〔共40題,共80分〕

1.在一個類的定義中,包含有()成員的定義。〔2分〕

A.數據

B.函數C.數據和函數

D.數據或函數

★標準答案:C

2.對于一個類的析構函數,其函數名與類名()。〔2分〕

A.完全一樣

B.完全不同C.只相差一個字符

D.無關系

★標準答案:C

3.對于任一個類,用戶所能定義的析構函數的個數至多為()。〔2分〕

A.0

B.1

C.2

D.任意個

★標準答案:B

4.假定AA為一個類,a為該類公有的數據成員,假設要在該類的一個成員函數中訪問它,則書寫格式為()。〔2分〕

A.a

B.AA::a

C.a()

D.AA::a()

★標準答案:A

5.對于任一個類,用戶所能定義的構造函數的個數至多為()。〔2分〕

A.0

B.1

C.2

D.任意個

★標準答案:D

6.當將一個類A或函數f()說明為另一個類B的友元后,類A或函數f()能夠直接訪問類B的()。〔2分〕

A.只能是公有成員

B.只能是保護成員

C.只能是除私有成員之外的任何成員

D.任何權限的成員★標準答案:D

7.()是析構函數的特征。〔2分〕

A.析構函數可以有一個或多個參數;

B.析構函數名與類名不同;

C.析構函數的定義只能在類體內;

D.一個類中只能定義一個析構函數

★標準答案:D

8.假定AA為一個類,a()為該類公有的函數成員,x為該類的一個對象,則訪問x對象中函數成員a()的格式為()。〔2分〕

A.x.a

B.x.a()

C.x->a

D.x->a()

★標準答案:B

9.一個類的友元不是該類的成員,與該類的關系密切,所以它()。〔2分〕

A.有this指針,有默認操作的對象

B.沒有this指針,可以有默認操作的對象

C.有this指針,不能執行默認操作D.沒有this指針,也就沒有默認操作的對象

★標準答案:D

10.被非靜態成員函數訪問的類的數據成員()。〔2分〕

A.可以是非靜態數據成員或靜態數據成員

B.不可能是類的靜態數據成員

C.只能是類的非靜態數據成員

D.只能是類的靜態數據成員

★標準答案:A

11.假定AB為一個類,則執行ABx;語句時將自動調用該類的()。〔2分〕

A.有參構造函數B.無參構造函數

C.拷貝構造函數D.賦值構造函數

★標準答案:B

12.類的析構函數是一個對象被()時自動調用的。〔2分〕

A.建設B.撤消

C.賦值

D.引用

★標準答案:B

13.假定AA是一個類,abc是該類的一個成員函數,則參數表中隱含的第一個參數的類型為()。〔2分〕

A.int

B.char

C.AA

D.AA*

★標準答案:D

14.假定AB為一個類,則執行“ABx(a,5);〞語句時將自動調用該類的()。〔2分〕

A.帶參構造函數B.無參構造函數

C.拷貝構造函數

D.賦值重載函數

★標準答案:A

15.對于一個類的構造函數,其函數名與類名()。〔2分〕

A.完全一樣

B.根本一樣

C.不一樣

D.無關系

★標準答案:A

16.類的析構函數可以帶有()個參數。〔2分〕A.0

B.1

C.2

D.任意

★標準答案:A

17.采用重載函數的目的是()。〔2分〕

A.實現共享

B.減少空間

C.提高速度

D.使用方便,提高可讀性

★標準答案:D

18.對于任意一個類,析構函數的個數最多為()〔2分〕

A.0

B.1

C.2

D.3

★標準答案:B

19.設置虛基類的目的是()。〔2分〕

A.簡化程序;B.消除二義性;

C.提高運行效率;

D.減少目標代碼;

★標準答案:B

20.建設包含有類

溫馨提示

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

評論

0/150

提交評論