c++期末考試試卷
《c++期末考試試卷》由會(huì)員分享,可在線閱讀,更多相關(guān)《c++期末考試試卷(53頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、模擬題一 一、單項(xiàng)選擇題(本大題共10 小題,每小題2 分,共20 分)在每小題列出的四個(gè)選項(xiàng)中只有一個(gè)選項(xiàng)是符合題目要求的,請將其代碼填在題后的括號內(nèi)。錯(cuò)選或未選均無分。 1.在C++中,函數(shù)原型不能標(biāo)識( ) A.函數(shù)的返回類型 B.函數(shù)參數(shù)的個(gè)數(shù) C.函數(shù)參數(shù)類型 D.函數(shù)的功能 2.在C++程序中,對象之間的相互通信通過( ) A.繼承實(shí)現(xiàn) B.調(diào)用成員函數(shù)實(shí)現(xiàn) C.封裝實(shí)現(xiàn) D.函數(shù)重載實(shí)現(xiàn) 3.對于任意一個(gè)類,析構(gòu)函數(shù)的個(gè)數(shù)最多為( ) A.0 B.1 C.2 D.3
2、
4.下面函數(shù)模板定義中不正確的是( )
A.template
3、app|ios::binary)?的功能是建立流對象f,試圖打開文件SALARY.DAT 并與之連接,并且( ) A.若文件存在,將文件寫指針定位于文件尾;若文件不存在,建立一個(gè)新文件 B.若文件存在,將其置為空文件;若文件不存在,打開失敗 C.若文件存在,將文件寫指針定位于文件首;若文件不存在,建立一個(gè)新文件 D.若文件存在,打開失??;若文件不存在,建立一個(gè)新文件 7.下面說法正確的是( ) A.內(nèi)聯(lián)函數(shù)在運(yùn)行時(shí)是將該函數(shù)的目標(biāo)代碼插入每個(gè)調(diào)用該函數(shù)的地方 B.內(nèi)聯(lián)函數(shù)在編譯時(shí)是將該函數(shù)的目標(biāo)代碼插入每個(gè)調(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 分)不寫解答過程,將正確的答案寫在每小題的橫線處。錯(cuò)填或不填均無分。
11.定義類的動(dòng)態(tài)對象數(shù)組時(shí),系統(tǒng)只能夠自動(dòng)調(diào)用該類的_________構(gòu)造函數(shù)對其進(jìn)行初始化。
12.在C++程序設(shè)計(jì)中,建立繼承關(guān)系倒掛的樹應(yīng)使用_________繼承。
13.表達(dá)式cout< 7、nst p=″hello″;所定義的指針p 和它所指的內(nèi)容都不能被_________。
17.假定AB 為一個(gè)類,則語句AB(AB&x);為該類_________構(gòu)造函數(shù)的原型說明。
18.將關(guān)鍵字const 寫在成員函數(shù)的_________和_________之間時(shí),所修飾的是this 指針。
19.在C++中,訪問一個(gè)對象的成員所用的運(yùn)算符是_________,訪問一個(gè)指針?biāo)赶虻膶ο蟮某蓡T所用的運(yùn)算符是_________。
20.派生類從一個(gè)或多個(gè)以前定義的該類的____
模擬題一參考答案
一、單項(xiàng)選擇題(本大題共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′,或其它等價(jià)形式)
14.訪問控制(或其它等價(jià)形式)
15.編譯時(shí)的(或靜態(tài),或操作重載)
運(yùn)行時(shí)的(或動(dòng)態(tài),或虛函數(shù))
16.改變(或重新賦值)
17.復(fù)制初始化(或拷貝)
18.函數(shù)頭(或參數(shù)表) 函數(shù)體
19.成員選擇運(yùn)算符(或“.”) 成員訪問運(yùn)算符(或“>”)
20.基類
9、
模擬題二
一、單項(xiàng)選擇題(每題2分,共20分)
1. 派生類對象可訪問基類中的什么成員(? ???)
A.公有繼承的公有成員??????B.公有繼承的私有成員???
C.公有繼承的保護(hù)成員??????D.私有繼承的公有成員
2. 定義析構(gòu)函數(shù)時(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è)計(jì)將數(shù)據(jù)與(??? ?)放在一起,做為一個(gè)相互依存、不可分割的整體來處理。
A. 對數(shù)據(jù)的操作 B. 信息 C. 數(shù)據(jù)隱藏 D. 數(shù)據(jù)抽象
6. 在類中聲明轉(zhuǎn)換函數(shù)時(shí)不能指定(??? ?)。
???A. 參數(shù)?????B. 訪問權(quán)限?? C. 操作????D. 標(biāo)識符??
7. 在派生類中重新定義虛函數(shù)時(shí)必須在(??? ?)方面與基類保持一致。???
A. 參數(shù)類型????B. 參數(shù)名字? C. 操 12、作內(nèi)容???D. 賦值
8. 下面關(guān)于C++中類的繼承與派生的說法錯(cuò)誤的是( )。
A.基類的protected成員在公有派生類的成員函數(shù)中可以直接使用
B.基類的protected成員在私有派生類的成員函數(shù)中可以直接使用
C.公有派生時(shí),基類的所有成員訪問權(quán)限在派生類中保持不變
D.基類的protected成員在保護(hù)派生類的成員函數(shù)中可以直接使用
9. 重載賦值操作符時(shí),應(yīng)聲明為(?? ??)函數(shù)。???
A. 友元??????B. 虛?? C. 成員??????D. 多態(tài)
10. 語句?ofstream?f(″SALARY.DAT″, 13、ios::app|ios::binary);?的功能是建立流對象?f,試圖打開文件?SALARY.DAT?并與之連接,并且?( ?)?
A.?若文件存在,將文件寫指針定位于文件尾;若文件不存在,建立一個(gè)新文件?
B.?若文件存在,將其置為空文件;若文件不存在,打開失敗?
C.?若文件存在,將文件寫指針定位于文件首;若文件不存在,建立一個(gè)新文件
D.?若文件存在,打開失敗;若文件不存在,建立一個(gè)新文件?
二、填空題(每空2分,共30分)
1. 假定?AB?為一個(gè)類,則語句?AB(AB&x)?;為該類?_________?構(gòu)造函數(shù)的原型說明。
14、
2. C++?支持的兩種多態(tài)性分別是?_________?多態(tài)性和?_________?多態(tài)性。
3. 定義類的動(dòng)態(tài)對象數(shù)組時(shí),系統(tǒng)只能夠自動(dòng)調(diào)用該類的?_________?構(gòu)造函數(shù)對其進(jìn)行初始化。
4. 運(yùn)算符重載時(shí),其函數(shù)名由 構(gòu)成。成員函數(shù)重載雙目運(yùn)算符時(shí),左操作數(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?所指向的動(dòng)態(tài)對象?
}?
~?A(){_________;}//?釋放動(dòng)態(tài)存儲(chǔ)空間?
};?
7.C++支持面向?qū)ο蟪绦蛟O(shè)計(jì)的四個(gè)要素是:封裝性、繼承性、 和 。
8.模板分為 模板和 模板。
模擬題二參考答案
一、單項(xiàng)選擇題(每題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)行(時(shí)) 編譯(時(shí))(二者位置可互換)(或改為靜態(tài)和動(dòng)態(tài)也可)
3. 無參(缺省或默認(rèn)均可)
4. operator運(yùn)算符(運(yùn)算符可寫為@,若沒寫扣1分) (當(dāng)前)對象 函數(shù)的形參(參數(shù))
5. exception(若e寫為大寫字母則扣0.5分,單詞稍微寫錯(cuò)扣0.5分) CObject(字母CO為大寫字母,寫為小寫各扣0.5分)
6. new int(aa) delete a(有new、delete各給1分,int給0.5分)
7. 抽象性 多態(tài)性(二者位置可互換)
8. 17、 類 函數(shù)(二者位置可互換)
模擬題三
一、單項(xiàng)選擇題(每題2分,共20分)
1. 在下面選項(xiàng)中,對類的拷貝構(gòu)造函數(shù)的聲明形式是( )
A. A::A(&) B. A::A(constA&) C. A::A(A) D. void A::A(A&a)
2. 下面關(guān)于成員函數(shù)特征的描述中,錯(cuò)誤的是( )
A.成員函數(shù)不可以設(shè)置參數(shù)的默認(rèn)值 B.成員函數(shù)可以重載
C.成員函數(shù)可以是內(nèi)聯(lián)函數(shù) D.成員函數(shù)可以是靜態(tài)的
3. 下面關(guān)于類模板敘述不正確的是( )
A.可以有多個(gè)構(gòu)造函數(shù) 18、 B. 類模板是模板類的實(shí)例
C. 一個(gè)類模板可以用來實(shí)例化多個(gè)模板類 D. 類模板可以有多個(gè)參數(shù)
4. 要使一個(gè)類成為抽象類,這個(gè)類應(yīng)具有的條件是( )
A.至少有一個(gè)純虛函數(shù)? B. 至少有一個(gè)虛函數(shù)
C. 只含有一個(gè)純虛函數(shù) ?D.?只含有一個(gè)虛函數(shù)
5. 有關(guān)運(yùn)算符重載正確的描述是( )
A. C++語言允許在重載運(yùn)算符時(shí)改變運(yùn)算符的操作個(gè)數(shù)
B. C++語言允許在重載運(yùn)算符時(shí)改變運(yùn)算符的優(yōu)先級
C. C++語言允許在重載運(yùn)算符時(shí)改變運(yùn)算符的結(jié)合性
D. C++語言允許在重載運(yùn)算符時(shí)改變運(yùn)算符的原來的 19、功能
6. 下列說法正確的是( )。
A. 一個(gè)類的對象可以是另一個(gè)類的成員
B. 一個(gè)類可以作為另一個(gè)類的派生類
C. 一個(gè)類可以在另一個(gè)類定義體進(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;會(huì)調(diào)用兩次類MyClass的構(gòu)造函數(shù)
C. 對語句*p.SetValue(5)的調(diào)用是正確的
D. 語句p->SetValue(5)與my.SetValue(5)等價(jià)
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)一個(gè)派生類具有多個(gè)基類時(shí),這種繼承方式稱為_ __。
3. 通過一個(gè)構(gòu)造函數(shù)調(diào)用虛函數(shù)時(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è)計(jì)的四個(gè)要素是:抽象性、 、 和 。
模擬題三參考答案
一、單項(xiàng)選擇題(每題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)性 繼承性 封裝性(三者位置可互換)
模擬題四
一、單項(xiàng)選擇題(每題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)生成新類的實(shí)例時(shí),先調(diào)用new運(yùn)算符 25、,再調(diào)用構(gòu)造函數(shù)進(jìn)行初始化
D. 當(dāng)new運(yùn)算符動(dòng)態(tài)產(chǎn)生類的對象時(shí),new運(yùn)算符也自動(dòng)調(diào)用構(gòu)造函數(shù)
2. 下面有關(guān)類性質(zhì)的說法錯(cuò)誤的是( )
A.一個(gè)類可以有多個(gè)構(gòu)造函數(shù),但只有一個(gè)析構(gòu)函數(shù)
B.析構(gòu)函數(shù)和構(gòu)造函數(shù)都不能有返回類型
C.不能給析構(gòu)函數(shù)指定參數(shù)
D.一個(gè)類中不可以聲明具有類類型的數(shù)據(jù)成員
3. 下面關(guān)于友元函數(shù)描述正確的是( )
A.友元函數(shù)是類的成員
B.友元函數(shù)在類的外部聲明
C.友元函數(shù)在類中聲明
D. 友元函數(shù)能夠派生
4. 下面敘述正確的是( )
A. 派生類不可以使用私用派生
B. 保護(hù)派生時(shí),基類的保護(hù)成員在派生類中是公有 26、的
C. 對基類成員的訪問允許二義性
D. 賦值兼容規(guī)則也適用于多重繼承的組合
5. 有關(guān)運(yùn)算符重載正確的描述是( )
A. C++語言允許在重載運(yùn)算符時(shí)改變運(yùn)算符的操作個(gè)數(shù)
B. C++語言允許在重載運(yùn)算符時(shí)改變運(yùn)算符的優(yōu)先級
C. C++語言允許在重載運(yùn)算符時(shí)改變運(yùn)算符的結(jié)合性
D. C++語言允許在重載運(yùn)算符時(shí)改變運(yùn)算符的原來的功能
6. 下面描述中,表達(dá)錯(cuò)誤的是( )
A. 公有繼承時(shí)基類中的public成員在派生類中仍是public的
B. 公有繼承是基類中的private成員在派生類中仍是private的
C. 公有繼承時(shí)基類中的protec 27、ted成員在派生類中仍是protected的
D. 私有繼承時(shí)基類中的public成員在派生類中是private的
7. 拷貝構(gòu)造函數(shù)的參數(shù)是( )
A. 某個(gè)對象名 B. 某個(gè)對象的成員名
C. 某個(gè)對象的引用名 D. 某個(gè)對象的指針名
8. 下列關(guān)于構(gòu)造函數(shù)的描述中,錯(cuò)誤的是( )
A.構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù) B.構(gòu)造函數(shù)在定義類對象時(shí)自動(dòng)執(zhí)行
C.構(gòu)造函數(shù)可以是內(nèi)聯(lián)函數(shù) D.構(gòu)造函數(shù)不可以重載
9. 數(shù)組作為函數(shù)的形參時(shí),把數(shù)組名作為實(shí)參,傳遞給函數(shù)的是( )
A.該數(shù)組的首地址 B.該數(shù)組的元素個(gè)數(shù)
28、
C.該數(shù)組中的各元素值 D.該數(shù)組的大小
10. 通過一個(gè)析構(gòu)函數(shù)調(diào)用虛函數(shù)時(shí),C++系統(tǒng)對該調(diào)用采用( )。
A. 動(dòng)態(tài)聯(lián)編 B. 靜態(tài)聯(lián)編 C. 不確定是哪種聯(lián)編 D.函數(shù)重載
二、填空題(每空2分,共30分)
1.成員名限定的符號是 ,它可以在引用成員時(shí)避免 。
2.只有在 繼承的情況下,基類和派生類之間才有賦值兼容性規(guī)則。
3. 模板分為 模板和 模板。
4. 在用class定義一個(gè)類時(shí),數(shù)據(jù)成員和成員函數(shù)的默認(rèn)訪問權(quán)限是 。
5. 已知i 29、nt DBL(int n){return n+n;}和long DBL(long n){return n+n;}是一個(gè)函數(shù)模板的兩個(gè)實(shí)例,則該函數(shù)模板的定義是 。(要求寫出函數(shù)模板的完整定義)
6. 靜態(tài)數(shù)據(jù)成員必須在 進(jìn)行初始化。
7. 含有純虛函數(shù)的類稱為 。
8. 若Queue是一個(gè)類,aQueue是它的一個(gè)對象,而且該類中定義了一個(gè)靜態(tài)成員函數(shù)show()則在類外對該成員的函數(shù)進(jìn)行調(diào)用的方式可以為 和 。
9. 定義內(nèi)聯(lián)函數(shù)所用的關(guān)鍵字為 ,定義友元所用的關(guān)鍵字為 30、 。
10. 使用成員函數(shù)重載運(yùn)算符時(shí),若運(yùn)算符是二元的,則參數(shù)表中有 個(gè)操作數(shù),此時(shí) 作為此運(yùn)算符的左操作數(shù)。
模擬題四參考答案
一、單項(xiàng)選擇題(每題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++中類的繼承與派生的說法錯(cuò)誤的是( )
A.基類的protected成員在公有派生類的成員函數(shù)中可以直接使用
B.基類的protected成員在私有派生類的成員函數(shù)中可以直接使用
C.私有派生時(shí),基類的所有成員訪問權(quán)限在派生類中保持不變
D.繼承可以分為單一繼承與多重繼承
4. 面向?qū)ο蟪绦蛟O(shè)計(jì)將數(shù)據(jù)與( )放在一起,做為一個(gè)相互依存、不可分割的整體來 33、處理。
A. 對數(shù)據(jù)的操作 B. 信息 C. 數(shù)據(jù)隱藏 D.數(shù)據(jù)抽象
5. 一個(gè)類的析構(gòu)函數(shù) 。
A.唯一的 B.允許重載 C.至多可有兩個(gè) D.只能是缺省的
6. 下列各類函數(shù)中,( )不是類的成員函數(shù)。
A. 構(gòu)造函數(shù) B. 析構(gòu)函數(shù) C. 友元函數(shù) D. 拷貝構(gòu)造函數(shù)
7. 在下面選項(xiàng)中,對類的拷貝構(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ù)特征的描述中,錯(cuò)誤的是( )
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.從基類派生時(shí),可以有3種派生方法
二、改錯(cuò)題,指出程序中的錯(cuò)誤并改正之。
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
二、改錯(cuò)題,指出程序中的錯(cuò)誤并改正之。
[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;
三、改錯(cuò)題,指出程序中的錯(cuò)誤并改正之。
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ù)的 實(shí)現(xiàn) 部分可以寫在類外。
2.如果需要在被調(diào)函數(shù)運(yùn)行期間,改變主調(diào)函數(shù)中實(shí)參變量的值,則函數(shù)的形參應(yīng)該是 引用 類型或 指針 類型。
3. 抽象 類只能作為基類使用,而不能聲明它的對象。
4.進(jìn)行函數(shù)重載時(shí),被重載的同名函數(shù)如果都沒有用const修飾,則它們的形參 個(gè)數(shù) 或 類型 必須不同。
5.函數(shù)的遞歸調(diào)用是指函數(shù)直接或間接地調(diào)用 自身 。
6.拷貝構(gòu)造函數(shù)的形參必須是 本類對象的引用 。
二、閱讀下列程序,寫出其運(yùn)行時(shí)的輸出結(jié)果
如果程序運(yùn)行時(shí)會(huì)出現(xiàn) 45、錯(cuò)誤,請簡要描述錯(cuò)誤原因。
1.請?jiān)谝韵聝深}中任選一題,該題得分即為本小題得分。如兩題都答,則取兩題得分之平均值為本小題得分。
(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)錯(cuò)誤信息,原因是:聲明對象b是進(jìn)行的是淺拷貝,b與a共用同一個(gè)buffer,程序結(jié)束前調(diào)用析構(gòu)函數(shù)時(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)錯(cuò)誤信息,原因是:聲明對象b是進(jìn)行的是淺拷貝,b與a共用同一個(gè)buffer,程序結(jié)束前調(diào)用析構(gòu)函數(shù)時(shí)對同一內(nèi)存區(qū)進(jìn)行了兩次釋放。
《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》模擬試題二
一、單項(xiàng)選擇題(本大題共10小題,每小題2分,共20分)
1.說明內(nèi)聯(lián)函數(shù)的關(guān)鍵字是( )。
A. inline B. virtual C. define D. static
2.假定CAb為一個(gè)類,則執(zhí)行CAb oX;語句時(shí)將自動(dòng)調(diào)用該類的( )
A. 有參構(gòu)造函數(shù) B. 無 56、參構(gòu)造函數(shù)
C. 拷貝構(gòu)造函數(shù) D. 賦值重載函數(shù)
3.cin是某個(gè)類的標(biāo)準(zhǔn)對象的引用,該類是( )。
A. ostream B. istream C. stdout D. stdin
4.下面的哪個(gè)保留字不能作為函數(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.編譯時(shí)多態(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),正確的劃上“√”錯(cuò)誤的劃上“×”。
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ù)模板實(shí)現(xiàn)的,并且max(3.5, 5)和max(3, 5)都是正確的函數(shù)調(diào)用,則此函數(shù)模板具有( )個(gè)類型參數(shù)。
2.在C++中,函數(shù)重載與虛函數(shù)幫助實(shí)現(xiàn)了類的( )性。
3.由static修飾的數(shù)據(jù)成員為該類的所有對象( )。
4.重載函數(shù)在參數(shù)類型或參數(shù)個(gè)數(shù)上不同,但( )相同。
5.使用new建立的動(dòng)態(tài)對象在不用時(shí)必須用( )釋放所占用的空間。
四、程序分析 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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市教育局冬季運(yùn)動(dòng)會(huì)安全工作預(yù)案
- 2024年秋季《思想道德與法治》大作業(yè)及答案3套試卷
- 2024年教師年度考核表個(gè)人工作總結(jié)(可編輯)
- 2024年xx村兩委涉案資金退還保證書
- 2024年憲法宣傳周活動(dòng)總結(jié)+在機(jī)關(guān)“弘揚(yáng)憲法精神推動(dòng)發(fā)改工作高質(zhì)量發(fā)展”專題宣講報(bào)告會(huì)上的講話
- 2024年XX村合作社年報(bào)總結(jié)
- 2024-2025年秋季第一學(xué)期初中歷史上冊教研組工作總結(jié)
- 2024年小學(xué)高級教師年終工作總結(jié)匯報(bào)
- 2024-2025年秋季第一學(xué)期初中物理上冊教研組工作總結(jié)
- 2024年xx鎮(zhèn)交通年度總結(jié)
- 2024-2025年秋季第一學(xué)期小學(xué)語文教師工作總結(jié)
- 2024年XX村陳規(guī)陋習(xí)整治報(bào)告
- 2025年學(xué)校元旦迎新盛典活動(dòng)策劃方案
- 2024年學(xué)校周邊安全隱患自查報(bào)告
- 2024年XX鎮(zhèn)農(nóng)村規(guī)劃管控述職報(bào)告