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

下載本文檔

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

文檔簡介

一、單項選擇題(本大題共10小題,每小題2分,共20分)在每小題列出的四個

選項中只有一個選項是符合題目要求的,請將其代碼填在題后的括號內(nèi)。錯選

或未選均無分。

1.在C++中,函數(shù)原型不能標(biāo)識()

A.函數(shù)的返回類型B.函數(shù)參數(shù)的個數(shù)

C.函數(shù)參數(shù)類型D.函數(shù)的功能

2.在C++程序中,對象之間的相互通信通過()

A.繼承實現(xiàn)B.調(diào)用成員函數(shù)實現(xiàn)

C.封裝實現(xiàn)D.函數(shù)重載實現(xiàn)

3.對于任意一個類,析構(gòu)函數(shù)的個數(shù)最多為()

A.OB.lC.2D.3

4.下面函數(shù)模板定義中不正確的是()

A.template<classQ>

B.template<classQ>

QF(Qx){QF(Qx){

returnQ+x;returnx+x;

})

C.template<classT>

D.template<classT>

TF(Tx){TF(Tx){

returnx*x;returnx>l;

})

5.友元關(guān)系不能()

A.繼承

B.是類與類的關(guān)系

C.是一個類的成員函數(shù)與另一個類的關(guān)系

D.提高程序的運行效率

6.語句ofstreamf("SALARY.DAT",ios::appIios::binary);的功能是建立流對象f,

試圖打開文件SALARY.DAT并與之連接,并且()

A.若文件存在,將文件寫指針定位于文件尾;若文件不存在,建立一個新文

B.若文件存在,將其置為空文件;若文件不存在,打開失敗

C.若文件存在,將文件寫指針定位于文件首;若文件不存在,建立一個新文

D.若文件存在,打開失敗;若文件不存在,建立一個新文件

7.下面說法正確的是()

A.內(nèi)聯(lián)函數(shù)在運行時是將該函數(shù)的目標(biāo)代碼插入每個調(diào)用該函數(shù)的地方

B.內(nèi)聯(lián)函數(shù)在編譯時是將該函數(shù)的目標(biāo)代碼插入每個調(diào)用該函數(shù)的地方

C.類的內(nèi)聯(lián)函數(shù)必須在類體內(nèi)定義

D.類的內(nèi)聯(lián)函數(shù)必須在類體外通過加關(guān)鍵字inline定義

8.可以用p.a的形式訪問派生類對象p的基類成員a,其中a是()

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

C.公有繼承的保護(hù)成員D.公有繼承的公有成員

9.在公有派生情況下,有關(guān)派生類對象和基類對象的關(guān)系,不正確的敘述是()

A.派生類的對象可以賦給基類的對象

B.派生類的對象可以初始化基類的引用

C.派生類的對象可以直接訪問基類中的成員

D.派生類的對象的地址可以賦給指向基類的指針

10.對于類定義

classA{

public:virtualvoidfuncl(){}

voidfunc2(){}

);

