C++期末考試試卷題庫含答案_第1頁
C++期末考試試卷題庫含答案_第2頁
C++期末考試試卷題庫含答案_第3頁
C++期末考試試卷題庫含答案_第4頁
C++期末考試試卷題庫含答案_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C++期末考試試卷題庫

(含答案)

一、填空題

1、C++控制臺應(yīng)用程序的上機步驟是,先通過編輯操作得到擴展名為.CPP的源程序,再通

過編譯操作得到擴展名為.OBJ的目標程序,最后通過連接操作得到擴展名為

EXE的

可執(zhí)行程序。

2、C++程序的三種基本結(jié)構(gòu)分別是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)

構(gòu)。

3、在C++中,switch語句只能用于整型、常量和字符型

類型數(shù)據(jù)。

4、當定義的C++函數(shù)無返回值時,則函數(shù)類型用void關(guān)鍵字聲明。在C++

程序中函數(shù)

直接或間接地調(diào)用該函數(shù)自身的過程,被稱為遞歸函數(shù)。

5、面向?qū)ο蟪绦蛟O(shè)計中的抽象的作用是表示同一類事物的本質(zhì)___________。

6、為了使類中的成員不能被類外的函數(shù)通過成員操作符訪問,則應(yīng)把該成員的訪問權(quán)限定

義為私有的。

7、類可以體現(xiàn)數(shù)據(jù)的封裝性和信息隱蔽。

8、類擁有兩類成員,即數(shù)據(jù)成員和成員函數(shù)。

9、如果類A繼承自類B,則類A稱為派生類,類B稱為基類。

10、面向?qū)ο蟪绦蛟O(shè)計有四個主要特點:封裝性、抽象性、繼承性和

多態(tài)性。

11、構(gòu)造函數(shù)不需要用戶來調(diào)用它,而是建立對象時自動執(zhí)行o

12、析構(gòu)函數(shù)的作用并不是刪除對象,而是撤銷對象占用的內(nèi)存之前完成一些清理工作,

使這部分內(nèi)存可以被程序分配給新對象使用o

13,靜態(tài)數(shù)據(jù)成員的初始化形式為數(shù)據(jù)類型類名::靜態(tài)數(shù)據(jù)成員名=初

值;。

14、在繼承中由基類派生新類的過程經(jīng)歷了從基類接收成員、調(diào)整從基類

接收的成員、在聲明派生類時增加成員三個步驟。

15、在一個類中以另一個類的對象作為數(shù)據(jù)成員的,稱為Q

16、設(shè)置虛基類的目的是解決動態(tài)多態(tài)問題,可通過關(guān)鍵字

virtual標識虛基類。

17、從系統(tǒng)實現(xiàn)的角度看,多態(tài)性可分為兩類:動態(tài)多態(tài)性和靜態(tài)

多態(tài)性。

-1-

二、單項選擇

0、this指針知識點。

1、面向?qū)ο蟪绦蛟O(shè)計的英文縮寫為(D)。

A、OOAB、OODC、OOTD、OOP

2、在面向?qū)ο蟪绦蛟O(shè)計框架中,(D)是程序的基本單位。

A、對象B、函數(shù)C、塊D、類

3、一個C++控制臺應(yīng)用程序的執(zhí)行是從(D).

A、本程序的主函數(shù)開始,到本程序的最后一個函數(shù)結(jié)束。

B、本程序的第一個函數(shù)開始,到本程序的最后一個函數(shù)結(jié)束。

C、本程序的第一個函數(shù)開始,到本程序的主函數(shù)結(jié)束。

D、本程序的主函數(shù)開始,到本程序的主函數(shù)結(jié)束。

4、下列C++數(shù)據(jù)類型所需存儲空間最大的是(D)?

A、longB、floatC、intD、double

5、在C++語言中,char型數(shù)據(jù)在內(nèi)存中的存儲形式是(D)。

A、原碼B、反碼C、補碼D、ASCII碼

6、在C++語言中,所有的編譯預處理命令均以(D)開頭。

A、¥B、&C、*D、#

7、C++是通過引用運算符(D)來定義一個引用的。

A、*B、?C、->D、&

8、(D)是給對象取了一個別名,它引入對象的同義詞。

A、枚舉B、結(jié)構(gòu)C、指針D、引用

9、cin是C++中的標準(D)。

A、輸出流對象B、控制臺C、輸入函數(shù)D、輸入流對象

10、cout是C++中的標準(D)?

