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

下載本文檔

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

文檔簡介

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

選項中只有

一個選項是符合題目要求的,請將其代碼填在題后的括號內(nèi)o錯選或未選均無分。

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

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.0B.1C.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,z,ios::appIios::binary);的功能是建立流對象f,

試圖打開文

件SALARY.DAT并與之連接,并且()

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

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

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

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

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

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

B.內(nèi)聯(lián)函數(shù)在編譯時是將該函數(shù)的目標代碼插入每個調(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.公有繼承的保護成員D.公有繼承的公有成員

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

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

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

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

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

10.對于類定義

classA{

public:virtualvoidfuncl(){}

voidfunc2(){}

);

classB:publicA{

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

virtualvoidfunc2(){cout<<"classBfunc2"?end1;}

);

下面正確的敘述是()

A.A::func2(M-IB::funcl()都是虛函數(shù)

B.A::func2(^HB::funcl()都不是虛函數(shù)

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

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

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

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

答案寫在每

小題的橫線處。錯填或不填均無分。

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

其進行初始

化。

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

13.表達式cout?endl還可表示為。

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

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

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

不能被

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

明。

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

this指針。

19.在C++中,訪問一個對象的成員所用的運算符是,訪問一個指針所

指向的對象

的成員所用的運算符是o

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

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

l.D2.B3.B4.A5.A

6.A7.B8.D9.C10.C

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

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

11.無參

12.單一(或單)

13.cout?'\n'(或cout?'\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.公有繼承的保護成員D.私有繼承的公有成員

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

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

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

3.如果類A被說明成類B的友元,貝U()0

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

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

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

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

Sinclude

classBase

{public:

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

);

classDerived:publicBase

{voidfun()

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

cout<</zI)erived::funz\<ENDL;

);

A.fun();B.Base,fun0;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ù)時不能指定()。

A.參數(shù)B.訪問權(quán)限

C.操作D.標識符

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

A.參數(shù)類型B.參數(shù)名字

C.操作內(nèi)容D.賦值

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

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

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

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

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

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

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

10.語句ofstreamf("SALARY.DAT",ios::app|ios::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ù)

對其進行初始化。

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

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

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

都源自根類類。

6.在下面橫線處填上適當字句,完成類中成員函數(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.無參(缺省或默認均可)

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

數(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ù)的默認值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.一個類可以在另一個類定義體進行定義

D.以上說法均正確

7.有如下程序:

Sinclude<iostream.h>

classBASE{

charc;

public:

BASE(charn):c(n){}

virtual'BASE(){cout〈〈c;}

);

classDERIVED:publicBASE

charc;

public:

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

"DERIVED(){cout?c;}

);

intmain()

(

DERIVED(*X');

return0;

)

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

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

如下:

classMyClass

{public:

MyClass(){value=O;}

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.公有繼承的保護成員D.私有繼承的公有成員

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

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

為o

2.當一個派生類具有多個基類時,這種繼承方式稱為o

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

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

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

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

6.C++標準庫中的異常層次的根類定義在庫的頭文件

中。

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

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.當生成新類的實例口寸,先調(diào)用new運算符,然后調(diào)用構(gòu)造函數(shù)進行初始

D.當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.保護派生時,基類的保護成員在派生類中是公有的

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

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

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

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

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

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

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

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

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è)置默認參數(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ù)的默認訪問權(quán)限

是o

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

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

模板的完整定義)

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

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

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

員函數(shù)showO則在類外對該成員的函數(shù)進行調(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

當前對象

一、單項選擇題(每題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ù)o

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ù)的默認值

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

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

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

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

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

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);

);

UI______________

[2]______________________

2.#include<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()<<getb()<<endl;}

);

base::intb=45;

voidmainO{}

[6]_______________________

[7]_______________________

[8]_______________________

[1]intbase::b;___________

⑵base::f(inti,intj);

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

型)

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

[3]voidA(inti=0){m=i;}

[4]void~A(){}

[5]a.m+=10;

13]構(gòu)造函數(shù)去掉void(或構(gòu)造函數(shù)不能指定返回值類型)

[4]析構(gòu)函數(shù)去掉void(或析構(gòu)函數(shù)不能指定返回值類型)

[5]對象不能訪問私有成員

[

溫馨提示

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

評論

0/150

提交評論