classBipublicA{

public:voidfuncl(){cout?"classBfunc1?endl;}

virtualvoidfunc2(){cout?z,classBfunc2"?endl;}

);

下面正確的敘述是()

A.A::func2()和B::funcl()都是虛函數(shù)

B.A::func2()和8:1\1.1()都不是虛函數(shù)

C.B::fiincl()是虛函數(shù),而A::func2()不是虛函數(shù)

D.B::fiincl()不是虛函數(shù),而A::fiinc2()是虛函數(shù)

二、填空題(本大題共10小題,每小題2分,共20分)不寫解答過程,將正確的

答案寫在每小題的橫線處。錯填或不填均無分。

11.定義類的動態(tài)對象數(shù)組時.,系統(tǒng)只能夠自動調(diào)用該類的構(gòu)造函數(shù)對

其進(jìn)行初始化。

12.在C++程序設(shè)計中,建立繼承關(guān)系倒掛的樹應(yīng)使用繼承。

13.表達(dá)式cout?endl還可表示為□

14.基類的公有成員在派生類中的訪問權(quán)限由_______決定。

15.C++支持的兩種多態(tài)性分別是多態(tài)性和多態(tài)性。

16.C++中語句constchar*constp="hello";所定義的指針p和它所指的內(nèi)容都

不能被o

17.假定AB為一個類,則語句AB(AB&x);為該類構(gòu)造函數(shù)的原型說

明。

18.將關(guān)鍵字const寫在成員函數(shù)的和之間時,所修飾的是

this指針。

19.在C++中,訪問一個對象的成員所用的運算符是,訪問一個指針?biāo)?/p>

指向的對象的成員所用的運算符是o

20.派生類從一個或多個以前定義的該類的

一、單項選擇題(本大題共10小題,每小題2分,共20分)

1.D2.B3.B4.A5.A

6.A7.B8.D9.C10.C

第二部分非選擇題(共80分)

二、填空題(本大題共10小題,每小題2分,共20分)

11.無參

12.單一(或單)

13.cout?/\n'(或coutcc'\12',或cout?'\xA',或其它等價形式)

14.訪問控制(或其它等價形式)

15.編譯時的(或靜態(tài),或操作重載)

運行時的(或動態(tài),或虛函數(shù))

16.改變(或重新賦值)

17.復(fù)制初始化(或拷貝)

18.函數(shù)頭(或參數(shù)表)函數(shù)體

19.成員選擇運算符(或)成員訪問運算符(或“>”)

20.基類

一、單項選擇題(每題2分,共20分)

1.派生類對象可訪問基類中的什么成員()

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

C.公有繼承的保護(hù)成員D.私有繼承的公有成員

2.定義析構(gòu)函數(shù)時,應(yīng)該注意()。

A.其名與類名完全相同B.返回類型是void類型

C.無形參,也不可重載D.函數(shù)體中必須有delete語句

3.如果類A被說明成類B的友元,則()o

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

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

4.應(yīng)在下列程序劃線處填入的正確語句是()

Winclude

classBase

{public:

voidfun(){cout?/zBase::fun,,<<endl;}

);

classDerived:publicBase

voidfunO

{//顯示調(diào)用基類的函數(shù)fun()

cout<</zDerived::funz/<<ENDL;

)

);

A.funO;B.Base.fun();

C.Base::fun();D.Base->fun();

5.面向?qū)ο蟪绦蛟O(shè)計將數(shù)據(jù)與()放在一起,做為一個相互依存、不

可分割的整體來處理。

A.對數(shù)據(jù)的操作B.信息C.數(shù)據(jù)隱藏D.數(shù)據(jù)抽象

6.在類中聲明轉(zhuǎn)換函數(shù)時不能指定()0

A.參數(shù)B.訪問權(quán)限C.操作D.標(biāo)識符

7.在派生類中重新定義虛函數(shù)時必須在()方面與基類保持一致。

8.下面關(guān)于C++A.參數(shù)類型B.參數(shù)名字C.操作內(nèi)容D,賦值

中類的繼承與派

生的說法錯誤的是()。

A.基類的protected成員在公有派生類的成員函數(shù)中可以直接使用

B.基類的protected成員在私有派生類的成員函數(shù)中可以直接使用

C.公有派生時,基類的所有成員訪問權(quán)限在派生類中保持不變

D.基類的protected成員在保護(hù)派生類的成員函數(shù)中可以直接使用

9.重載賦值操作符時,應(yīng)聲明為()函數(shù)。

A.友元B.虛C.成員D.多態(tài)

