廣西大學(xué)《計(jì)算機(jī)語言(VC)》期末復(fù)習(xí)題及參考答案_第1頁
廣西大學(xué)《計(jì)算機(jī)語言(VC)》期末復(fù)習(xí)題及參考答案_第2頁
廣西大學(xué)《計(jì)算機(jī)語言(VC)》期末復(fù)習(xí)題及參考答案_第3頁
廣西大學(xué)《計(jì)算機(jī)語言(VC)》期末復(fù)習(xí)題及參考答案_第4頁
廣西大學(xué)《計(jì)算機(jī)語言(VC)》期末復(fù)習(xí)題及參考答案_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計(jì)算機(jī)語言(VC)復(fù)習(xí)資料

超越高度

一.單選題(共21題,46.2分)

超越高度

1當(dāng)消息產(chǎn)生時(shí),系統(tǒng)調(diào)用CwinApp的()函數(shù)對消息進(jìn)行解析,并發(fā)送到相

應(yīng)的窗口進(jìn)行處理。

ARun

BCreate

CTranslateMessage

DDispatchMessage

正確答案:A

2編寫C++程序一般需經(jīng)過的幾個(gè)步驟依次是()。

A編輯、調(diào)試、編譯、連接

B編輯、編譯、連接、運(yùn)行

C編譯、調(diào)試、編輯、連接

D編譯、編輯、連接、運(yùn)行

正確答案:B

3決定C++語言中函數(shù)的返回值類型的是()。

Areturn語句中的表達(dá)式類型

B調(diào)用該函數(shù)時(shí)系統(tǒng)隨機(jī)產(chǎn)生的類型

C調(diào)用該函數(shù)時(shí)的主調(diào)用函數(shù)類型

D在定義該函數(shù)時(shí)所指定的數(shù)據(jù)類型

正確答案:D

4對基類和派生類的關(guān)系描述中,錯(cuò)誤的是()。

A派生類是基類的具體化

B基類繼承了派生類的屬性

C派生類是基類定義的延續(xù)

D派生類是基類的特殊化

正確答案:B

5設(shè)有代碼“structBOOK{chartitile[40];floatprice;};則下列不正確的變量定義

語句是()。

ABOOKbook;

BBOOKbook={"C++編程”,27.5};

CBOOK*x=newBOOK;

DBOOKx=newBOOK;

正確答案:D

6下面敘述不正確的是()。

A派生類一般都用公有派生

B對基類成員的訪問必須是無二義性的

C賦值兼容規(guī)則也適用于多重繼承的組合

D基類的公有成員在派生類中仍然是公有的

正確答案:D

7已知類A是類B的友元,類B是類C的友元,則()。

A類A一定是類C的友元

B類C一定是類A的友元

C類C的成員函數(shù)可以訪問類B的任何成員

D類A的成員函數(shù)可以訪問類B的任何成員

正確答案:D

8對于類中定義的成員,其隱含訪問權(quán)限為()。

Aprotected

Bprivate

Cpublic

Dstatic

正確答案:B

9友元的作用是()。

A提高程序的運(yùn)行效率

B加強(qiáng)類的封裝性

C實(shí)現(xiàn)數(shù)據(jù)的隱藏性

D增強(qiáng)成員函數(shù)的種類

正確答案:A

10對于下面循環(huán)語句:

inti=0;

do

i++;

while(i*i<10);,其循環(huán)體被執(zhí)行的次數(shù)為()。

A4

B3

C5

D2

正確答案:A

11一個(gè)類的友元函數(shù)或友元類能夠通過成員操作符訪問該類的()。

A私有成員

B公有成員

C保護(hù)成員

D所有成員

正確答案:D

12關(guān)于純虛函數(shù)和抽象類的描述中,錯(cuò)誤的是()。

A純虛函數(shù)是一種特殊的虛函數(shù),它沒有具體實(shí)現(xiàn)

B抽象類是指具有純虛函數(shù)的類

C一個(gè)基類中說明有純虛函數(shù),該基類的派生類一定不是抽象類

D抽象類只能作為基類使用,其純虛函數(shù)的實(shí)現(xiàn)由派生類給出

正確答案:A

13根據(jù)對話框的行為性質(zhì),對話框可以分為兩類:()。

A對話框資源和對話框類

B模式對話框和非模式對話框

C對話框資源和對話框模板

D消息對話框和模式對話框

正確答案:B

14通??截惓跏蓟瘶?gòu)造函數(shù)的參數(shù)是()。

A某個(gè)對象名

B某個(gè)對象成員名

C某個(gè)對象的引用名

D某個(gè)對象的指針名

正確答案:C

15有關(guān)構(gòu)造函數(shù)的說法不正確的是()。

A構(gòu)造函數(shù)名和類名一樣

B構(gòu)造函數(shù)無任何函數(shù)類型

C構(gòu)造函數(shù)有且只有一個(gè)

D構(gòu)造函數(shù)在說明類對象時(shí)自動(dòng)執(zhí)行

正確答案:C

16下面關(guān)于MFC中類的說法,正確的是()。

ACobject類是MFC所有類的基類

BCView是CWnd類的子類

CCdialog是CWnd類的子類

DCarchive類可以支持串行化操作

正確答案:A

17程序運(yùn)行中需要從鍵盤上輸入多于一個(gè)數(shù)據(jù)時(shí),各數(shù)據(jù)之間應(yīng)使用()符號

作為分隔符。

A空格或逗號

B逗號或回車

C逗號或分號

D空格或回車

正確答案:D

18假設(shè)A為一個(gè)類,則執(zhí)行“Aa,b(3),*p;”語句時(shí)共調(diào)用該類構(gòu)造函數(shù)的次

數(shù)為()。

A2B3C4D5

正確答案:A

19文件包含命令中被包含的文件的擴(kuò)展名為()。

A必須是.h

B不能是.h

C可以是.h或.cpp

D必須是.cpp

正確答案:C

20下列關(guān)于Windows應(yīng)用程序?qū)κ髽?biāo)響應(yīng)的說法,正確的是()。

A只有活動(dòng)窗口才能接受鼠標(biāo)事件

B可以調(diào)用函數(shù)SetCapture。函數(shù)實(shí)現(xiàn)對鼠標(biāo)的捕獲,且捕獲鼠標(biāo)后系統(tǒng)的鍵

盤功能暫時(shí)失效。

C用戶只能調(diào)用系統(tǒng)定義的鼠標(biāo)的光標(biāo)形狀,不能自定義光標(biāo)

D可以通過相應(yīng)單一類型的鼠標(biāo)消息來響應(yīng)鼠標(biāo)的拖動(dòng)事件

正確答案:B

21下列不屬于成員函數(shù)的是()。

A靜態(tài)成員函數(shù)

B析構(gòu)函數(shù)

C友元函數(shù)

D構(gòu)造函數(shù)

正確答案:C

二.填空題(共15題,33.0分)

