




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、模擬題一一、單項(xiàng)選擇題(本大題共10 小題,每小題2 分,共20 分)在每小題列出的四個(gè)選項(xiàng)中只有一個(gè)選項(xiàng)是符合題目要求的,請將其代碼填在題后的括號(hào)內(nèi)。錯(cuò)選或未選均無分。1.在C+中,函數(shù)原型不能標(biāo)識(shí)( )A.函數(shù)的返回類型 B.函數(shù)參數(shù)的個(gè)數(shù) C.函數(shù)參數(shù)類型 D.函數(shù)的功能2.在C+程序中,對(duì)象之間的相互通信通過( )A.繼承實(shí)現(xiàn) B.調(diào)用成員函數(shù)實(shí)現(xiàn) C.封裝實(shí)現(xiàn) D.函數(shù)重載實(shí)現(xiàn)3.對(duì)于任意一個(gè)類,析構(gòu)函數(shù)的個(gè)數(shù)最多為( )A.0 B.1 C.2 D.34.下面函數(shù)模板定義中不正確的是( )A.template<class Q> B.template<class Q&
2、gt;QF(Qx) QF(Qx)return Q+x return x+x; C.template<class T>D.template<class T>TF(Tx) TF(Tx)return x*x return x>1 5.友元關(guān)系不能( )A.繼承 B.是類與類的關(guān)系C.是一個(gè)類的成員函數(shù)與另一個(gè)類的關(guān)系 D.提高程序的運(yùn)行效率6.語句ofstream f(SALARY.DAT,ios:appios:binary)的功能是建立流對(duì)象f,試圖打開文件SALARY.DAT 并與之連接,并且( )A.若文件存在,將文件寫指針定位于文件尾;若文件不存在,建立一個(gè)新文
3、件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ù)必須在類體外通過加關(guān)鍵字inline 定義8.可以用p.a 的形式訪問派生類對(duì)象p 的基類成員a,其中a 是( )A.私有繼承的公有成員 B.公有繼承的私有成員C.公有繼承的保護(hù)成員 D.公有繼承的公有成員9.在公有派
4、生情況下,有關(guān)派生類對(duì)象和基類對(duì)象的關(guān)系,不正確的敘述是( )A.派生類的對(duì)象可以賦給基類的對(duì)象B.派生類的對(duì)象可以初始化基類的引用C.派生類的對(duì)象可以直接訪問基類中的成員D.派生類的對(duì)象的地址可以賦給指向基類的指針10.對(duì)于類定義class Apublic:virtual void func1( ) void func2( ) class B:public Apublic:void func1( )cout<<class B func 1<<end1virtual void func2( )cout<<class B func 2<<end1下
5、面正確的敘述是( )A. A:func2( )和B:func1( )都是虛函數(shù)B. A:func2( )和B:func1( )都不是虛函數(shù)C. B:func1( )是虛函數(shù),而A:func2( )不是虛函數(shù)D. B:func1( )不是虛函數(shù),而A:func2( )是虛函數(shù)二、填空題(本大題共10 小題,每小題2 分,共20 分)不寫解答過程,將正確的答案寫在每小題的橫線處。錯(cuò)填或不填均無分。11.定義類的動(dòng)態(tài)對(duì)象數(shù)組時(shí),系統(tǒng)只能夠自動(dòng)調(diào)用該類的_構(gòu)造函數(shù)對(duì)其進(jìn)行初始化。12.在C+程序設(shè)計(jì)中,建立繼承關(guān)系倒掛的樹應(yīng)使用_繼承。13.表達(dá)式cout<<end1 還可表示為_。14.
6、基類的公有成員在派生類中的訪問權(quán)限由_決定。15.C+支持的兩種多態(tài)性分別是_多態(tài)性和_多態(tài)性。16.C+中語句const char * const p=hello;所定義的指針p 和它所指的內(nèi)容都不能被_。17.假定AB 為一個(gè)類,則語句AB(AB&x);為該類_構(gòu)造函數(shù)的原型說明。18.將關(guān)鍵字const 寫在成員函數(shù)的_和_之間時(shí),所修飾的是this 指針。19.在C+中,訪問一個(gè)對(duì)象的成員所用的運(yùn)算符是_,訪問一個(gè)指針?biāo)赶虻膶?duì)象的成員所用的運(yùn)算符是_。20.派生類從一個(gè)或多個(gè)以前定義的該類的_模擬題一參考答案一、單項(xiàng)選擇題(本大題共10 小題,每小題2 分,共20 分)1.D
7、 2.B 3.B 4.A 5.A6.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.基類模擬題二一、單項(xiàng)選擇題(每題2分,共20分)
8、1. 派生類對(duì)象可訪問基類中的什么成員( )A.公有繼承的公有成員 B.公有繼承的私有成員 C.公有繼承的保護(hù)成員 D.私有繼承的公有成員2. 定義析構(gòu)函數(shù)時(shí),應(yīng)該注意( )。 A.其名與類名完全相同 B.返回類型
9、是void類型 C.無形參,也不可重載 D.函數(shù)體中必須有delete語句3. 如果類A被說明成類B的友元,則( )。 A.類A的成員即類B的成員 B.類B的成員即類A的成員 C.類A的成員函數(shù)不得訪問類B的成員 D.類B不一定是類A的友元 4. 應(yīng)在下列程序劃線處填入的正確語句是( ) #include class
10、;Base public: void fun()cout<<"Base:fun"<<endl; ; class Derived:public Base void fun() _ / 顯示調(diào)用基類的函數(shù)fun() cout<<"Derived:fun"<<ENDL; ; Afun(); B. Base.fun(); C. Base:fun(); D. Base->fun();5. 面向?qū)ο蟪绦蛟O(shè)計(jì)
11、將數(shù)據(jù)與( )放在一起,做為一個(gè)相互依存、不可分割的整體來處理。 A. 對(duì)數(shù)據(jù)的操作 B. 信息 C. 數(shù)據(jù)隱藏 D. 數(shù)據(jù)抽象6. 在類中聲明轉(zhuǎn)換函數(shù)時(shí)不能指定( )。 A. 參數(shù) B. 訪問權(quán)限 C. 操作 D. 標(biāo)識(shí)符 7. 在派生類中重新定義虛函數(shù)時(shí)必須在( )方
12、面與基類保持一致。 A. 參數(shù)類型 B. 參數(shù)名字 C. 操作內(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)聲明為( )
13、函數(shù)。 A. 友元 B. 虛 C. 成員 D. 多態(tài)10. 語句 ofstream f(SALARY.DAT,ios:appios:binary); 的功能是建立流對(duì)象 f,試圖打開文件 SALARY.DAT 并與之連接,并且 ( ) A. 若文件存在,將文件寫指針定位于文件尾;若文件不存在,建
14、立一個(gè)新文件 B. 若文件存在,將其置為空文件;若文件不存在,打開失敗 C. 若文件存在,將文件寫指針定位于文件首;若文件不存在,建立一個(gè)新文件 D. 若文件存在,打開失?。蝗粑募淮嬖冢⒁粋€(gè)新文件 二、填空題(每空2分,共30分)1. 假定 AB 為一個(gè)類,則語句 AB(AB&x) ;為該類 _ 構(gòu)造函數(shù)的原型說明。2. C+ 支持的兩種多態(tài)性分別是 _ 多態(tài)性和 _ 多態(tài)性。3. 定義類的動(dòng)態(tài)對(duì)象數(shù)組時(shí),系
15、統(tǒng)只能夠自動(dòng)調(diào)用該類的 _ 構(gòu)造函數(shù)對(duì)其進(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ù)的定義。 class A int * a; public: A(int aa=0) a=_; / 用 aa 初始化 a 所指向的動(dòng)態(tài)對(duì)象
16、; A()_;/ 釋放動(dòng)態(tài)存儲(chǔ)空間 ; 7C+支持面向?qū)ο蟪绦蛟O(shè)計(jì)的四個(gè)要素是:封裝性、繼承性、 和 。8模板分為 模板和 模板。模擬題二參考答案一、單項(xiàng)選擇題(每題2分,共20分)1A2. C3. D4. C5. A6. A7. A8. C9. C10. 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)前)對(duì)象 函數(shù)的形參(參數(shù))5. exception(若e寫為大寫字母
17、則扣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. 類函數(shù)(二者位置可互換)模擬題三一、單項(xiàng)選擇題(每題2分,共20分)1. 在下面選項(xiàng)中,對(duì)類的拷貝構(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ù)可
18、以是內(nèi)聯(lián)函數(shù) D成員函數(shù)可以是靜態(tài)的3. 下面關(guān)于類模板敘述不正確的是( ) A可以有多個(gè)構(gòu)造函數(shù) 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)先級(jí)C. C+語言允許在重載運(yùn)算符時(shí)改變運(yùn)算符的結(jié)合性D. C+語言允許在重載運(yùn)算符時(shí)改變
19、運(yùn)算符的原來的功能6. 下列說法正確的是( )。A. 一個(gè)類的對(duì)象可以是另一個(gè)類的成員B. 一個(gè)類可以作為另一個(gè)類的派生類C. 一個(gè)類可以在另一個(gè)類定義體進(jìn)行定義D. 以上說法均正確7. 有如下程序: #include <iostream.h>class BASEchar c; public:BASE(char n):c(n) virtualBASE()cout<<c; ; class DERIVED:public BASE char c; public: DERIVED(char n):BASE(n+1),c(n) DERIVED()cout<<c; ;
20、int main() DERIVED('X'); return 0; 執(zhí)行上面的程序?qū)⑤敵觯?)。A)X B)YX C)XY D)Y8. 類MyClass的定義如下:class MyClass public:MyClass()value=0;SetValue(int i)value=i; private: int value;則對(duì)語句:MyClass *p,my;p=&my;正確的描述是( )。A. 語句p=&my;是把對(duì)象my賦值給指針變量p;B. 語句MyClass *p,my;會(huì)調(diào)用兩次類MyClass的構(gòu)造函數(shù)C. 對(duì)
21、語句*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. 派生類的對(duì)象對(duì)它的基類成員中 是可以訪問的。A. 公有繼承的公有成員 B. 公有繼承的私有成員 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)對(duì)該調(diào)用采
22、用 聯(lián)編。4. 任何類中允許有 、 、 三種訪問控制類型的成員,數(shù)據(jù)成員和成員函數(shù)的默認(rèn)類型為 。5. 只有在 繼承的情況下,基類和派生類之間才有賦值兼容性規(guī)則。6. C+標(biāo)準(zhǔn)庫中的異常層次的根類定義在庫的頭文件 中。7. 運(yùn)算符重載使用的兩種方式是 和 。8. C+支持面向?qū)ο蟪绦蛟O(shè)計(jì)的四個(gè)要素是:抽象性、 、 和 。模擬題三參考答案一、單項(xiàng)選擇題(每題2分,共20分)1B2. A3. B4. A5. D6. D7. C8. D9. C10. A二、填空題(每空2分,共30分)9. inline friend10. 多重繼承11. 靜態(tài)12. privateprotectedpublic(三
23、者位置可以互換)private13. 公有14. exception.h15. 成員函數(shù)友元函數(shù)(二者位置可互換)多態(tài)性繼承性封裝性(三者位置可互換)模擬題四一、單項(xiàng)選擇題(每題2分,共20分)1. 下面有關(guān)構(gòu)造函數(shù)和new運(yùn)算符關(guān)系正確的說法是( )Anew運(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)算符,再調(diào)用構(gòu)造函數(shù)進(jìn)行初始化D. 當(dāng)new運(yùn)算符動(dòng)態(tài)產(chǎn)生類的對(duì)象時(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ù)指
24、定參數(shù)D.一個(gè)類中不可以聲明具有類類型的數(shù)據(jù)成員3. 下面關(guān)于友元函數(shù)描述正確的是( )A友元函數(shù)是類的成員B友元函數(shù)在類的外部聲明C友元函數(shù)在類中聲明D. 友元函數(shù)能夠派生4. 下面敘述正確的是( ) A. 派生類不可以使用私用派生B. 保護(hù)派生時(shí),基類的保護(hù)成員在派生類中是公有的C. 對(duì)基類成員的訪問允許二義性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)先級(jí)C. C+語言允許在重載運(yùn)算符時(shí)改變運(yùn)算符的結(jié)合性D. C+語言允許在重載運(yùn)算符時(shí)改變運(yùn)算符的原來的功能
25、6. 下面描述中,表達(dá)錯(cuò)誤的是( ) A. 公有繼承時(shí)基類中的public成員在派生類中仍是public的 B. 公有繼承是基類中的private成員在派生類中仍是private的 C. 公有繼承時(shí)基類中的protected成員在派生類中仍是protected的D. 私有繼承時(shí)基類中的public成員在派生類中是private的7. 拷貝構(gòu)造函數(shù)的參數(shù)是( )A. 某個(gè)對(duì)象名 B. 某個(gè)對(duì)象的成員名 C. 某個(gè)對(duì)象的引用名 D. 某個(gè)對(duì)象的指針名8. 下列關(guān)于構(gòu)造函數(shù)的描述中,錯(cuò)誤的是( )A構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù) B.構(gòu)造函數(shù)在定義類對(duì)象時(shí)自動(dòng)執(zhí)行C構(gòu)造函數(shù)可以是內(nèi)聯(lián)函數(shù) D.構(gòu)造函數(shù)不可
26、以重載9. 數(shù)組作為函數(shù)的形參時(shí),把數(shù)組名作為實(shí)參,傳遞給函數(shù)的是( )A該數(shù)組的首地址 B該數(shù)組的元素個(gè)數(shù)C該數(shù)組中的各元素值 D該數(shù)組的大小10. 通過一個(gè)析構(gòu)函數(shù)調(diào)用虛函數(shù)時(shí),C+系統(tǒng)對(duì)該調(diào)用采用()。A. 動(dòng)態(tài)聯(lián)編 B. 靜態(tài)聯(lián)編 C. 不確定是哪種聯(lián)編 D.函數(shù)重載二、填空題(每空2分,共30分)1成員名限定的符號(hào)是 ,它可以在引用成員時(shí)避免 。2只有在 繼承的情況下,基類和派生類之間才有賦值兼容性規(guī)則。3. 模板分為 模板和 模板。4. 在用class定義一個(gè)類時(shí),數(shù)據(jù)成員和成員函數(shù)的默認(rèn)訪問權(quán)限是 。5. 已知int DBL(int n)return n+n;和long DBL(
27、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è)對(duì)象,而且該類中定義了一個(gè)靜態(tài)成員函數(shù)show()則在類外對(duì)該成員的函數(shù)進(jìn)行調(diào)用的方式可以為 和 。9. 定義內(nèi)聯(lián)函數(shù)所用的關(guān)鍵字為 ,定義友元所用的關(guān)鍵字為 。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
28、 7 C 8 D 9 A 10 B 二、填空題(每空2分,共30分)1. : 二義性 2. 公有 3. 類 函數(shù) 4. private5. template<class T> T DBL(T n)return n+n; 6. 類外 7. 抽象類 8. aQueue.show() Queue:show() 9. inline friend 10 1 當(dāng)前對(duì)象 模擬題五 一、單項(xiàng)選擇題(每題2分,共20分)1. 下面有關(guān)重載函數(shù)的說法中正確的是( ) A重載函數(shù)必須具有不同的返回值類型;B重載函數(shù)形參個(gè)數(shù)必須不同; C重載函數(shù)必須有不同的形參列表D重載函數(shù)名可以不同; 2. 使用str
29、ing類建立對(duì)象的不正確方式是()。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è)相互依存、不可分割的整體來處理。A. 對(duì)數(shù)據(jù)的操作B. 信息C. 數(shù)據(jù)隱藏D.數(shù)據(jù)抽象5. 一
30、個(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)中,對(duì)類的拷貝構(gòu)造函數(shù)的聲明形式是( )AA:A(&) B. A:A(constA&) C. A:A(A) D. void A:A(A&a)8. 下面關(guān)于靜態(tài)成員描述正確的是( )A. 靜態(tài)成員是對(duì)象的數(shù)據(jù)成員B. 靜態(tài)成員是對(duì)象的成員C. 靜態(tài)成員是對(duì)象的成員函數(shù)D. 靜態(tài)成員不是對(duì)象的成員9. 下面關(guān)于關(guān)于成員函數(shù)特征的描述中,錯(cuò)誤的是( )A成員函數(shù)不可以設(shè)置參
31、數(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;public:int b;int f(int i,int j);class derive:baseint c;public:int base:b; base:f(int i,int j); ; 1 2 2. #include <iostream.h>class
32、 Apublic:void A(int i=0)m=i;void show()cout<<m;void A()private:int m; ;void main()A a(5);a.m+=10;a.show();3 4 5 3. #include<iostream>using namespace std;class base int a;static int b;public:base(int m,int n):a(m),b(n)static int geta()return a;static int getb()return b;void show()cout<
33、<geta()<<”,”<<getb()<<endl;base:int b=45;void main()6 7 8 模擬題五參考答案一、單項(xiàng)選擇題(每題2分,共20分)1 C 2 D 3 C 4 A 5 A 6 C 7 B 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
34、+=10;3 構(gòu)造函數(shù)去掉void(或構(gòu)造函數(shù)不能指定返回值類型)4 析構(gòu)函數(shù)去掉void(或析構(gòu)函數(shù)不能指定返回值類型)5 對(duì)象不能訪問私有成員 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<class T>T fun(T x) T y;y=T-2*x
35、;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 <iostream.h>class A public: 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
36、: void setC(int, int, int); void showC(); private: 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<class T>2 y=T-2*x; 3 base:f;4 a=x;5 b=y;6 obj.setB(6);7 obj.showB();8 return 0;1 改為template<class T> 2 T不能用
37、作-的操作數(shù) 3 派生類中具有與基類同名的函數(shù),則基類中的此函數(shù)不能在派生類中進(jìn)行訪問聲明 4 派生類不能訪問基類A類的私有成員5 派生類不能訪問基類B類的私有成員6 不能訪問B類的公有成員setB 7 不能訪問B類的公有成員showB 8 去掉此語句,或主函數(shù)的返回值void去掉或改為int C+面向?qū)ο蟪绦蛟O(shè)計(jì)模擬試題一 一、填空1在類中必須聲明成員函數(shù)的 原型 ,成員函數(shù)的 實(shí)現(xiàn) 部分可以寫在類外。2如果需要在被調(diào)函數(shù)運(yùn)行期間,改變主調(diào)函數(shù)中實(shí)參變量的值,則函數(shù)的形參應(yīng)該是 引用 類型或 指針 類型。3 抽象 類只能作為基類使用,而不能聲明它的對(duì)象。4進(jìn)行函數(shù)重載時(shí),被重載的同名函數(shù)如果
38、都沒有用const修飾,則它們的形參 個(gè)數(shù) 或 類型 必須不同。5函數(shù)的遞歸調(diào)用是指函數(shù)直接或間接地調(diào)用 自身 。6拷貝構(gòu)造函數(shù)的形參必須是 本類對(duì)象的引用 。二、閱讀下列程序,寫出其運(yùn)行時(shí)的輸出結(jié)果 如果程序運(yùn)行時(shí)會(huì)出現(xiàn)錯(cuò)誤,請簡要描述錯(cuò)誤原因。1請?jiān)谝韵聝深}中任選一題,該題得分即為本小題得分。如兩題都答,則取兩題得分之平均值為本小題得分。(1)程序:67#include <iostream.h>#include <string.h>class Base private: char msg30; protected: int n; public: Base(char
39、s,int m=0):n(m) strcpy(msg,s); void output(void) cout<<n<<endl<<msg<<endl; ;class Derived1:public Baseprivate:int n;public:Derived1(int m=1):Base("Base",m-1) n=m; void output(void) cout<<n<<endl; Base:output();class Derived2:public Derived1private:int n;
40、public:Derived2(int m=2):Derived1(m-1) n=m; void output(void) cout<<n<<endl; Derived1:output();int main()Base B("Base Class",1);Derived2 D;B.output();D.output();運(yùn)行結(jié)果:1Base Class210Base(2)程序:#include <iostream.h>class Samppublic:void Setij(int a,int b)i=a,j=b;Samp()cout<
41、;<"Destroying."<<i<<endl;int GetMuti()return i*j; protected:int i;int j;int main()Samp *p;p=new Samp5;if(!p)cout<<"Allocation errorn"return 1;for(int j=0;j<5;j+)pj.Setij(j,j);for(int k=0;k<5;k+)cout<<"Muti"<<k<<" is:&quo
42、t; <<pk.GetMuti()<<endl;deletep;return 0;運(yùn)行結(jié)果:Muti0 is:0Muti1 is:1Muti2 is:4Muti3 is:9Muti4 is:16Destroying.4Destroying.3Destroying.2Destroying.1Destroying.02請?jiān)谝韵聝深}中任選一題,該題得分即為本小題得分。如兩題都答,則取兩題得分之平均值為本小題得分。(1)程序:#include <iostream.h>#include <stdlib.h>class Vector public: Vect
43、or(int s=100); int& Elem(int ndx); void Display(void); void Set(void); Vector(void); protected: int size; int *buffer;Vector:Vector(int s)buffer=new intsize=s;int& Vector:Elem(int ndx)if(ndx<0|ndx>=size)cout<<"error in index"<<endl;exit(1);return bufferndx;void Ve
44、ctor:Display(void)for(int j=0; j<size; j+)cout<<Elem(j)<<endl;void Vector:Set(void)for(int j=0; j<size; j+)Elem(j)=j+1;Vector:Vector(void)delete buffer;int main()Vector a(10);Vector b(a);a.Set();b.Display();運(yùn)行結(jié)果:12345678910最后出現(xiàn)錯(cuò)誤信息,原因是:聲明對(duì)象b是進(jìn)行的是淺拷貝,b與a共用同一個(gè)buffer,程序結(jié)束前調(diào)用析構(gòu)函數(shù)時(shí)對(duì)同一內(nèi)存
45、區(qū)進(jìn)行了兩次釋放。(2)程序:#include<iostream.h>class CAT public: 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<<"a's age:
46、"<<a.GetAge()<<endl;a.SetAge(6);CAT b(a);cout<<"a's age:"<<a.GetAge()<<endl;cout<<"b's age:"<<b.GetAge()<<endl;a.SetAge(7);cout<<"a's age:"<<a.GetAge()<<endl;cout<<"b's age
47、:"<<b.GetAge()<<endl;運(yùn)行結(jié)果:a's age:5a's age:6b's age:6a's age:7b's age:7最后出現(xiàn)錯(cuò)誤信息,原因是:聲明對(duì)象b是進(jìn)行的是淺拷貝,b與a共用同一個(gè)buffer,程序結(jié)束前調(diào)用析構(gòu)函數(shù)時(shí)對(duì)同一內(nèi)存區(qū)進(jìn)行了兩次釋放。C+面向?qū)ο蟪绦蛟O(shè)計(jì)模擬試題二一、單項(xiàng)選擇題(本大題共10小題,每小題2分,共20分)1說明內(nèi)聯(lián)函數(shù)的關(guān)鍵字是( )。A. inlineB. virtualC. defineD. static2假定CAb為一個(gè)類,則執(zhí)行CAb oX;語句時(shí)將自動(dòng)調(diào)
48、用該類的( ) A. 有參構(gòu)造函數(shù) B. 無參構(gòu)造函數(shù) C. 拷貝構(gòu)造函數(shù) D. 賦值重載函數(shù) 3cin是某個(gè)類的標(biāo)準(zhǔn)對(duì)象的引用,該類是( )。A. ostreamB. istreamC. stdoutD. stdin4下面的哪個(gè)保留字不能作為函數(shù)的返回類型( )A. void B. int C. new D. long5不能參與重載的運(yùn)算符是( )。A. 類 B. 函數(shù) C. 函數(shù)模板 D. 運(yùn)算符6由于數(shù)據(jù)隱藏的需要,靜態(tài)數(shù)據(jù)成員通常被說明為( )。A. 私有的 B. 公有的 C. 保護(hù)的 D. 不可訪問的7編譯時(shí)多態(tài)性使用什么獲得( )A. 重載函數(shù) B. 繼承 C. 虛函數(shù) D. B和
49、C 8拷貝構(gòu)造函數(shù)的參數(shù)通常是( )。A. 無特殊要求B. 指向?qū)ο蟮闹羔楥. 自已類對(duì)象的常引用D. 對(duì)象9C+有幾種聯(lián)編( )A. 1種B. 2種C. 3種D. 4種10基類和派生類可以分別稱為( )。A. “大類”和“小類”B. “父類”和“子類”C. “小類”和“大類”D. “子類”和“父類”二、判斷正誤題(本大題共5小題,每小題2分,共10分)判斷正誤,在題后的括號(hào)內(nèi),正確的劃上“”錯(cuò)誤的劃上“×”。1不可以定義抽象類的對(duì)象。 ( )2內(nèi)聯(lián)函數(shù)的定義必須出現(xiàn)在第一次調(diào)用內(nèi)聯(lián)函數(shù)之前。 ( )3模板函數(shù)與函數(shù)模板的意義完全相同。 ( )4只有常成員函數(shù)才可以操作常對(duì)象。 (
50、)5引用可以不初始化。 ( )三、填空題(本大題共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ù)成員為該類的所有對(duì)象( )。4重載函數(shù)在參數(shù)類型或參數(shù)個(gè)數(shù)上不同,但( )相同。5使用new建立的動(dòng)態(tài)對(duì)象在不用時(shí)必須用( )釋放所占用的空間。四、程序分析題(本大題共4小題,每小題5分,共20分)給出下面各程序的輸出結(jié)果。1閱讀下面程序,寫出輸出結(jié)果。#include <iostream>us
51、ing namespace std;class CPositionpublic:CPosition(int iPositionX = 0, int iPositionY = 0):m_iPositionX(iPositionX)m_iPositionY = iPositionY;int GetPositionX() constreturn m_iPositionX;int GetPositionY() constreturn m_iPositionY;void SetPositionX(int iPositionX)m_iPositionX = iPositionX;void SetPositionY(
溫馨提示
- 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 重慶能源職業(yè)學(xué)院《機(jī)電系統(tǒng)建模與仿真》2023-2024學(xué)年第二學(xué)期期末試卷
- 甘孜職業(yè)學(xué)院《大跨度空間結(jié)構(gòu)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025屆寧夏吳忠市高三上學(xué)期適應(yīng)性考試(一模)歷史試卷
- 2024-2025學(xué)年浙江省六校聯(lián)盟高一上學(xué)期期中聯(lián)考?xì)v史試卷
- 做賬實(shí)操-代理記賬行業(yè)的賬務(wù)處理分錄
- 長春大學(xué)旅游學(xué)院《幼兒舞蹈創(chuàng)編二》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年湖北省新高考聯(lián)考協(xié)作體高一上學(xué)期期中考試歷史試卷
- 濟(jì)南工程職業(yè)技術(shù)學(xué)院《信息安全基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 聊城大學(xué)東昌學(xué)院《病理學(xué)與病理生理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 亳州職業(yè)技術(shù)學(xué)院《數(shù)據(jù)分析與可視化實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 工程施工派工單
- 編紙條 市賽獲獎(jiǎng) 完整版課件
- 玩具公司職位說明書匯編
- 平面設(shè)計(jì)創(chuàng)意與制作課件
- 化學(xué)專業(yè)英語元素周期表
- 新湘版小學(xué)科學(xué)四年級(jí)下冊教案(全冊)
- Q∕SY 06349-2019 油氣輸送管道線路工程施工技術(shù)規(guī)范
- 實(shí)驗(yàn)心理學(xué)課件(周愛保博士版)
- 04 第三章 環(huán)境污染物的生物轉(zhuǎn)運(yùn)和生物轉(zhuǎn)化 -毒物動(dòng)力學(xué)
- 珍愛生命 安全第一 中小學(xué)主題教育班會(huì)
- 殺蟲雙(單)合成反應(yīng)的研究及其工藝條件的優(yōu)化
評(píng)論
0/150
提交評(píng)論