10.語句ofstreamf("SALARY.DATZ/,ios::appIios::binary);的功能是建

立流對象f,試圖打開文件SALARY.DAT并與之連接,并且()

A.若文件存在,將文件寫指針定位于文件尾;若文件不存在,建立一個新文

B.若文件存在,將其置為空文件;若文件不存在,打開失敗

C.若文件存在,將文件寫指針定位于文件首;若文件不存在,建立一個新文

D.若文件存在,打開失??;若文件不存在,建立一個新文件

二、填空題(每空2分,共30分)

1.假定AB為一個類,則語句AB(AB&x);為該類構(gòu)造函數(shù)的原型

說明。

2.C++支持的兩種多態(tài)性分別是多態(tài)性和多態(tài)性。

3.定義類的動態(tài)對象數(shù)組時,系統(tǒng)只能夠自動調(diào)用該類的構(gòu)造函數(shù)

對其進(jìn)行初始化。

4.運算符重載時,其函數(shù)名由構(gòu)成。成員函數(shù)重載雙目運算符

時一,左操作數(shù)是,右操作數(shù)是。

5.C++標(biāo)準(zhǔn)庫中的異常層次的根類為類;MFC類庫中絕大多數(shù)類

都源自根類類。

6.在下面橫線處填上適當(dāng)字句,完成類中成員函數(shù)的定義。

classA{

int*a;

public:

A(intaa=O){

a=;//用aa初始化a所指向的動態(tài)對象

?A(){;}//釋放動態(tài)存儲空間

);

7.C++支持面向?qū)ο蟪绦蛟O(shè)計的四個要素是:封裝性、繼承性、

和O

8.模板分為模板和模板。

一、單項選擇題(每題2分,共20分)

1.A2.C3.D4.C5.A6.A7.A8.C9.C

10.A

二、填空題(每空2分,共30分)

1.拷貝或復(fù)制

2.運行(時)編譯(時)(二者位置可互換)(或改為靜態(tài)和動態(tài)也可)

3.無參(缺省或默認(rèn)均可)

4.operator運算符(運算符可寫為@,若沒寫扣1分)(當(dāng)前)對象函

數(shù)的形參(參數(shù))

5.exception(若e寫為大寫字母則扣0.5分,單詞稍微寫錯扣0.5分)

CObject(字母C0為大寫字母,寫為小寫各扣0.5分)

6.newint(aa)deletea(有new、delete各給1分,int給0.5

分)

7.抽象性多態(tài)性(二者位置可互換)

8.類函數(shù)(二者位置可互換)

一、單項選擇題(每題2分,共20分)

1.在下面選項中,對類的拷貝構(gòu)造函數(shù)的聲明形式是()

A.A::A(&)B.A::A(constA&)C.A::A(A)D.voidA::A(A&a)

2.下面關(guān)于成員函數(shù)特征的描述中,錯誤的是()

A.成員函數(shù)不可以設(shè)置參數(shù)的默認(rèn)值B.成員函數(shù)可以重載

C.成員函數(shù)可以是內(nèi)聯(lián)函數(shù)D.成員函數(shù)可以是靜態(tài)的

3.下面關(guān)于類模板敘述不正確的是()

A.可以有多個構(gòu)造函數(shù)B.類模板是模板類的實例

C.一個類模板可以用來實例化多個模板類D.類模板可以有多個參數(shù)

4.要使一個類成為抽象類,這個類應(yīng)具有的條件是()

A.至少有一個純虛函數(shù)B.至少有一個虛函數(shù)

C.只含有一個純虛函數(shù)D.只含有一個虛函數(shù)

5.有關(guān)運算符重載正確的描述是()

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

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

C.C++語言允許在重載運算符時改變運算符的結(jié)合性

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

6.下列說法正確的是()。

A.一個類的對象可以是另一個類的成員

B.一個類可以作為另一個類的派生類

C.一個類可以在另一個類定義體進(jìn)行定義

D.以上說法均正確

7.有如下程序:

#include<iostream.h>

classBASE{

charc;

public:

BASE(charn):c(n){)

virtuaPBASE(){cout?c;}

);

classDERIVED:publicBASE

(

charc;

public:

DERIVED(charn):BASE(n+1),c(n){}

"DERIVED(){cout?c;}

);

intmain()

(

DERIVED。X');

return0;

)

執(zhí)行上面的程序?qū)⑤敵?)o

8-類MyClass的定義A)XB)YXC)XYD)Y

如下:

classMyClass

{public:

MyClass(){value=0;}

SetValue(inti){value=i;}

private:

intvalue;

);

則對語句:MyClass*p,my;p=&my;正確的描述是()。

A.語句p=&my;是把對象my賦值給指針變量p;

B.語句MyClass*p,my;會調(diào)用兩次類MyClass的構(gòu)造函數(shù)

C.對語句*p.SetValue(5)的調(diào)用是正確的

D.語句p->SetValue(5)與my.SetValue(5)等價

9.下列各類函數(shù)中,不是類的成員函數(shù)。

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

10.派生類的對象對它的基類成員中是可以訪問的。

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

C.公有繼承的保護(hù)成員D.私有繼承的公有成員

二、填空題(每空2分,共30分)

1.定義內(nèi)聯(lián)函數(shù)所用的關(guān)鍵字,定義友元所用的關(guān)鍵字

為。

2.當(dāng)一個派生類具有多個基類時,這種繼承方式稱為。

3.通過一個構(gòu)造函數(shù)調(diào)用虛函數(shù)時,C++系統(tǒng)對該調(diào)用采用聯(lián)編。

4.任何類中允許有、、三種訪問控制類

型的成員,數(shù)據(jù)成員和成員函數(shù)的默認(rèn)類型為o