1編譯時(shí)的多態(tài)通過實(shí)現(xiàn)。

正確答案:

函數(shù)重載;

2this指針始終指向調(diào)用成員函數(shù)的o

正確答案:

對象;

3每個(gè)對象都是所屬類的一個(gè)o

正確答案:

實(shí)例;

4為解決多繼承中因公共基類而產(chǎn)生的二義性問題,C++提供了機(jī)

制。將公共基類聲明為它以后,它在派生類中只產(chǎn)生一個(gè)實(shí)例。

正確答案:

虛基類;

5C++支持兩種多態(tài)性:編譯時(shí)的多態(tài)性和時(shí)的多態(tài)性。

正確答案:

運(yùn)行;

6一個(gè)抽象類的派生類可以實(shí)例化的必要條件是實(shí)現(xiàn)了所有的定

義。

正確答案:

純虛函數(shù);

7classtest{

正確答案:

25;

8如果要把A類成員函數(shù)voidf()聲明為類B的友元函數(shù),則應(yīng)在類B的定義中

加入語句;

正確答案:

friendvoidA::f();

9假設(shè)為類A定義了構(gòu)造函數(shù)“A(intaa,char*bb=NULL):a(aa),b(bb)”,則該類

中至少包含有個(gè)數(shù)據(jù)成員。

正確答案:

2;

10C++程序的源文件擴(kuò)展名為。

正確答案:

cpp;

UC++中函數(shù)的參數(shù)傳遞一種是按值傳遞,另一種是傳遞。

正確答案:

地址

引用;

12MFC中的集合類包括數(shù)組、、映射。

正確答案:

列表;

13假定x是一個(gè)邏輯變量,則X||false的值為。

正確答案:

X;

14若多個(gè)基類及其派生類中都定義了同名函數(shù)成員,要訪問相應(yīng)函數(shù)時(shí),就緒

要在函數(shù)名前加上__________和類區(qū)分符。

正確答案:

類名;

15從一條函數(shù)原型語句“intfun1(void)”可知,該函數(shù)帶有個(gè)參數(shù)。

正確答案:

0;

三.程序分析題(共3題,6.6分)

1運(yùn)行結(jié)果:

調(diào)用構(gòu)造函數(shù)lo

調(diào)用構(gòu)造函數(shù)2。

5調(diào)用析構(gòu)函數(shù)。

調(diào)用析構(gòu)函數(shù)。

正確答案:

運(yùn)行結(jié)果:

classB:1classA:hello

2分析如下程序?qū)懗鲞\(yùn)行結(jié)果。

#include<iostream.h>

classCount{

private:

staticintcount;

public:

Count(){count++;}

?Count。{count—;}

staticinHM(){returncount;}

);

intCount::count=100;

voidmain()

(

Countcl,c2,c3,c4;

cout?Count::HM();

)

正確答案:

運(yùn)行結(jié)果:

104

3分析如下程序?qū)懗鲞\(yùn)行結(jié)果。

#include<iostream.h>

classB{

private:a,b;

public:

B(){}

B(intx,inty){a=x;b=y;}

voidprintb(void){cout?,,a=,,?a?,,b=,,?b?endl;}

);

clasA{

private:Bc;

public:

A(){)

A(intx,inty):c(x,y){}

voidprinta(void){c.printb();}

voidmain()

Am(7,9);

m.printa();

}

正確答案:

運(yùn)行結(jié)果:

a=7,b=9

四.程序填空(共4題,8.8分)

1輸入10個(gè)整數(shù),用冒泡排序法按從小打大的順序排序,并輸出排序結(jié)果。

程序如下:

#include<iostream.h>

