c++期末考試試卷
《c++期末考試試卷》由會員分享,可在線閱讀,更多相關(guān)《c++期末考試試卷(53頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、模擬題一 一、單項選擇題(本大題共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.0 B.1 C.2 D.3
2、
4.下面函數(shù)模板定義中不正確的是( )
A.template
3、app|ios::binary)?的功能是建立流對象f,試圖打開文件SALARY.DAT 并與之連接,并且( ) A.若文件存在,將文件寫指針定位于文件尾;若文件不存在,建立一個新文件 B.若文件存在,將其置為空文件;若文件不存在,打開失敗 C.若文件存在,將文件寫指針定位于文件首;若文件不存在,建立一個新文件 D.若文件存在,打開失敗;若文件不存在,建立一個新文件 7.下面說法正確的是( ) A.內(nèi)聯(lián)函數(shù)在運(yùn)行時是將該函數(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ù)必
4、須在類體外通過加關(guān)鍵字inline 定義 8.可以用p.a 的形式訪問派生類對象p 的基類成員a,其中a 是( ) A.私有繼承的公有成員 B.公有繼承的私有成員 C.公有繼承的保護(hù)成員 D.公有繼承的公有成員 9.在公有派生情況下,有關(guān)派生類對象和基類對象的關(guān)系,不正確的敘述是( ) A.派生類的對象可以賦給基類的對象 B.派生類的對象可以初始化基類的引用 C.派生類的對象可以直接訪問基類中的成員 D.派生類的對象的地址可以賦給指向基類的指針 10.對于類定義 class A{ public:virtual void func1( ){ } void fu
5、nc2( ){ }
}?
class B:public A{
public:void func1( ){cout<<″class B func 1″< 6、
二、填空題(本大題共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< 7、nst p=″hello″;所定義的指針p 和它所指的內(nèi)容都不能被_________。
17.假定AB 為一個類,則語句AB(AB&x);為該類_________構(gòu)造函數(shù)的原型說明。
18.將關(guān)鍵字const 寫在成員函數(shù)的_________和_________之間時,所修飾的是this 指針。
19.在C++中,訪問一個對象的成員所用的運(yùn)算符是_________,訪問一個指針?biāo)赶虻膶ο蟮某蓡T所用的運(yùn)算符是_________。
20.派生類從一個或多個以前定義的該類的____
模擬題一參考答案
一、單項選擇題(本大題共10 小題,每小題2 分,共20 分)
1. 8、D 2.B 3.B 4.A 5.A
6.A 7.B 8.D 9.C 10.C
第二部分非選擇題(共80 分)
二、填空題(本大題共10 小題,每小題2 分,共20 分)
11.無參
12.單一(或單)
13.cout<<′\n′(或cout<<′\12′,或cout<<′\xA′,或其它等價形式)
14.訪問控制(或其它等價形式)
15.編譯時的(或靜態(tài),或操作重載)
運(yùn)行時的(或動態(tài),或虛函數(shù))
16.改變(或重新賦值)
17.復(fù)制初始化(或拷貝)
18.函數(shù)頭(或參數(shù)表) 函數(shù)體
19.成員選擇運(yùn)算符(或“.”) 成員訪問運(yùn)算符(或“>”)
20.基類
9、
模擬題二
一、單項選擇題(每題2分,共20分)
1. 派生類對象可訪問基類中的什么成員(? ???)
A.公有繼承的公有成員??????B.公有繼承的私有成員???
C.公有繼承的保護(hù)成員??????D.私有繼承的公有成員
2. 定義析構(gòu)函數(shù)時,應(yīng)該注意(?? ??)。???
A.其名與類名完全相同???????B.返回類型是void類型???
C.無形參,也不可重載?????? D.函數(shù)體中必須有delete語句
3. 如果類A被說明成類B的友元,則( ???)。???
A.類A的成員即類B的成員??? B.類B的成員即類A的成員? 10、??
C.類A的成員函數(shù)不得訪問類B的成員?D.類B不一定是類A的友元?
4. 應(yīng)在下列程序劃線處填入的正確語句是( )
#include
class?Base
{? public:
void?fun(){cout<<"Base::fun"< 11、e.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ù)時不能指定(??? ?)。
???A. 參數(shù)?????B. 訪問權(quán)限?? C. 操作????D. 標(biāo)識符??
7. 在派生類中重新定義虛函數(shù)時必須在(??? ?)方面與基類保持一致。???
A. 參數(shù)類型????B. 參數(shù)名字? C. 操 12、作內(nèi)容???D. 賦值
8. 下面關(guān)于C++中類的繼承與派生的說法錯誤的是( )。
A.基類的protected成員在公有派生類的成員函數(shù)中可以直接使用
B.基類的protected成員在私有派生類的成員函數(shù)中可以直接使用
C.公有派生時,基類的所有成員訪問權(quán)限在派生類中保持不變
D.基類的protected成員在保護(hù)派生類的成員函數(shù)中可以直接使用
9. 重載賦值操作符時,應(yīng)聲明為(?? ??)函數(shù)。???
A. 友元??????B. 虛?? C. 成員??????D. 多態(tài)
10. 語句?ofstream?f(″SALARY.DAT″, 13、ios::app|ios::binary);?的功能是建立流對象?f,試圖打開文件?SALARY.DAT?并與之連接,并且?( ?)?
A.?若文件存在,將文件寫指針定位于文件尾;若文件不存在,建立一個新文件?
B.?若文件存在,將其置為空文件;若文件不存在,打開失敗?
C.?若文件存在,將文件寫指針定位于文件首;若文件不存在,建立一個新文件
D.?若文件存在,打開失??;若文件不存在,建立一個新文件?
二、填空題(每空2分,共30分)
1. 假定?AB?為一個類,則語句?AB(AB&x)?;為該類?_________?構(gòu)造函數(shù)的原型說明。
14、
2. C++?支持的兩種多態(tài)性分別是?_________?多態(tài)性和?_________?多態(tài)性。
3. 定義類的動態(tài)對象數(shù)組時,系統(tǒng)只能夠自動調(diào)用該類的?_________?構(gòu)造函數(shù)對其進(jìn)行初始化。
4. 運(yùn)算符重載時,其函數(shù)名由 構(gòu)成。成員函數(shù)重載雙目運(yùn)算符時,左操作數(shù)是 ,右操作數(shù)是 。
5. C++標(biāo)準(zhǔn)庫中的異常層次的根類為 類;MFC類庫中絕大多數(shù)類都源自根類 類。
6. 在下面橫線處填上適當(dāng)字句,完成類中成員函數(shù)的定義。?
15、class?A{?
int?*?a;?
public:?
A(int?aa=0)?{?
a=_________; //?用?aa?初始化?a?所指向的動態(tài)對象?
}?
~?A(){_________;}//?釋放動態(tài)存儲空間?
};?
7.C++支持面向?qū)ο蟪绦蛟O(shè)計的四個要素是:封裝性、繼承性、 和 。
8.模板分為 模板和 模板。
模擬題二參考答案
一、單項選擇題(每題2分,共20分)
1.A 2. C 3. D 4. C 5. A 6. A 7. A 8 16、. C 9. C 10. A
二、填空題(每空2分,共30分)
1. 拷貝或復(fù)制
2. 運(yùn)行(時) 編譯(時)(二者位置可互換)(或改為靜態(tài)和動態(tài)也可)
3. 無參(缺省或默認(rèn)均可)
4. operator運(yùn)算符(運(yùn)算符可寫為@,若沒寫扣1分) (當(dāng)前)對象 函數(shù)的形參(參數(shù))
5. exception(若e寫為大寫字母則扣0.5分,單詞稍微寫錯扣0.5分) CObject(字母CO為大寫字母,寫為小寫各扣0.5分)
6. new int(aa) delete a(有new、delete各給1分,int給0.5分)
7. 抽象性 多態(tài)性(二者位置可互換)
8. 17、 類 函數(shù)(二者位置可互換)
模擬題三
一、單項選擇題(每題2分,共20分)
1. 在下面選項中,對類的拷貝構(gòu)造函數(shù)的聲明形式是( )
A. A::A(&) B. A::A(constA&) C. A::A(A) D. void A::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ù) 18、 B. 類模板是模板類的實例
C. 一個類模板可以用來實例化多個模板類 D. 類模板可以有多個參數(shù)
4. 要使一個類成為抽象類,這個類應(yīng)具有的條件是( )
A.至少有一個純虛函數(shù)? B. 至少有一個虛函數(shù)
C. 只含有一個純虛函數(shù) ?D.?只含有一個虛函數(shù)
5. 有關(guān)運(yùn)算符重載正確的描述是( )
A. C++語言允許在重載運(yùn)算符時改變運(yùn)算符的操作個數(shù)
B. C++語言允許在重載運(yùn)算符時改變運(yùn)算符的優(yōu)先級
C. C++語言允許在重載運(yùn)算符時改變運(yùn)算符的結(jié)合性
D. C++語言允許在重載運(yùn)算符時改變運(yùn)算符的原來的 19、功能
6. 下列說法正確的是( )。
A. 一個類的對象可以是另一個類的成員
B. 一個類可以作為另一個類的派生類
C. 一個類可以在另一個類定義體進(jìn)行定義
D. 以上說法均正確
7. 有如下程序:
#include 20、+1),c(n){}
~DERIVED(){cout< 21、lass *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. 公有繼 22、承的私有成員
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)類型為 。
5. 只有在 23、 繼承的情況下,基類和派生類之間才有賦值兼容性規(guī)則。
6. C++標(biāo)準(zhǔn)庫中的異常層次的根類定義在庫的頭文件 中。
7. 運(yùn)算符重載使用的兩種方式是 和 。
8. C++支持面向?qū)ο蟪绦蛟O(shè)計的四個要素是:抽象性、 、 和 。
模擬題三參考答案
一、單項選擇題(每題2分,共20分)
1.B 2. A 3. B 4. A 5. D 6. D 7. C 8. D 9. C 10. A
二、填空題( 24、每空2分,共30分)
9. inline friend
10. 多重繼承
11. 靜態(tài)
12. private protected public(三者位置可以互換) private
13. 公有
14. exception.h
15. 成員函數(shù) 友元函數(shù)(二者位置可互換)
多態(tài)性 繼承性 封裝性(三者位置可互換)
模擬題四
一、單項選擇題(每題2分,共20分)
1. 下面有關(guān)構(gòu)造函數(shù)和new運(yùn)算符關(guān)系正確的說法是( )
A.new運(yùn)算符不調(diào)用構(gòu)造函數(shù)
B. 構(gòu)造函數(shù)一定調(diào)用new運(yùn)算符
C.當(dāng)生成新類的實例時,先調(diào)用new運(yùn)算符 25、,再調(diào)用構(gòu)造函數(shù)進(jìn)行初始化
D. 當(dāng)new運(yùn)算符動態(tài)產(chǎn)生類的對象時,new運(yùn)算符也自動調(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ù)成員在派生類中是公有 26、的
C. 對基類成員的訪問允許二義性
D. 賦值兼容規(guī)則也適用于多重繼承的組合
5. 有關(guān)運(yùn)算符重載正確的描述是( )
A. C++語言允許在重載運(yùn)算符時改變運(yùn)算符的操作個數(shù)
B. C++語言允許在重載運(yùn)算符時改變運(yùn)算符的優(yōu)先級
C. C++語言允許在重載運(yùn)算符時改變運(yùn)算符的結(jié)合性
D. C++語言允許在重載運(yùn)算符時改變運(yùn)算符的原來的功能
6. 下面描述中,表達(dá)錯誤的是( )
A. 公有繼承時基類中的public成員在派生類中仍是public的
B. 公有繼承是基類中的private成員在派生類中仍是private的
C. 公有繼承時基類中的protec 27、ted成員在派生類中仍是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ù)
28、
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. 已知i 29、nt DBL(int n){return n+n;}和long DBL(long n){return n+n;}是一個函數(shù)模板的兩個實例,則該函數(shù)模板的定義是 。(要求寫出函數(shù)模板的完整定義)
6. 靜態(tài)數(shù)據(jù)成員必須在 進(jìn)行初始化。
7. 含有純虛函數(shù)的類稱為 。
8. 若Queue是一個類,aQueue是它的一個對象,而且該類中定義了一個靜態(tài)成員函數(shù)show()則在類外對該成員的函數(shù)進(jìn)行調(diào)用的方式可以為 和 。
9. 定義內(nèi)聯(lián)函數(shù)所用的關(guān)鍵字為 ,定義友元所用的關(guān)鍵字為 30、 。
10. 使用成員函數(shù)重載運(yùn)算符時,若運(yùn)算符是二元的,則參數(shù)表中有 個操作數(shù),此時 作為此運(yùn)算符的左操作數(shù)。
模擬題四參考答案
一、單項選擇題(每題2分,共20分)
1. D 2. D 3. C 4. D 5. D
6. B 7. C 8. D 9. A 10. B
二、填空題(每空2分,共30分)
1. :: 二義性 2. 公有 3. 類 函數(shù) 4. private
5. templat 31、e 32、的不正確方式是()。
A. string str(“OK”); B. string str=”O(jiān)K”;
C. string str; D. string str=’OK’;
3. 面關(guān)于C++中類的繼承與派生的說法錯誤的是( )
A.基類的protected成員在公有派生類的成員函數(shù)中可以直接使用
B.基類的protected成員在私有派生類的成員函數(shù)中可以直接使用
C.私有派生時,基類的所有成員訪問權(quán)限在派生類中保持不變
D.繼承可以分為單一繼承與多重繼承
4. 面向?qū)ο蟪绦蛟O(shè)計將數(shù)據(jù)與( )放在一起,做為一個相互依存、不可分割的整體來 33、處理。
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. void A::A(A&a)
8. 下面關(guān)于靜態(tài)成員描述正確的是( )
A. 靜態(tài) 34、成員是對象的數(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種派生方法
二、改錯題,指出程序中的錯誤并改正之。
1. class base {
int a; 35、
public:
int b;int f(int i,int j);
};
class derive:base{
int c;
public:
int base::b;
base::f(int i,int j);
};
[1]
[2]
2. #include 36、ivate:
int m; };
void main()
{ A a(5);
a.m+=10;
a.show();
}
[3]
[4]
[5]
3. #include 37、n a;}
static int getb(){return b;}
void show(){cout< 38、8. B 9. A 10. D
二、改錯題,指出程序中的錯誤并改正之。
[1] int base::b;
[2] base::f(int i,int j);
[1] base::b; (或訪問聲明僅僅調(diào)整名字的訪問,不可為它說明任何類型)
[2] base::f; (或訪問聲明不應(yīng)說明函數(shù)參數(shù))
[3] void A(int i=0){m=i;}
[4] void ~A(){}
[5] a.m+=10;
[3] 構(gòu)造函數(shù)去掉void(或構(gòu)造函數(shù)不能指定返回值類型)
[4] 析構(gòu)函數(shù)去掉void(或析構(gòu)函 39、數(shù)不能指定返回值類型)
[5] 對象不能訪問私有成員
[6] base(int m,int n):a(m),b(n){}
[7] static int geta(){return a;}
[8] base::int b=45;
[6] 不能通過構(gòu)造函數(shù)初始化靜態(tài)數(shù)據(jù)成員(只要把b(n)去掉即可)
[7] 靜態(tài)成員函數(shù)中不能引用非靜態(tài)成員數(shù)據(jù)成員(或去掉static)
[8] int base::b = 45;
三、改錯題,指出程序中的錯誤并改正之。
1. Template 40、T-2*x;
retrun y;
}
[1]
[2]
2. class base
{ public: f(); f(int a); f(char *p);
};
class derive:base
{ public:
void f(int s); base::f;
};
[3]
}
3. #include 41、lic:
void setA(int);
void showA();
private:
int a;
};
class B
{ public:
void setB(int);
void showB();
private:
int b;
};
class C : public A, private B
{ public:
void setC(int, int, int);
void showC();
private:
42、 int c;
};
void A::setA(int x)
{ a=x; }
void B::setB(int x)
{ b=x; }
void C::setC(int x, int y, int z)
{
a=x;
b=y;
setA(x);
setB(y);
c=z;
[1] Template 43、;
[8] return 0;
[1] 改為template 44、 ,成員函數(shù)的 實現(xiàn) 部分可以寫在類外。
2.如果需要在被調(diào)函數(shù)運(yùn)行期間,改變主調(diào)函數(shù)中實參變量的值,則函數(shù)的形參應(yīng)該是 引用 類型或 指針 類型。
3. 抽象 類只能作為基類使用,而不能聲明它的對象。
4.進(jìn)行函數(shù)重載時,被重載的同名函數(shù)如果都沒有用const修飾,則它們的形參 個數(shù) 或 類型 必須不同。
5.函數(shù)的遞歸調(diào)用是指函數(shù)直接或間接地調(diào)用 自身 。
6.拷貝構(gòu)造函數(shù)的形參必須是 本類對象的引用 。
二、閱讀下列程序,寫出其運(yùn)行時的輸出結(jié)果
如果程序運(yùn)行時會出現(xiàn) 45、錯誤,請簡要描述錯誤原因。
1.請在以下兩題中任選一題,該題得分即為本小題得分。如兩題都答,則取兩題得分之平均值為本小題得分。
(1)程序:
25
#include 46、cout< 47、erived1(m-1)
{ n=m; }
void output(void)
{ cout< 48、t b){i=a,j=b;}
~Samp()
{ cout<<"Destroying.."<
49、 cout<<"Muti["< 50、
#include 51、
int& Vector::Elem(int ndx)
{
if(ndx<0||ndx>=size)
{
cout<<"error in index"< 52、
Vector::~Vector(void)
{
delete[] buffer;
}
int main()
{
Vector a(10);
Vector b(a);
a.Set();
b.Display();
}
運(yùn)行結(jié)果:
1
2
3
4
5
6
7
8
9
10
最后出現(xiàn)錯誤信息,原因是:聲明對象b是進(jìn)行的是淺拷貝,b與a共用同一個buffer,程序結(jié)束前調(diào)用析構(gòu)函數(shù)時對同一內(nèi)存區(qū)進(jìn)行了兩次釋放。
(2)程序:
#include 53、
CAT();
// CAT(const CAT&);
~CAT();
int GetAge(){ return *itsAge; }
void SetAge( int age )
{ *itsAge=age; }
protected:
int * itsAge;
};
CAT::CAT()
{
itsAge=new int;
*itsAge=5;
}
CAT::~CAT()
{
delete itsAge;
itsAge=NULL;
}
void main()
{
CAT a;
cout<< 54、"a's age:"< 55、s age:6
b's age:6
a's age:7
b's age:7
最后出現(xiàn)錯誤信息,原因是:聲明對象b是進(jìn)行的是淺拷貝,b與a共用同一個buffer,程序結(jié)束前調(diào)用析構(gòu)函數(shù)時對同一內(nèi)存區(qū)進(jìn)行了兩次釋放。
《C++面向?qū)ο蟪绦蛟O(shè)計》模擬試題二
一、單項選擇題(本大題共10小題,每小題2分,共20分)
1.說明內(nèi)聯(lián)函數(shù)的關(guān)鍵字是( )。
A. inline B. virtual C. define D. static
2.假定CAb為一個類,則執(zhí)行CAb oX;語句時將自動調(diào)用該類的( )
A. 有參構(gòu)造函數(shù) B. 無 56、參構(gòu)造函數(shù)
C. 拷貝構(gòu)造函數(shù) D. 賦值重載函數(shù)
3.cin是某個類的標(biāo)準(zhǔn)對象的引用,該類是( )。
A. ostream B. istream C. stdout D. stdin
4.下面的哪個保留字不能作為函數(shù)的返回類型?( )
A. void B. int C. new D. long
5.不能參與重載的運(yùn)算符是( )。
A. 類 B. 函數(shù) C. 函數(shù)模板 D. 運(yùn)算符
6.由于數(shù)據(jù)隱藏的需要,靜態(tài)數(shù)據(jù) 57、成員通常被說明為( )。
A. 私有的 B. 公有的 C. 保護(hù)的 D. 不可訪問的
7.編譯時多態(tài)性使用什么獲得?( )
A. 重載函數(shù) B. 繼承 C. 虛函數(shù) D. B和C
8.拷貝構(gòu)造函數(shù)的參數(shù)通常是( )。
A. 無特殊要求 B. 指向?qū)ο蟮闹羔?
C. 自已類對象的常引用 D. 對象
9.C++有幾種聯(lián)編?( )
A. 1種 B. 2種 C. 3種 D. 4種
10.基類和派生類可以分別稱為( )。
A. 58、“大類”和“小類” B. “父類”和“子類”
C. “小類”和“大類” D. “子類”和“父類”
二、判斷正誤題(本大題共5小題,每小題2分,共10分)判斷正誤,在題后的括號內(nèi),正確的劃上“√”錯誤的劃上“×”。
1.不可以定義抽象類的對象。 ( )
2.內(nèi)聯(lián)函數(shù)的定義必須出現(xiàn)在第一次調(diào)用內(nèi)聯(lián)函數(shù)之前。 ( )
3.模板函數(shù)與函數(shù)模板的意義完全相同。 ( )
4.只有常成員函數(shù)才可以操作常對象。 ( )
5.引用可以不初始化。 ( )
三、填空題(本 59、大題共5小題,每小題2分,共10分)
1.設(shè)函數(shù)max是由函數(shù)模板實現(xiàn)的,并且max(3.5, 5)和max(3, 5)都是正確的函數(shù)調(diào)用,則此函數(shù)模板具有( )個類型參數(shù)。
2.在C++中,函數(shù)重載與虛函數(shù)幫助實現(xiàn)了類的( )性。
3.由static修飾的數(shù)據(jù)成員為該類的所有對象( )。
4.重載函數(shù)在參數(shù)類型或參數(shù)個數(shù)上不同,但( )相同。
5.使用new建立的動態(tài)對象在不用時必須用( )釋放所占用的空間。
四、程序分析 60、題(本大題共4小題,每小題5分,共20分)給出下面各程序的輸出結(jié)果。
1.閱讀下面程序,寫出輸出結(jié)果。
#include 61、 }
int GetPositionY() const
{
return m_iPositionY;
}
void SetPositionX(int iPositionX)
{
m_iPositionX = iPositionX;
}
void SetPositionY(int iPositionY)
{
m_iPositionY = iPositionY;
}
private:
int m_iPositionX; // X坐標(biāo)
int m_iPositionY; // X坐標(biāo)
};
int 62、 main(void)
{
CPosition oPostion1;
const CPosition oPostion2(6, 8);
cout << oPostion1.GetPositionX() << endl;
oPostion1.SetPositionX(16);
cout << oPostion1.GetPositionX() << endl;
oPostion1.SetPositionY(18);
cout << oPostion1.GetPositionY() << endl;
cout << oPostion2.GetPosition 63、X() << endl;
cout << oPostion2.GetPositionY() << endl;
return 0;
}
上面程序的輸出結(jié)果為:
2.閱讀下面程序,寫出輸出結(jié)果。
#include 64、int() const
{
for (int i = 0; i < m_iSize; i++)
{
cout << m_pArray[i] << " ";
}
}
private:
Type *m_pArray;
int m_iSize;
};
int main(void)
{
int a[] = {1, 0, 8};
double b[] = {1.6, 1.8};
CTest 65、zeof(b) / sizeof(double));
oTest2.Print();
cout << endl;
return 0;
}
上面程序的輸出結(jié)果為:
3.閱讀下面程序,寫出輸出結(jié)果。
#include 66、ds(const CGoods &oGood)
{
m_iWeight = oGood.m_iWeight;
m_iTotalWeight = m_iTotalWeight + m_iWeight;
}
~CGoods()
{
m_iTotalWeight = m_iTotalWeight - m_iWeight;
}
void Print() const;
static int GetTotalWeight()
{
return m_iTotalWeight;
}
private:
int m_iWeight;
static int m_iTotalWeight;
};
int CGoods::m_iTotalWeight = 8; // 初始化靜態(tài)數(shù)據(jù)成員
void CGoods::Print() const
{
cout << this->m_iWeight << " " << this->m_iTotalWeight << " ";
}
int main(v
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)2圖形與幾何第7課時圖形的位置練習(xí)課件新人教版
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)2圖形與幾何第1課時圖形的認(rèn)識與測量1平面圖形的認(rèn)識練習(xí)課件新人教版
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)1數(shù)與代數(shù)第10課時比和比例2作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊4比例1比例的意義和基本性質(zhì)第3課時解比例練習(xí)課件新人教版
- 2023年六年級數(shù)學(xué)下冊3圓柱與圓錐1圓柱第7課時圓柱的體積3作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊3圓柱與圓錐1圓柱第1節(jié)圓柱的認(rèn)識作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊2百分?jǐn)?shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊1負(fù)數(shù)第1課時負(fù)數(shù)的初步認(rèn)識作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)上冊期末復(fù)習(xí)考前模擬期末模擬訓(xùn)練二作業(yè)課件蘇教版
- 2023年六年級數(shù)學(xué)上冊期末豐收園作業(yè)課件蘇教版
- 2023年六年級數(shù)學(xué)上冊易錯清單十二課件新人教版
- 標(biāo)準(zhǔn)工時講義
- 2021年一年級語文上冊第六單元知識要點(diǎn)習(xí)題課件新人教版
- 2022春一年級語文下冊課文5識字測評習(xí)題課件新人教版
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)4數(shù)學(xué)思考第1課時數(shù)學(xué)思考1練習(xí)課件新人教版