5.只有在繼承的情況下,基類和派生類之間才有賦值兼容性規(guī)則。

6.C++標(biāo)準(zhǔn)庫中的異常層次的根類定義在庫的頭文件

中。

7.運算符重載使用的兩種方式是和o

8.C++支持面向?qū)ο蟪绦蛟O(shè)計的四個要素是:抽象性、、

和。

一、單項選擇題(每題2分,共20分)

1.B2.A3.B4.A5.D6.D7.C8.D9.C

10.A

二、填空題(每空2分,共30分)

9.inlinefriend

10.多重繼承

11.靜態(tài)

12.privateprotectedpublic(三者位置可以互換)

private

13.公有

14.exception.h

15.成員函數(shù)友元函數(shù)(二者位置可互換)

多態(tài)性繼承性封裝性(三者位置可互換)

一、單項選擇題(每題2分,共20分)

1.下面有關(guān)構(gòu)造函數(shù)和new運算符關(guān)系正確的說法是()

A.new運算符不調(diào)用構(gòu)造函數(shù)

B.構(gòu)造函數(shù)一定調(diào)用new運算符

C.當(dāng)生成新類的實例時,先調(diào)用new運算符,再調(diào)用構(gòu)造函數(shù)進(jìn)行初始化

D.當(dāng)new運算符動態(tài)產(chǎn)生類的對象時,new運算符也自動調(diào)用構(gòu)造函數(shù)

2.下面有關(guān)類性質(zhì)的說法錯誤的是()

A.一個類可以有多個構(gòu)造函數(shù),但只有一個析構(gòu)函數(shù)

B.析構(gòu)函數(shù)和構(gòu)造函數(shù)都不能有返回類型

C.不能給析構(gòu)函數(shù)指定參數(shù)

D.一個類中不可以聲明具有類類型的數(shù)據(jù)成員

3.下面關(guān)于友元函數(shù)描述正確的是()

A.友元函數(shù)是類的成員

B.友元函數(shù)在類的外部聲明

C.友元函數(shù)在類中聲明

D.友元函數(shù)能夠派生

4.下面敘述正確的是()

A.派生類不可以使用私用派生

B.保護(hù)派生時,基類的保護(hù)成員在派生類中是公有的

C.對基類成員的訪問允許二義性

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

5.有關(guān)運算符重載正確的描述是()

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

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

C.C++語言允許在重載運算符時改變運算符的結(jié)合性

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

6.下面描述中,表達(dá)錯誤的是()

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

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

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

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

7.拷貝構(gòu)造函數(shù)的參數(shù)是()

A.某個對象名B.某個對象的成員名

C.某個對象的引用名D.某個對象的指針名

8.下列關(guān)于構(gòu)造函數(shù)的描述中,錯誤的是()

A.構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù)B.構(gòu)造函數(shù)在定義類對象時自動執(zhí)行

C.構(gòu)造函數(shù)可以是內(nèi)聯(lián)函數(shù)D.構(gòu)造函數(shù)不可以重載

9.數(shù)組作為函數(shù)的形參時,把數(shù)組名作為實參,傳遞給函數(shù)的是()

A.該數(shù)組的首地址B.該數(shù)組的元素個數(shù)

C.該數(shù)組中的各元素值D.該數(shù)組的大小

10.通過一個析構(gòu)函數(shù)調(diào)用虛函數(shù)時,C++系統(tǒng)對該調(diào)用采用()。

A.動態(tài)聯(lián)編B.靜態(tài)聯(lián)編C.不確定是哪種聯(lián)編D.函數(shù)重載

二、填空題(每空2分,共30分)

1.成員名限定的符號是,它可以在引用成員時避免。

2.只有在繼承的情況下,基類和派生類之間才有賦值兼容性規(guī)則。

3.模板分為模板和模板。

4.在用class定義一個類時,數(shù)據(jù)成員和成員函數(shù)的默認(rèn)訪問權(quán)限

是°

5.已知intDBL(intn){returnn+n;}和longDBL(longn){returnn+n;}是一

個函數(shù)模板的兩個實例,則該函數(shù)模板的定義是。(要求寫出函數(shù)

模板的完整定義)

6.靜態(tài)數(shù)據(jù)成員必須在進(jìn)行初始化。

7.含有純虛函數(shù)的類稱為。

8.若Queue是一個類,aQueue是它的一個對象,而且該類中定義了一一個靜態(tài)成

員函數(shù)showO則在類外對該成員的函數(shù)進(jìn)行調(diào)用的方式可以為