A、輸入流對象B、控制臺C、輸出函數(shù)D、輸出流對象

11、下列有關(guān)C++函數(shù)的敘述錯誤的是(D)。

A、缺省函數(shù)類型為int類型B、同一個函數(shù)允許多次調(diào)用

C、函數(shù)允許直接或間接的調(diào)用自身D、允許在主函數(shù)中定義其它函數(shù)

12、C++中,將實參的值傳送給形參,形參是實參的一個拷貝,這種方式稱為(D)。

A、遞歸方式調(diào)用B、嵌套方式調(diào)用

C、引用方式調(diào)用D、傳值方式調(diào)用

-2-

13、函數(shù)的值通過return語句返回,下面關(guān)于return語句的形式描述錯誤的是(D)。

A>return(表達式);B、一個return語句只能返回一個函數(shù)值;

C、return表達式

D、一個return語句可以返回多個函數(shù)值

14、下列有關(guān)C++數(shù)組的敘述錯誤的是(D

A、數(shù)組元素下標從0開始B、數(shù)組中的元素類型必須相同

C、數(shù)組名表示數(shù)組的首地址D、不能對數(shù)組元素初始化

15、C++允許在同一作用域中用同一函數(shù)名定義多個函數(shù),這些函數(shù)的參數(shù)個數(shù)和參數(shù)類型

不相同,這些同名的函數(shù)用來實現(xiàn)不同的功能,這就是(D)。

A、函數(shù)的重復定義B、函數(shù)的同名覆蓋

C、函數(shù)的重新定義D、函數(shù)的重載

16、系統(tǒng)在調(diào)用重教函數(shù)時往往根據(jù)一些條件確定哪個重載函數(shù)被調(diào)用,在下列選項中,不

能作為依據(jù)的是(D

A、參數(shù)個數(shù)B、參數(shù)的類型C、函數(shù)的名稱D、函數(shù)的類型

17、在C++中,關(guān)于下列設(shè)置默認參數(shù)值的描述中,(D)是正確的。

A、默認參數(shù)不會導致副作用

B、設(shè)置默認參數(shù)值時,必須全部都設(shè)置

C、只能在函數(shù)的定義性聲明中指定參數(shù)的默認值

D、在指定了默認值的參數(shù)右邊,不能出現(xiàn)沒有指定默認值的參數(shù)

18、在面向?qū)ο蠓椒ㄖ?,(D)描述的是具有相似屬性與操作的一組對象。

A、對象B、代碼C、函數(shù)D、類

19^在類定義中,說明成員的訪問控制規(guī)則的private>protected、public可以出現(xiàn)的次數(shù)

(D)。

A、出現(xiàn)public至多一次B、每種至少一次

C、每種至多一次D、沒有具體限定

20、在關(guān)鍵字public后面定義的成員為類的(D

A、函數(shù)成員B、私有成員C、受保護成員D、公有成員

21、在類外給出成員函數(shù)定義時,需在函數(shù)名前加(D)。

A、什么都不加B、類名C、對象名::D、類名::

22、關(guān)于成員函數(shù)特征的下述描述中,錯誤的是(D)。

A、成員函數(shù)可以是靜態(tài)的B、成員函數(shù)可以設(shè)置默認參數(shù)

C、成員函數(shù)可以重載D、成員函數(shù)一定是內(nèi)聯(lián)函數(shù)

23、在C++中聲明的具有類類型的數(shù)據(jù)稱為(D)。

-3-

A、局部變量B、全局變量C、類D、對象

24、下列訪問對象中的成員的方法中,錯誤的是(D)。

A、通過對象名和成員運算符訪問對象中的成員

B、通過指向?qū)ο蟮闹羔樤L問對象中的成員

C、通過對象的引用變量訪問對象中成員

D、通過成員名直接訪問對象中的成員

25、對象的指針,其含義是指對象空間的(D)。

A、一個標志B、值C、名D、起始地址

26、關(guān)于構(gòu)造函數(shù)的說法,錯誤的是(D)。

A、構(gòu)造函數(shù)可以有形參B、構(gòu)造函數(shù)無函數(shù)類型

C、構(gòu)造函數(shù)的功能是用來完成對象初始化D、一個類只能有一個構(gòu)造函數(shù)

27、非成員函數(shù)應(yīng)聲明為類的(D)才能訪問這個類的private成員。

A、構(gòu)造函數(shù)B、析構(gòu)函數(shù)C、拷貝構(gòu)造函數(shù)D、友元函數(shù)

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

A、私有成員B、公有成員

C、保護成員D、公有成員、保護成員和私有成員

29、通過C++的(D)機制,可以從現(xiàn)存類中構(gòu)建新的類。

A、信息隱藏B、數(shù)據(jù)封裝C、數(shù)據(jù)抽象D、繼承與派生

30、C++中,若希望基類的公有成員在派生類中仍為公有成員,應(yīng)采用(D)。

A、單繼承B、私有繼承C、受保護繼承D、公有繼承

31、通過派生類對象對它的基類成員中(D)是可以訪問的。

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

C、公有繼承的保護成員D、公有繼承的公有成員

32、C++允許一個派生類同時繼承多個基類,這種行為稱為(D

A、重復繼承B、多層派生C、單繼承D、多重繼承

33、重復繼承是指(C)。

A、只有一個直接基類B、有兩個直接基類

C、有兩個以上直接基類D、間接繼承一個基類多次

34、建立含有對象成員的派生類對象時,自動調(diào)用構(gòu)造函數(shù)的執(zhí)行順序依次為(D)。

A、派生類、對象成員所屬類、基類的構(gòu)造函數(shù)

B、基類、派生類、對象成員所屬類的構(gòu)造函數(shù)

C、對象成員所屬類、基類、派生類的構(gòu)造函數(shù)

D、基類、對象成員所屬類、派生類的構(gòu)造函數(shù)

-4-

35、在C++程序中,(D)主要用來訪問靜態(tài)數(shù)據(jù)成員,而不能直接訪問非靜態(tài)成員。

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

36、設(shè)置虛基類的目的是(C)

A、簡化程序B、提高運行效率

C、減少目標代碼D、消除二義性

37、編譯時的多態(tài)性通常使用(D)獲得。

A、繼承B、虛函數(shù)C、析構(gòu)函數(shù)D、重載函數(shù)

38、許多情況下,在基類中不能為虛函數(shù)給出一個有意義的定義,這時可將其說明為(D)o

A、虛基類B、友元函數(shù)C、成員函數(shù)D、純虛函數(shù)

三、綜合應(yīng)用

1、仔細分析下列C++程序,寫出執(zhí)行結(jié)果:

#include<iostream.h>

intfiddle(intx,int&y){

x=x+y;

y=x-y;

cout?"x=,'?x?",y=,'?y?endl;//(分)

returnx+y;

)

intmain(){

intx⑶,y⑺,z;

z=fiddle(x,y);

cout?"x=n?x?'\y="?y;

cout?n,z=H?z?endl;//(分)

return0;

)

結(jié)果:

X=10,Y=3

X=3,Y=3,Z=13

2、仔細分析下列C++程序,按要求填空:

#include<iostream.h>

①intfun(int);

②intfun(int,int);〃聲明函數(shù)fun。(分)

intmain(){

cout?fun(2,4)?endl;〃程序輸出顯示為(分)

return0;

-5-

intfun(intn){

returnn*n;

)

intfun(intm,intn){

returnm*n;

)

3、仔細分析下列C++程序,按要求填空:

#include<iostream.h>

classA{

protected:

intx;

public:

voidset(intX){

x=X;

)

);

classB{

protected:

①inty;〃聲明整型數(shù)據(jù)成員y(分)

public:

voidset(intY){

y=Y;

)

);

classC:publicA,publicB{

);

voidmain(){

Cel;

②cl.A::set(7);〃設(shè)置cl對象的x為7(分)

③cl.B::set(9);〃設(shè)置cl對象的y為9(分)

)

4、仔細分析下列C++程序,按要求填空:

#include<iostream.h>

classA{

protected:

intx;

);

classB{

protected:

intx;

);

classC:publicA,publicB{

public:

-6-

voidset(intXA,intXB){

①A::x=XA;〃繼承自A的x獲取XA的值(分)

②B::x=XB;〃繼承自B的x獲取XB的值(分)

)

voidshow(){

@cout?A::B::x?endl;//^fyHjSWx的值(分)

)

);

intmain(){

Cel;

cl.set(2,3);

cl.show();

return0;

}

5、仔細分析以下程序后,在空白處補上必要的部分使程序完整:

#include<iostream.h>

classPILLAR{

protected:

floatwid;

floathei;

floatlen;

public:

PILLAR(){〃(分)

;//(2分)

floatvol(){

;//(分)

classPIPE{

private:

PILLARin_Pill;

PILLARout.Pill;

public:

PIPE(){//(分)

)

floatvol(){

returnout_Pill.vol()-in_Pill.vol();

)

);

intmain(){

PIPEpl(2.0f,3.0f,4.0f,5.0f,lO.Of);

-7-

cout?pl.vol()?endl;

return0;

)

6、仔細分析下列C++程序,在空白處補上必要的部分使程序完整:

#include<iostream.h>

classA{

public:

voidshow(){cout?”基類函數(shù)show'1?endl;}

virtualdisp(){cout?”基類虛函數(shù)disp"?endl;}//(分)

);

classB:publicA{

public:

voidshow(){cout?”派生類函數(shù)show"?endl;}

voiddisp(){cout?"派生類函數(shù)disp"?endl;}〃(分)

);

intmain(){

A*pa;

pa=newB;

pa->show();//此處執(zhí)行后顯示:基類函數(shù)show

pa->disp();//此處執(zhí)行后顯示:派生類函數(shù)disp

deletepa;

return0;

)

四、問答題

1、在哪些情況下程序會執(zhí)行析構(gòu)函數(shù)?(分)

答:

當對象的生命期結(jié)束時,會自動執(zhí)行析構(gòu)函數(shù)。

①如果在一個函數(shù)中定義了一個對象(假設(shè)是自動局部對象),當這個函數(shù)調(diào)用結(jié)束時,對

象應(yīng)該釋放,在對象釋放前自動執(zhí)行析構(gòu)函數(shù)

②靜態(tài)局部對象在main函數(shù)結(jié)束或調(diào)用exit函數(shù)結(jié)束程序時,調(diào)用static局部對象的析構(gòu)

函數(shù)

③定義了一個全局的對象,在程序的流程離開其作用域時,調(diào)用該全局的對象的析構(gòu)函數(shù)

④用new運算符動態(tài)建立一個對象,當用delete運算符釋放該對象時,先調(diào)用該對象的析

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

2、在C++的派生類中,成員可以按訪問屬性劃分為哪幾種類型?(分)

答:

劃分為私有派生類,公用派生類,保護派生類

3、虛函數(shù)的作用是什么?其使用方法是什么?(分)

答:

作用:允許在派生類中重新定義與基類同名的函數(shù),并且可以通過基類指針或引用來訪問基

-8-

類和派生類中的同名函數(shù)

使用方法

⑴在基類中用virtual聲明成員函數(shù)為虛函數(shù)

⑵在派生類中重新定義此函數(shù),函數(shù)名,函數(shù)類型,函數(shù)參數(shù)個數(shù)和類型必須與基類的虛函

數(shù)相同,根據(jù)派生類的需要重新定義函數(shù)體

⑶定義一個指向基類對象的指針變量,并使它指向同一類族中需要調(diào)用該函數(shù)的對象

⑷通過該指針變量調(diào)用此虛函數(shù),此時調(diào)用的就是指針變量指向的對象的同名函數(shù)

五、程序設(shè)計題

1、設(shè)計一個圓(CIRCLE)類,有數(shù)據(jù)成員Radius,要求:

(1)設(shè)計構(gòu)造函數(shù)完成圓類對象的初始化(默認值為1.0);

(2)設(shè)計成員函數(shù)GetArea,用于計算并返回圓的面積;

(3)編寫main函數(shù)用于程序運行實現(xiàn)。(共5分)

#include<iostream>

usingnamespacestd;

classCIRCLE

(

public:

CIRCLEO

(

Radius=1.0;

}

floatGetArea();

voidshow();

private:

floatRadius;

);

voidCIRCLE::show()

(

cout?”請輸入圓的半徑:"<<endl;

)

floatCIRCLE::GetArea()

(

cin?Radius;

return(3.14159*Radius*Radius);

)

intmain()

-9-

CIRCLEc;

c.show();

cout?c.GetArea()?endl;

return0;

2、設(shè)計一個矩形(RECT)類,有數(shù)據(jù)成員length>width,要求:

(1)設(shè)計構(gòu)造函數(shù)完成矩形類對象的初始化(默認長、寬為1.0);

(2)設(shè)計成員函數(shù)GetArea,用于計算并返回矩形的面積;

(3)編寫main函數(shù)用于程序運行實現(xiàn)。(共5分)

#include<iostream>

usingnamespacestd;

classRECT

(

public:

RECTO

(

length=1.0;

width=1.0;

)

voiddisplay();

floatGetArea();

private:

floatlength;

floatwidth;

);

voidRECT::display()

(

cout<<”

溫馨提示

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

評論

0/150

提交評論