voidmain(){

inti,j,temp,*pt;

int*Pn=(1)int[10];

for(i=l;i<=10;i++){

cout?"Pleaseenteranumber:"?endl;

cin?*(Pn+i);

}

for(i=l;i<=10;i++)

for(j=l;(2);j++)

if(*(⑶))>*(Pn+j+l){

temp=*(Pn+j);

*(Pn+j)=*(Pn+j+1);

*(Pn+j+l)=(4)

)

for(i=l;i<10;i++)

cout?*(Pn+i)?"

正確答案:

答案:

(1)new

⑵j<=10-i

⑶Pn+j

(4)temp

2Fibonacci數(shù)列滿足如下列遞歸關(guān)系:

f(l)=Of(2)=lf(n)=f(n-l)+f(n-l)(n>2)

編寫程序計(jì)算Fibonacci數(shù)列第n項(xiàng)值。

程序如下:

#include<iostream.h>

(1);

voidmain(void){

intnumber;

cout?"Pleaseenteraintegernumber:"?endl;

cin?number;

longresult=(2);

cout?HResult=n?result?endl;

)

longFib(intn){

if((3))return0;

elseif(n==2)return1;

else

return(4);;

}

正確答案:

答案:

(1)longFib(int)

(2)Fib(number)

(3)n==1(4)Fib(n-l)+Fib(n-2)

3#include<iostream.h>

classbase{

intX;

public:

(1)〃為X設(shè)置值

(2)〃取X值

};

voidmain(){

basetest;

test.init(6);

cout?test.GetNum();

)

正確答案:

(1)voidinit(inti){X=i;}

(2)intGetNum(){returnX;}

4classA{

inta,b;

public:

A(intaa=0,intbb=O)(1)〃分別用aa和bb對應(yīng)初始化a和b

(}

);

main(){

(2)〃定義類A的對象X并用5初始化,同時(shí)定義y,并用x初始化

A*p=&x;

}

正確答案:

答案:

(1):a(aa),b(bb)

(2)Ax(5),y(x)

五.編程題(共2題,5.4分)

1已定義一個(gè)Shape抽象類,在此基礎(chǔ)上派生出矩形Rectangle和圓形Circle

類,二者都有GetPerim()函數(shù)計(jì)算對象的周長,并編寫測試main。函數(shù)。

classShape

{public:

Shape(){}

-Shape(){}

virtualfloatGetPerim()=O;

)

正確答案:

程序如下:

classRectangle:publicShape

(

public:

Rectangle(floati,floatj):L(i),W(j){}-Rectangle(){}

floatGetPerim()

(

return2*(L+W);

}

private:

floatL,W;

);

classCircle:publicShape

(

public:

Circle(floatr):R(r){}

floatGetPerim()

return3.14*2*R;

private:

floatR;

);

voidmain()

(

Shape*sp;

sp=newCircle(lO);

cout?sp->GetPerim()?endl;

sp=newRectangle(6,4);

cout?sp->GetPerim()?endl;

)

22、求n(n=3)個(gè)學(xué)生的最高分和最低分及姓名,下面已經(jīng)給出student類聲明和

main函數(shù),請寫出下面的student類的實(shí)現(xiàn)部分的三個(gè)函數(shù):student(char

na,?intd),*getname(),compare(student&s1,student&s2)o

#include<iostream.h>#include<string.h>

classstudent

(

charname,10,;

intdeg;

public:

student(charna?=,M,,intd=0);

char*getname();

friendintcompare(student&sl,student&s2);

intgetdeg();

);

voidmain()

(

studentst,尸{student("王強(qiáng)”,74),student("李剛”,68),student("張雪”,84)};

inti=0,min=0,max=0;

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

if(compare(st,max?st,i,)=-1)

max=i;

if(compare(st,min?st,i,)==1)

min=i;

)

COUt?”最高分:”《51,111@*,圖61(1。8()<<“姓名:"<<$1,01@*,考氏11@1119()<<。11(11;

cout<<“最低分:"<<(*(st+min)).getdeg()?“姓名:“<vst,max,.getname()?endl;

)

正確答案:

程序如下:

#include<iostream.h>#include<string.h>

classstudent

{charname,10,;

intdeg;

public:

student(charna,,="\intd=0);

char*getname();

friendintcompare(student&sl,student&s2);

intgetdegO;

);

voidmain(){

studentst,,={student("王強(qiáng)”,74),student("李剛”,68),student("張雪”,84)};

inti=0,min=0,max=0;

for(i=l;i<3;i++){

if(compare(st,max?st,i,)=-1)max=i;

if(compare(st,min?st,i,)==1)min=i;

cout?"最高分:"?st,max,.getdeg()?n姓名:,,?st,max,.getname()?endl;

cout<v"最低分:"<<(*(st+min)).getdeg()<<"姓名:"v<st,max,?getname()?endl;

計(jì)算機(jī)語言(VC)復(fù)習(xí)資料

一.單選題(共23題,50.6分)

1在類中說明的成員可以使用關(guān)鍵字的是()。

Apublic

Bextem

Ccpu

Dregister

正確答案:A

2在重載一個(gè)運(yùn)算符時(shí),其參數(shù)表中沒有任何參數(shù),這表明該運(yùn)算符是()。

A作為友元函數(shù)重載的一元運(yùn)算符

B作為成員函數(shù)重載的一元運(yùn)算符

C作為友元函數(shù)重載的二元運(yùn)算符

D作為成員函數(shù)重載的二元運(yùn)算符

正確答案:B

3關(guān)于純虛函數(shù)和抽象類的描述中,錯(cuò)誤的是()。

A純虛函數(shù)是一種特殊的虛函數(shù),它沒有具體實(shí)現(xiàn)

B抽象類是指具有純虛函數(shù)的類

C一個(gè)基類中說明有純虛函數(shù),該基類的派生類一定不是抽象類

D抽象類只能作為基類使用,其純虛函數(shù)的實(shí)現(xiàn)由派生類給出

正確答案:A

4編寫C++程序一般需經(jīng)過的幾個(gè)步驟依次是()。

A編輯、調(diào)試、編譯、連接

B編輯、編譯、連接、運(yùn)行

C編譯、調(diào)試、編輯、連接

D編譯、編輯、連接、運(yùn)行

正確答案:B

5友元的作用是()。

A提高程序的運(yùn)行效率

B加強(qiáng)類的封裝性

C實(shí)現(xiàn)數(shù)據(jù)的隱藏性

D增強(qiáng)成員函數(shù)的種類

正確答案:A

6所謂數(shù)據(jù)封裝就是將一組數(shù)據(jù)和與這組數(shù)據(jù)有關(guān)操作組裝在一起,形成一個(gè)

實(shí)體,這實(shí)體也就是()。

A類

B對象

C函數(shù)體

D數(shù)據(jù)塊

正確答案:A

7下列二維數(shù)組定義,正確的是()。

Ainta[5][];

Binta[][5]

Cinta[][3]={{l,3,5},{2})

Dinta[](10)

正確答案:C

8一個(gè)類的友元函數(shù)或友元類能夠通過成員操作符訪問該類的()。

A私有成員

B公有成員

C保護(hù)成員

D所有成員

正確答案:D

9文件包含命令中被包含的文件的擴(kuò)展名為()。

A必須是.h

B不能是.h

C可以是.h或.cpp

D必須是.cpp

正確答案:C

10假定一個(gè)類的構(gòu)造函數(shù)為A(intaa,intbb){a=aa--;b=a*bb;},則執(zhí)行Ax(4,5);語

句后,x.a和x.b的值分別為()。

A3和15B5和4C4和20D20和5正確答案:C

11決定C++語言中函數(shù)的返回值類型的是()。

Areturn語句中的表達(dá)式類型

B調(diào)用該函數(shù)時(shí)系統(tǒng)隨機(jī)產(chǎn)生的類型

C調(diào)用該函數(shù)時(shí)的主調(diào)用函數(shù)類型

D在定義該函數(shù)時(shí)所指定的數(shù)據(jù)類型

正確答案:D

12程序運(yùn)行中需要從鍵盤上輸入多于一個(gè)數(shù)據(jù)時(shí),各數(shù)據(jù)之間應(yīng)使用()符號

作為分隔符。

A空格或逗號

B逗號或回車

C逗號或分號

D空格或回車

正確答案:D

13設(shè)有代碼"structBOOK{chartitile[40];floatprice;};則下列不正確的變量定

義語句是()。

ABOOKbook;

BBOOKbook={“C++編程”,27.5};

CBOOK*x=newBOOK;

DBOOKx=newBOOK;

正確答案:D

14下面循環(huán)語句中內(nèi)層循環(huán)的循環(huán)體S的執(zhí)行總次數(shù)為()。

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

for(intj=i;j<n;j++)

s

An2

B(n+l)/2

Cn(n+l)/2

Dn(n-l)/2

正確答案:C

15下列說法正確的是()。

A類定義中只能說明函數(shù)成員的函數(shù)頭,不能定義函數(shù)體

B類中的函數(shù)成員可以在類體中定義,也可以在類體之外定義

C類中的函數(shù)成員在類體之外定義時(shí)必須要與類聲明在同一文件中

D在類體之外定義的函數(shù)成員不能操作該類的私有數(shù)據(jù)成員

正確答案:B

16在公有派生類的成員函數(shù)不能直接訪問基類中繼承來的某個(gè)成員,則該成員

一定是基類中的()。

A私有成員

B公有成員

C保護(hù)成員

D保護(hù)成員或私有成員

正確答案:A

17下面敘述不正確的是()。

A派生類一般都用公有派生

B對基類成員的訪問必須是無二義性的

C賦值兼容規(guī)則也適用于多重繼承的組合

D基類的公有成員在派生類中仍然是公有的

正確答案:D

18根據(jù)對話框的行為性質(zhì),對話框可以分為兩類:()。

A對話框資源和對話框類

B模式對話框和非模式對話框

C對話框資源和對話框模板

D消息對話框和模式對話框

正確答案:B

19以下說法正確的是()。

A用戶調(diào)用標(biāo)準(zhǔn)庫函數(shù)前,必須重新定義

B用戶可以重新定義標(biāo)準(zhǔn)庫函數(shù),若如此,該函數(shù)將失去原有含義

C系統(tǒng)不允許用戶重新定義標(biāo)準(zhǔn)庫函數(shù)

D用戶調(diào)用標(biāo)準(zhǔn)庫函數(shù)前,不必使用預(yù)編譯命令將該函數(shù)所在文件包括到用戶

源文件中

正確答案:B

20已知類A是類B的友元,類B是類C的友元,則()。

A類A一定是類C的友元

B類C一定是類A的友元

C類C的成員函數(shù)可以訪問類B的任何成員

D類A的成員函數(shù)可以訪問類B的任何成員

正確答案:D

21下列關(guān)于Windows應(yīng)用程序?qū)κ髽?biāo)響應(yīng)的說法,正確的是()。

A只有活動(dòng)窗口才能接受鼠標(biāo)事件

B可以調(diào)用函數(shù)SetC叩ture()函數(shù)實(shí)現(xiàn)對鼠標(biāo)的捕獲,且捕獲鼠標(biāo)后系統(tǒng)的鍵

盤功能暫時(shí)失效。

C用戶只能調(diào)用系統(tǒng)定義的鼠標(biāo)的光標(biāo)形狀,不能自定義光標(biāo)

D可以通過相應(yīng)單一類型的鼠標(biāo)消息來響應(yīng)鼠標(biāo)的拖動(dòng)事件

正確答案:B

22下列不屬于成員函數(shù)的是()。

A靜態(tài)成員函數(shù)

B析構(gòu)函數(shù)

C友元函數(shù)

D構(gòu)造函數(shù)

正確答案:C

23對基類和派生類的關(guān)系描述中,錯(cuò)誤的是()。

A派生類是基類的具體化

B基類繼承了派生類的屬性

C派生類是基類定義的延續(xù)

D派生類是基類的特殊化

正確答案:B

二.填空題(共10題,22.0分)

1編譯時(shí)的多態(tài)通過實(shí)現(xiàn)。

正確答案:

函數(shù)重載;

2一個(gè)抽象類的派生類可以實(shí)例化的必要條件是實(shí)現(xiàn)了所有的定

義。

正確答案:

純虛函數(shù);

3C++程序的源文件擴(kuò)展名為。

正確答案:

cpp:

4兩個(gè)函數(shù)的函數(shù)名相同,但參數(shù)的個(gè)數(shù)和類型不同,則稱為o

正確答案:

函數(shù)重載

重載函數(shù);

5this指針始終指向調(diào)用成員函數(shù)的o

正確答案:

對象;

6classtest{

正確答案:

25;

7假設(shè)為類A定義了構(gòu)造函數(shù)“A(intaa,char*bb=NULL):a(aa),b(bb)”,則該類

中至少包含有個(gè)數(shù)據(jù)成員。

正確答案:

2;

8C++支持兩種多態(tài)性:編譯時(shí)的多態(tài)性和時(shí)的多態(tài)性。

正確答案:

運(yùn)行;

9定義類動(dòng)態(tài)對象數(shù)組時(shí),元素只能靠自動(dòng)調(diào)用該類的來進(jìn)行初始

化。

正確答案:

無參構(gòu)造函數(shù);

10為解決多繼承中因公共基類而產(chǎn)生的二義性問題,C++提供了機(jī)

制。將公共基類聲明為它以后,它在派生類中只產(chǎn)生一個(gè)實(shí)例。

正確答案:

虛基類;

三.程序分析題(共6題,13.2分)

1分析如下程序?qū)懗鲞\(yùn)行結(jié)果。

#include<iostream.h>

classA{

private:

doubleTotal,Rate;

public:

A(doublet,doubler){Total=t;Rate=r;}

frenddoubleCount(A&a){

a.Total+=a.Rate*a.Total;

returncount;

)

);

voidmain()

(

Aal(1000.0,0.035),a2(768.0,0.028);

cout?Count(al)?","?Count(a2)?endl;

正確答案:

運(yùn)行結(jié)果:

1035,789.504

2分析如下程序?qū)懗鲞\(yùn)行結(jié)果。

#include<iostream.h>

classTest{

intx,y;

public:

Test(inti,intj=0){x=i;y=j;}

intget(inti,intj){returni+j;}

);

voidmain(){

Testtl(2),t2(4,6);

int(Test::*p)(int,int=10);

p=Test::get;

cout?(tl.*p)(5)?endl;

Test*pl=&t2;

cout?(p1->*p)(7,20)?endl;

)

正確答案:

運(yùn)行結(jié)果:

1527

3分析如下程序?qū)懗鲞\(yùn)行結(jié)果。

#include<iostream.h>

classCount{

private:

staticintcount;

public:

Count(){count++;}

?Count。{count—;}

staticinHM(){returncount;}

);

intCount::count=100;

voidmain()

(

Countcl,c2,c3,c4;

cout?Count::HM();

)

正確答案:

運(yùn)行結(jié)果:

104

4分析如下程序?qū)懗鲞\(yùn)行結(jié)果。

#include<iostream.h>

classAdd{

private:intx,y;

public:

Add(inta,intb){

x=a;y=b;

cout?,調(diào)用構(gòu)造函數(shù)1。Vvendl;

)

Add(Add&p){

x=p.a;y=p.b;

coutvv,調(diào)用構(gòu)造函數(shù)2。V<endl;

?Add(){

countcc'調(diào)用析構(gòu)函數(shù)'<<endl;

intadd(){returnx+y;}

);

voidmain(){

Addpl(2,3);

Addp2(pl);

cout?p2.add()?endl;

)

正確答案:

運(yùn)行結(jié)果:

調(diào)用構(gòu)造函數(shù)lo

調(diào)用構(gòu)造函數(shù)2。

5調(diào)用析構(gòu)函數(shù)。

調(diào)用析構(gòu)函數(shù)。

5運(yùn)行結(jié)果:

調(diào)用構(gòu)造函數(shù)lo

調(diào)用構(gòu)造函數(shù)2。

5調(diào)用析構(gòu)函數(shù)。

調(diào)用析構(gòu)函數(shù)。

正確答案:

運(yùn)行結(jié)果:

classB:1classA:hello

6分析如下程序?qū)懗鲞\(yùn)行結(jié)果。

#include<iostream.h>

classB{

private:a,b;

public:

B(){}

B(intx,inty){a=x;b=y;}

voidprintb(void){cout?,,a=,,?a?,,b=,,?b?endl;}

clasA{

private:Bc;

public:

A(){}

A(intx,inty):c(x,y){}

voidprinta(void){c.printb();}

);

voidmain()

(

Am(7,9);

m.printa();

)

正確答案:

運(yùn)行結(jié)果:

a=7,b=9

四.程序填空(共5題,11.0分)

[Fibonacci數(shù)列滿足如下列遞歸關(guān)系:

f(l)=0f(2)=lf(n)=f(n-l)+f(n-l)(n>2)

編寫程序計(jì)算Fibonacci數(shù)列第n項(xiàng)值。

程序如下:

#include<iostream.h>

(1);

voidmain(void){

intnumber;

cout?"Pleaseenteraintegernumber:"?endl;

cin?number;

longresult=(2);

cout?"Result=H?result?endl;

)

longFib(intn){

if((3))return0;

elseif(n==2)return1;

else

return(4);;

)

正確答案:

答案:

(1)longFib(int)

(2)Fib(number)

(3)n==l(4)Fib(n-l)+Fib(n-2)

2輸入10個(gè)整數(shù),用冒泡排序法按從小打大的順序排序,并輸出排序結(jié)果。

程序如下:

#include<iostream.h>

voidmain(){

inti,j,temp,*pt;

int*Pn=(1)int[10];

for(i=1;i<=10;i++){

cout?nPleaseenteranumbe亡”<<endl;

cin?*(Pn+i);

)

for(i=l;i<=10;i++)

(2);j++)

if(*((3)))>*(Pn+j+l){

temp=*(Pn+j);

*(Pn+j)=*(Pn+j+1);

*(Pn+j+l)=(4)

)

for(i=l;i<10;i++)

cout?*(Pn+i)?Hn;

)

正確答案:

答案:

(1)new

⑵j<=10-i

⑶Pn+j

(4)temp

3#include<iostream.h>

classbase{

intX;

public:

(1)〃為X設(shè)置值

(2)〃取X值

);

voidmain(){

basetest;

test.init(6);

cout?test.GetNum();

)

正確答案:

(1)voidinit(inti){X=i;}

(2)intGetNum(){returnX;}

4classA{

int*a;

public:

A(intx=0){

a=(1);〃用x初始化a所指向的對象

)

-A(){(2);}〃釋放動(dòng)態(tài)存儲空間

}

正確答案:

(1)newint(x)

(2)deletea;

5classA{

inta,b;

public:

A(intaa=O,intbb=O)(1)〃分別用aa和bb對應(yīng)初始化a和b

()

);

main(){

(2)〃定義類A的對象X并用5初始化,同時(shí)定義y,并用x初始化

A*p=&x;

)

正確答案:

答案:

(1):a(aa),b(bb)

(2)Ax(5),y(x)

五.編程題(共1題32分)

1已定義一個(gè)Shape抽象類,在此基礎(chǔ)上派生出矩形Rectangle和圓形Circle

類,二者都有GetPerim()函數(shù)計(jì)算對象的周長,并編寫測試main()函數(shù)。

classShape

{public:

Shape(){}

~Shape(){}

virtualfloatGetPerim()=O;

)

正確答案:

程序如下:

classRectangle:publicShape

(

public:

Rectangle(floati,floatj):L(i),W(j){{~Rectangle(){}

floatGetPerim()

(

return2*(L+W);

)

private:

floatL,W;

);

classCircle:publicShape

(

public:

Circle(floatr):R(r){}

floatGetPerim()

(

return3.14*2*R;

)

private:

floatR;

voidmain()

Shape*sp;

sp=newCircle(lO);

cout?sp->GetPerim()?endl;

sp=newRectangle(6,4);

cout?sp->GetPerim()?endl;

)

計(jì)算機(jī)語言(VC)復(fù)習(xí)題

一.單選題(共26題,57.2分)

1下面循環(huán)語句中內(nèi)層循環(huán)的循環(huán)體S的執(zhí)行總次數(shù)為()。

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

for(intj=i;j<n;j++)

S

An2

B(n+l)/2

Cn(n+l)/2

Dn(n-l)/2

正確答案:C

2下面關(guān)于靜態(tài)數(shù)據(jù)成員的描述中,錯(cuò)誤的是()。

A靜態(tài)數(shù)據(jù)成員不是所有該類對象所共用的

B靜態(tài)數(shù)據(jù)成員要在類外初始化

C說明靜態(tài)數(shù)據(jù)成員時(shí)要加修飾符static

D引用靜態(tài)數(shù)據(jù)成員時(shí),要加類名及作用域符

正確答案:D

3根據(jù)對話框的行為性質(zhì),對話框可以分為兩類:()。

A對話框資源和對話框類

B模式對話框和非模式對話框

C對話框資源和對話框模板

D消息對話框和模式對話框

正確答案:B

4決定C++語言中函數(shù)的返回值類型的是()。

Areturn語句中的表達(dá)式類型

B調(diào)用該函數(shù)時(shí)系統(tǒng)隨機(jī)產(chǎn)生的類型

C調(diào)用該函數(shù)時(shí)的主調(diào)用函數(shù)類型

D在定義該函數(shù)時(shí)所指定的數(shù)據(jù)類型

正確答案:D

5類A的缺省構(gòu)造函數(shù)和析構(gòu)函數(shù)是()。

AA()和~人()

BA(int)和~A()

CA()^O-A(delete)

DA()和int-A()

正確答案:A

6已知類A是類B的友元,類B是類C的友元,則()。

A類A一定是類C的友元

B類C一定是類A的友元

C類C的成員函數(shù)可以訪問類B的任何成員

D類A的成員函數(shù)可以訪問類B的任何成員

正確答案:D

7對于下面循環(huán)語句:

inti=0;

do

i++;

while(i*i<10);,其循環(huán)體被執(zhí)行的次數(shù)為()。

A4

B3

C5

D2

正確答案:A

8MFC類庫中的類按層次關(guān)系可知,Cstatic的直接父類為()。

ACWnd

BCObject

CCcmdTarget

DCFrameWnd

正確答案:A

9假定一個(gè)類的構(gòu)造函數(shù)為A(intaa,intbb){a=aa--;b=a*bb;},則執(zhí)行Ax(4,5);語句

后,x.a和x.b的值分別為()。

A3和15B5和4C4和20D20和5

正確答案:C

10C++程序的基本功能模塊是()。

A表達(dá)式

B標(biāo)識符

C語句

D函數(shù)

正確答案:D

11在VC6開發(fā)環(huán)境中,雙擊工作區(qū)文件,就能打開工作區(qū)及其包含的工程,其

后綴是()。

A.dsw

B.dsp

C.rc

D.clw

正確答案:A

12文件包含命令中被包含的文件的擴(kuò)展名為()。

A必須是.h

B不能是.h

C可以是.h或.cpp

D必須是.cpp

正確答案:C

13程序運(yùn)行中需要從鍵盤上輸入多于一個(gè)數(shù)據(jù)時(shí),各數(shù)據(jù)之間應(yīng)使用()符號

作為分隔符。

A空格或逗號

B逗號或回車

C逗號或分號

D空格或回車

正確答案:D

14通??截惓跏蓟瘶?gòu)造函數(shù)的參數(shù)是()。

A某個(gè)對象名

B某個(gè)對象成員名

C某個(gè)對象的引用名

D某個(gè)對象的指針名

正確答案:C

15MFC主要由()組成。

A基礎(chǔ)類庫、全局函數(shù)

B基礎(chǔ)類庫、全局變量、宏

C基礎(chǔ)類庫、全局函數(shù)、宏

D基礎(chǔ)類庫、全局函數(shù)、全局變量和宏

正確答案:D

16一個(gè)類的友元函數(shù)或友元類能夠通過成員操作符訪問該類的()。

A私有成員

B公有成員

C保護(hù)成員

D所有成員

正確答案:D

17下列二維數(shù)組定義,正確的是()。

Ainta[5][];

Binta[][5]

Cinta[][3]={{l,3,5},{2})

Dinta[](10)

正確答案:C

18編寫C++程序一般需經(jīng)過的幾個(gè)步驟依次是()。

A編輯、調(diào)試、編譯、連接

B編輯、編譯、連接、運(yùn)行

C編譯、調(diào)試、編輯、連接

D編譯、編輯、連接、運(yùn)行

正確答案:B

19下列說法正確的是()。

A類定義中只能說明函數(shù)成員的函數(shù)頭,不能定義函數(shù)體

B類中的函數(shù)成員可以在類體中定義,也可以在類體之外定義

C類中的函數(shù)成員在類體之外定義時(shí)必須要與類聲明在同一文件中

D在類體之外定義的函數(shù)成員不能操作該類的私有數(shù)據(jù)成員

正確答案:B

20以下說法正確的是()。

A用戶調(diào)用標(biāo)準(zhǔn)庫函數(shù)前,必須重新定義

B用戶可以重新定義標(biāo)準(zhǔn)庫函數(shù),若如此,該函數(shù)將失去原有含義

C系統(tǒng)不允許用戶重新定義標(biāo)準(zhǔn)庫函數(shù)

D用戶調(diào)用標(biāo)準(zhǔn)庫函數(shù)前,不必使用預(yù)編譯命令將該函數(shù)所在文件包括到用戶

源文件中

正確答案:B

21對基類和派生類的關(guān)系描述中,錯(cuò)誤的是()。

A派生類是基類的具體化

B基類繼承了派生類的屬性

C派生類是基類定義的延續(xù)

D派生類是基類的特殊化

正確答案:B

22在WindowsAPI開發(fā)的應(yīng)用程序框架中,下列哪種方法不能加載菜單()。

A在窗口類的定義時(shí),把結(jié)構(gòu)體WNDCLASS的IpszMenuName設(shè)置為合適的

菜單名

B在創(chuàng)建窗口時(shí),首先調(diào)用LoadMenu獲得菜單句柄,然后調(diào)用函數(shù)

CreateWindow加載該菜單

C在應(yīng)用程序中調(diào)用調(diào)用LoadMenu獲得菜單句柄后,調(diào)用函數(shù)SetMenu動(dòng)態(tài)

加載菜單

D在窗口處理函數(shù)中,針對菜單消息設(shè)置合適的消息響應(yīng)

正確答案:D

23下面關(guān)于MFC中類的說法,正確的是()。

ACobject類是MFC所有類的基類

BCView是CWnd類的子類

CCdialog是CWnd類的子類

DCarchive類可以支持串行化操作

正確答案:A

24當(dāng)消息產(chǎn)生時(shí),系統(tǒng)調(diào)用CwinApp的()函數(shù)對消息進(jìn)行解析,并發(fā)送到

相應(yīng)的窗口進(jìn)行處理。

ARun

BCreate

CTranslateMessage

DDispatchMessage

正確答案:A

25設(shè)有代碼“structBOOK{chartitile[40];floatprice;};則下列不正確的變量定

義語句是()。

ABOOKbook;

BBOOKbook={"C++編程”,27.5};

CBOOK*x=newBOOK;

DBOOKx=newBOOK;

正確答案:D

26下面說法正確的是()。

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

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

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

D構(gòu)造函數(shù)和析構(gòu)函數(shù)都不能重載

正確答案:A

二.填空題(共10題,22.0分)

1編譯時(shí)的多態(tài)通過__________實(shí)現(xiàn)。

正確答案:

函數(shù)重載;

2若多個(gè)基類及其派生類中都定義了同名函數(shù)成員,要訪問相應(yīng)函數(shù)時(shí),就緒

要在函數(shù)名前加上_________和類區(qū)分符。

正確答案:

類名;

3this指針始終指向調(diào)用成員函數(shù)的。

正確答案:

對象;

4MFC中的集合類包括數(shù)組、、映射。

正確答案:

列表;

5假如一個(gè)類的名稱為MyClass,使用這個(gè)類的一個(gè)對象初始化該類的另一個(gè)對

象時(shí),可以調(diào)用構(gòu)造函數(shù)來完成此功能。

正確答案:

復(fù)制

拷貝;

6C++支持兩種多態(tài)性:編譯時(shí)的多態(tài)性和時(shí)的多態(tài)性。

正確答案:

運(yùn)行;

7兩個(gè)函數(shù)的函數(shù)名相同,但參數(shù)的個(gè)數(shù)和類型不同,則稱為o

正確答案:

函數(shù)重載

重載函數(shù);

8classtest{

正確答案:

25;

9每個(gè)對象都是所屬類的一個(gè)

正確答案:

實(shí)例;

10在已經(jīng)定義了整型指針p后,為了得到一個(gè)包括10個(gè)整數(shù)的數(shù)組,并讓p指

向該數(shù)組,應(yīng)使用語句。

正確答案:

int*p=newint[10];

三.程序分析題(共5題[L0分)

1分析如下程序?qū)懗鲞\(yùn)行結(jié)果。

#include<iostream.h>

classAdd{

private:intx,y;

public:

Add(inta,intb){

x=a;y=b;

cout<V調(diào)用構(gòu)造函數(shù)1?!秂ndl;

Add(Add&p){

x=p.a;y=p.b;

coutvv,調(diào)用構(gòu)造函數(shù)2。V<endl;

)

?Add(){

countvv,調(diào)用析構(gòu)函數(shù)V<endl;

intadd(){returnx+y;}

);

voidmain(){

Addpl(2,3);

Addp2(pl);

cout?p2.add()?endl;

)

填寫答案

正確答案:

運(yùn)行結(jié)果:

調(diào)用構(gòu)造函數(shù)lo

調(diào)用構(gòu)造函數(shù)2。

5調(diào)用析構(gòu)函數(shù)。

調(diào)用析構(gòu)函數(shù)。

2分析如下程序?qū)懗鲞\(yùn)行結(jié)果。

#include<iostream.h>

classCount{

private:

staticintcount;

public:

Count(){count++;}

?Count。{count—;}

staticinHM(){returncount;}

);

intCount::count=100;

voidmain()

(

Countcl,c2,c3,c4;

cout?Count::HM();

填寫答案

正確答案:

運(yùn)行結(jié)果:

104

3分析如下程序?qū)懗鲞\(yùn)行結(jié)果。

#include<iostream.h>

classTest{

intx,y;

public:

Test(inti,intj=0){x=i;y=j;}

intget(inti,intj){returni+j;}

);

voidmain(){

Testtl(2),t2(4,6);

int(Test::*p)(int,int=10);

p=Test::get;

cout?(tl.*p)(5)?endl;

Test*pl=&t2;

cout?(p1->*p)(7,20)?endl;

)

填寫答案

正確答案:

運(yùn)行結(jié)果:

1527

4分析如下程序?qū)懗鲞\(yùn)行結(jié)果。

#include<iostream.h>

classB{

private:a,b;

public:

B(){)

B(intx,inty){a=x;b=y;}

voidprintb(void){cout?,,a=,,?a?,,b=',?b?endl;}

clasA{

private:Bc;

public:

A(){}

A(intx,inty):c(x,y){}

voidprinta(void){c.printb();}

);

voidmain()

(

Am(7,9);

m.printa();

)

填寫答案

正確答案:

運(yùn)行結(jié)果:

a=7,b=9

5運(yùn)行結(jié)果:

調(diào)用構(gòu)造函數(shù)1。

調(diào)用構(gòu)造函數(shù)2。

5調(diào)用析構(gòu)函數(shù)。

調(diào)用析構(gòu)函數(shù)。

填寫答案

正確答案:

運(yùn)行結(jié)果:

classB:1classA:hello

四.程序填空(共3題,6.6分)

1打印100以內(nèi)的所有素?cái)?shù)(所謂素?cái)?shù)是指只能被1和本身整除的正整數(shù)。)

#include<iostream.h>

#include<math.h>

voidmain()

(

inti,n;

for(n=2;n<100;n++){

inttemp=int(sqrt(n));#求n的平方根

for(i=2;(1);i++)

if((2))break;

if(i>temp)

cout?n?,

)

coutvv'n';

)

填寫答案

正確答案:

答案:

(1)i<=temp

⑵n%i==0

2classA{

inta,b;

public:

A(intaa=0,intbb=0)(1)//分別用aa和bb對應(yīng)初始化a和b

()

);

main(){

(2)〃定義類A的對象X并用5初始化,同時(shí)定義y,并用x初始化

A*p=&x;

填寫答案

正確答案:

答案:

(1):a(aa),b(bb)

(2)Ax(5),y(x)

3Fibonacci數(shù)列滿足如下列遞歸關(guān)系:

f(1)=0f(2)=lf(n)=f(n-l)+f(n-l)(n>2)

編寫程序計(jì)算Fibonacci數(shù)列第n項(xiàng)值。

程序如下:

#include<iostream.h>

(1);

voidmain(void){

intnumber;

cout?"Pleaseenteraintegernumber:n?endl;

cin?number;

longresult=(2);

cout?"Result=',?result?endl;

)

longFib(intn){

if((3))return0;

elseif(n==2)return1;

else

return(4);;

)

填寫答案

正確答案:

答案:

(1)longFib(int)

(2)Fib(number)

(3)n==l(4)Fib(n-l)+Fib(n-2)

五.編程題(共1題,3.2分)

1已定義一個(gè)Shape抽象類,在此基礎(chǔ)上派生出矩形Rectangle和圓形Circle

類,二者都有GetPerim。函數(shù)計(jì)算對象的周長,并編寫測試main。函數(shù)。

classShape

{public:

Shape(){)

~Shape(){}

virtualfloatGetPerim()=O;

)

填寫答案

正確答案:

程序如下:

classRectangle:publicShape

(

public:

Rectangle(floati,floatj):L(i),W(j){}~Rectangle(){}

floatGetPerim()

(

return2*(L+W);

)

private:

floatL,W;

);

classCircle:publicShape

(

public:

Circle(floatr):R(r){}

floatGetPerim()

return3.14*2*R;

private:

floatR;

);

voidmain()

(

Shape*sp;

sp=newCircle(lO);

cout?sp->GetPerim()?endl;

sp=newRectangle(6,4);

cout?sp->GetPerim()?endl;

)

計(jì)算機(jī)語言(VC)復(fù)習(xí)資料

一.單選題(共25題,55.0分)

1假設(shè)A為一個(gè)類,則執(zhí)行“Aa,b(3),*p;”語句時(shí)共調(diào)用該類構(gòu)造函數(shù)的次數(shù)

為()。

A2B3C4D5

正確答案:A

2下面循環(huán)語句中內(nèi)層循環(huán)的循環(huán)體S的執(zhí)行總次數(shù)為()。

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

for(intj=i;j<n;j++)

SA

n2B

(n+l)/2C

n(n+1)/2D

n(n-l)/2

正確答案:C

3在公有派生類的成員函數(shù)不能直接訪問基類中繼承來的某個(gè)成員,則該成員

一定是基類中的()。

A私有成員

B公有成員

C保護(hù)成員

D保護(hù)成員或私有成員

正確答案:A

4C++程序的基本功能模塊是()。

A表達(dá)式

B標(biāo)識符

C語句

D函數(shù)

正確答案:D

5對基類和派生類的關(guān)系描述中,錯(cuò)誤的是()。

A派生類是基類的具體化

B基類繼承了派生類的屬性

C派生類是基類定義的延續(xù)

D派生類是基類的特殊化

正確答案:B

6根據(jù)對話框的行為性質(zhì),對話框可以分為兩類:()。

A對話框資源和對話框類

B模式對話框和非模式對話框

C對話框資源和對話框模板

D消息對話框和模式對話框

正確答案:B

7編寫C++程序一般需經(jīng)過的幾個(gè)步驟依次是()。

A編輯、調(diào)試、編譯、連接

B編輯、編譯、連接、運(yùn)行

C編譯、調(diào)試、編輯、連接

D編譯、編輯、連接、運(yùn)行

正確答案:B

8以下說法正確的是()。

A用戶調(diào)用標(biāo)準(zhǔn)庫函數(shù)前,必須重新定義

B用戶可以重新定義標(biāo)準(zhǔn)庫函數(shù),若如此,該函數(shù)將失去原有含義

C系統(tǒng)不允許用戶重新定義標(biāo)準(zhǔn)庫函數(shù)

D用戶調(diào)用標(biāo)準(zhǔn)庫函數(shù)前,不必使用預(yù)編譯命令將該函數(shù)所在文件包括到用戶

源文件中

正確答案:B

9有關(guān)構(gòu)造函數(shù)的說法不正確的是()。

A構(gòu)造函數(shù)名和類名一樣

B構(gòu)造函數(shù)無任何函數(shù)類型

C構(gòu)造函數(shù)有且只有一個(gè)

D構(gòu)造函數(shù)在說明類對象時(shí)自動(dòng)執(zhí)行

正確答案:C

10在VC6開發(fā)環(huán)境中,雙擊工作區(qū)文件,就能打開工作區(qū)及其包含的工程,其

后綴是()。

A.dsw

B.dsp

C.rc

D.clw

正確答案:A

11當(dāng)消息產(chǎn)生時(shí),系統(tǒng)調(diào)用CwinApp的()函數(shù)對消息進(jìn)行解析,并發(fā)送到

相應(yīng)的窗口進(jìn)行處理。

ARun

BCreate

CTranslateMessage

DDispatchMessage

正確答案:A

12友元的作用是()。

A提高程序的運(yùn)行效率

B加強(qiáng)類的封裝性

C實(shí)現(xiàn)數(shù)據(jù)的隱藏性

D增強(qiáng)成員函數(shù)的種類

正確答案:A

13已知類A是類B的友元,類B是類C的友元,則()。

A類A一定是類C的友元

B類C一定是類A的友元

C類C的成員函數(shù)可以訪問類B的任何成員

D類A的成員函數(shù)可以訪問類B的任何成員

正確答案:D

14類A的缺省構(gòu)造函數(shù)和析構(gòu)函數(shù)是()。

AA()和~人()

BA(int)^0~A()

CA()^D~A(delete)

DA()和int~A()

正確答案:A

15對于下面循環(huán)語句:

inti=0;

do

i++;

while(i*i<10);,其循環(huán)體被執(zhí)行的次數(shù)為()。

A

4B

3C

5D

2正確答案:A

16下列說法正確的是()。

A類定義中只能說明函數(shù)成員的函數(shù)頭,不能定義函數(shù)體

B類中的函數(shù)成員可以在類體中定義,也可以在類體之外定義

C類中的函數(shù)成員在類體之外定義時(shí)必須要與類聲明在同一文件中

D在類體之外定義的函數(shù)成員不能操作該類的私有數(shù)據(jù)成員

正確答案:B

17關(guān)于純虛函數(shù)和抽象類的描述中,錯(cuò)誤的是()。

A純虛函數(shù)是一種特殊的虛函數(shù),它沒有具體實(shí)現(xiàn)

B抽象類是指具有純虛函數(shù)的類

C一個(gè)基類中說明有純虛函數(shù),該基類的派生類一定不是抽象類

D抽象類只能作為基類使用,其純虛函數(shù)的實(shí)現(xiàn)由派生類給出

正確答案:A

18下面說法正確的是()。

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

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

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

D構(gòu)造函數(shù)和析構(gòu)函數(shù)都不能重載

正確答案:A

19程序運(yùn)行中需要從鍵盤上輸入多于一個(gè)數(shù)據(jù)時(shí),各數(shù)據(jù)之間應(yīng)使用()符號

作為分隔符。

A空格或逗號

B逗號或回車

C逗號或分號

D空格或回車

正確答案:D

20下列關(guān)于Windows應(yīng)用程序?qū)κ髽?biāo)響應(yīng)的說法,正確的是()。

A只有活動(dòng)窗口才能接受鼠標(biāo)事件

B可以調(diào)用函數(shù)SetCapture。函數(shù)實(shí)現(xiàn)對鼠標(biāo)的捕獲,且捕獲鼠標(biāo)后系統(tǒng)的鍵

盤功能暫時(shí)失效。

C用戶只能調(diào)用系統(tǒng)定義的鼠標(biāo)的光標(biāo)形狀,不能自定義光標(biāo)

D可以通過相應(yīng)單一類型的鼠標(biāo)消息來響應(yīng)鼠標(biāo)的拖動(dòng)事件

正確答案:B

21假定一個(gè)類的構(gòu)造函數(shù)為A(intaa,intbb)[a=aa--;b=a*bb;},則執(zhí)行Ax(4,5);語

句后,x.a和x.b的值分別為()。

A3和15B5和4c4和20D20和5

正確答案:C

22所謂數(shù)據(jù)封裝就是將一組數(shù)據(jù)和與這組數(shù)據(jù)有關(guān)操作組裝在一起,形成一個(gè)

實(shí)體,這實(shí)體也就是()。

A類

B對象

C函數(shù)體

D數(shù)據(jù)塊

正確答案:A

23下面關(guān)于MFC中類的說法,正確的是()。

ACobject類是MFC所有類的基類

BCView是CWnd類的子類

CCdialog是CWnd類的子類

DCarchive類可以支持串行化操作

正確答案:A

24在類中說明的成員可以使用關(guān)鍵字的是()。

Apublic

Bextern

Ccpu

Dregister

正確答案:A

25一個(gè)類的友元函數(shù)或友元類能夠通過成員操作符訪問該類的()。

A私有成員

B公有成員

C保護(hù)成員

D所有成員

正確答案:D

二.填空題(共14題,30.8分)

1編譯時(shí)的多態(tài)通過_________實(shí)現(xiàn)。

正確答案:

函數(shù)重載;

2假設(shè)為類A定義了構(gòu)造函數(shù)“A(intaa,char*bb=NULL):a(aa),b(bb)v,則該類

中至少包含有個(gè)數(shù)據(jù)成員。

正確答案:

2;

3在已經(jīng)定義了整型指針p后,為了得到一個(gè)包括10個(gè)整數(shù)的數(shù)組,并讓p指

向該數(shù)組,應(yīng)使用語句o

正確答案:

int*p=newint[10];

4兩個(gè)函數(shù)的函數(shù)名相同,但參數(shù)的個(gè)數(shù)和類型不同,則稱為0

正確答案:

函數(shù)重載

重載函數(shù);

5假定x是一個(gè)邏輯變量,則X||false的值為。

正確答案:

X;

6一個(gè)抽象類的派生類可以實(shí)例化的必要條件是實(shí)現(xiàn)了所有的定

義。

正確答案:

純虛函數(shù);

7定義類動(dòng)態(tài)對象數(shù)組時(shí),元素只能靠自動(dòng)調(diào)用該類的來進(jìn)行初始

化。

正確答案:

無參構(gòu)造函數(shù);

8為解決多繼承中因公共基類而產(chǎn)生的二義性問題,C++提供了機(jī)

制。將公共基類聲明為它以后,它在派生類中只產(chǎn)生一個(gè)實(shí)例。

正確答案:

虛基類;

9C++支持兩種多態(tài)性:編譯時(shí)的多態(tài)性和時(shí)的多態(tài)性。

正確答案:

運(yùn)行;

10C++程序的源文件擴(kuò)展名為0

正確答案:

cpp;

11如果要把A類成員函數(shù)voidf()聲明為類B的友元函數(shù),則應(yīng)在類B的定義

中加入語句;

正確答案:

friendvoidA::f();

12類是用戶定義的類型,具有類類型的變量稱為。

正確答案:

對象;

13從一條函數(shù)原型語句“intfun1(void)”可知,該函數(shù)帶有個(gè)參數(shù)。

正確答案:

0;

14this指針始終指向調(diào)用成員函數(shù)的o

正確答案:

對象;

三.程序分析題(共3題,6.6分)

1分析如下程序?qū)懗鲞\(yùn)行結(jié)果。

#include<iostream.h>

classA{

pri

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論