和O

9.定義內(nèi)聯(lián)函數(shù)所用的關(guān)鍵字為,定義友元所用的關(guān)鍵字

為。

10.使用成員函數(shù)重載運算符時,若運算符是二元的,則參數(shù)表中有個

操作數(shù),此時作為此運算符的左操作數(shù)。

一、單項選擇題(每題2分,共20分)

1.D2.D3.C4.D5.D

6.B7.C8.D9.A10.B

二、填空題(每空2分,共30分)

1.::二義性2.公有3.類函數(shù)4.private

5.templateVclassT>TDBL(Tn){returnn+n;}6.類外7.抽象

8.aQueue.show()Queue::show。9.inlinefriend10.__1

當(dāng)前對象

一、單項選擇題(每題2分,共20分)

1.下面有關(guān)重載函數(shù)的說法中正確的是()

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

B.重載函數(shù)形參個數(shù)必須不同;

C.重載函數(shù)必須有不同的形參列表

D.重載函數(shù)名可以不同;

2.使用string類建立對象的不正確方式是()。

A.stringstr("OK");B.stringstr="OK";

C.stringstr;D.stringstr='OK';

3.面關(guān)于C++中類的繼承與派生的說法錯誤的是()

A.基類的protected成員在公有派生類的成員函數(shù)中可以直接使用

B.基類的protected成員在私有派生類的成員函數(shù)中可以直接使用

C.私有派生時,基類的所有成員訪問權(quán)限在派生類中保持不變

D.繼承可以分為單一繼承與多重繼承

4.面向?qū)ο蟪绦蛟O(shè)計將數(shù)據(jù)與()放在一起,做為一個相互依存、不可分

割的整體來處理。

A.對數(shù)據(jù)的操作B.信息C.數(shù)據(jù)隱藏D.數(shù)據(jù)抽象

5.一個類的析構(gòu)函數(shù)。

A.唯一的B.允許重載C.至多可有兩個D.只能是缺省的

6.下列各類函數(shù)中,()不是類的成員函數(shù)。

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

7.在下面選項中,對類的拷貝構(gòu)造函數(shù)的聲明形式是()

A.A::A(&)B.A::A(constA&)C.A::A(A)D.voidA::A(A&a)

8.下面關(guān)于靜態(tài)成員描述正確的是()

A.靜態(tài)成員是對象的數(shù)據(jù)成員

B.靜態(tài)成員是對象的成員

C.靜態(tài)成員是對象的成員函數(shù)

D.靜態(tài)成員不是對象的成員

9.下面關(guān)于關(guān)于成員函數(shù)特征的描述中,錯誤的是()

A.成員函數(shù)不可以設(shè)置參數(shù)的默認(rèn)值

B.成員函數(shù)可以重載

C.成員函數(shù)可以是內(nèi)聯(lián)函數(shù)

D.成員函數(shù)可以是靜態(tài)的

10.下面敘述正確的是()

A.基類的保護(hù)成員在派生類中仍然是保護(hù)的

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

C.基類的私有成員在派生類中是私有的

D.從基類派生時,可以有3種派生方法

一、單項選擇題(每題2分,共20分)

1.C2.D3.C4.A5.A

6.C7.B8.B9.A10.D

1.classbase{

inta;

public:

intb;intf(inti,intj);

);

classderive:base{

intc;

public:

intbase::b;

base::f(inti,intj);

);

[1]__________________________

[2]__________________________

2.ttinclude<iostream.h>

classA{

public:

voidA(inti=0){m=i;}

voidshow(){cout<<m;}

void~A(){}

private:

intm;};

voidmainO

{Aa(5);

a.m+=10;

a.show();

)

[3]_________________________

[4]_________________________

[5]_________________________

3.#include<iostream>

usingnamespacestd;

classbase{inta;

staticintb;

public:

base(intm,intn):a(m),b(n){)

staticintgeta(){returna;}

staticintgetb(){returnb;}

voidshow(){cout?geta()?w,w?getb()?endl;}

);

base::intb=45;

voidmain(){}

[6]_______________________

[7]_______________________

⑻______________________

[1]intbase::b;___________

⑵base::f(inti,intj);

[1]base::b;(或訪問聲明僅僅調(diào)整名字的訪問,不可為它說明任何類型)

[2]base::f;(或訪問聲明不應(yīng)說明函數(shù)參數(shù))

[3]void

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論