版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐ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.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.是一個類的成員函數(shù)與另一個類的關(guān)系 D.提高程序的運行效率6.語句ofstream f(SALARY.DAT,ios:appios:binary)的功能是建立流對象f,試圖打開文件SALARY.DAT 并與之連接,并且( )A.若文件存在,將文件寫指針定位于文件尾;若文件不存在,建立一個新文
3、件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.公有繼承的保護成員 D.公有繼承的公有成員9.在公有派
4、生情況下,有關(guān)派生類對象和基類對象的關(guān)系,不正確的敘述是( )A.派生類的對象可以賦給基類的對象B.派生類的對象可以初始化基類的引用C.派生類的對象可以直接訪問基類中的成員D.派生類的對象的地址可以賦給指向基類的指針10.對于類定義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 分)不寫解答過程,將正確的答案寫在每小題的橫線處。錯填或不填均無分。11.定義類的動態(tài)對象數(shù)組時,系統(tǒng)只能夠自動調(diào)用該類的_構(gòu)造函數(shù)對其進行初始化。12.在C+程序設(shè)計中,建立繼承關(guān)系倒掛的樹應(yīng)使用_繼承。13.表達式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 為一個類,則語句AB(AB&x);為該類_構(gòu)造函數(shù)的原型說明。18.將關(guān)鍵字const 寫在成員函數(shù)的_和_之間時,所修飾的是this 指針。19.在C+中,訪問一個對象的成員所用的運算符是_,訪問一個指針?biāo)赶虻膶ο蟮某蓡T所用的運算符是_。20.派生類從一個或多個以前定義的該類的_模擬題一參考答案一、單項選擇題(本大題共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,或其它等價形式)14.訪問控制(或其它等價形式)15.編譯時的(或靜態(tài),或操作重載)運行時的(或動態(tài),或虛函數(shù))16.改變(或重新賦值)17.復(fù)制初始化(或拷貝)18.函數(shù)頭(或參數(shù)表) 函數(shù)體19.成員選擇運算符(或“.”) 成員訪問運算符(或“>”)20.基類模擬題二一、單項選擇題(每題2分,共20分)
8、1. 派生類對象可訪問基類中的什么成員( )A.公有繼承的公有成員 B.公有繼承的私有成員 C.公有繼承的保護成員 D.私有繼承的公有成員2. 定義析構(gòu)函數(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è)計
11、將數(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ù)時必須在( )方
12、面與基類保持一致。 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)聲明為( )
13、函數(shù)。 A. 友元 B. 虛 C. 成員 D. 多態(tài)10. 語句 ofstream f(SALARY.DAT,ios:appios:binary); 的功能是建立流對象 f,試圖打開文件 SALARY.DAT 并與之連接,并且 ( ) A. 若文件存在,將文件寫指針定位于文件尾;若文件不存在,建
14、立一個新文件 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ù)組時,系
15、統(tǒng)只能夠自動調(diào)用該類的 _ 構(gòu)造函數(shù)對其進行初始化。4. 運算符重載時,其函數(shù)名由 構(gòu)成。成員函數(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 所指向的動態(tài)對象
16、; A()_;/ 釋放動態(tài)存儲空間 ; 7C+支持面向?qū)ο蟪绦蛟O(shè)計的四個要素是:封裝性、繼承性、 和 。8模板分為 模板和 模板。模擬題二參考答案一、單項選擇題(每題2分,共20分)1A2. C3. D4. C5. A6. A7. A8. C9. C10. A二、填空題(每空2分,共30分)1. 拷貝或復(fù)制2. 運行(時) 編譯(時)(二者位置可互換)(或改為靜態(tài)和動態(tài)也可)3. 無參(缺省或默認均可)4. operator運算符(運算符可寫為,若沒寫扣1分) (當(dāng)前)對象 函數(shù)的形參(參數(shù))5. exception(若e寫為大寫字母
17、則扣0.5分,單詞稍微寫錯扣0.5分)CObject(字母CO為大寫字母,寫為小寫各扣0.5分)6. new int(aa)delete a(有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. void A:A(A&a)2. 下面關(guān)于成員函數(shù)特征的描述中,錯誤的是( )A成員函數(shù)不可以設(shè)置參數(shù)的默認值 B成員函數(shù)可以重載C成員函數(shù)可
18、以是內(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+語言允許在重載運算符時改變
19、運算符的原來的功能6. 下列說法正確的是( )。A. 一個類的對象可以是另一個類的成員B. 一個類可以作為另一個類的派生類C. 一個類可以在另一個類定義體進行定義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;則對語句:MyClass *p,my;p=&my;正確的描述是( )。A. 語句p=&my;是把對象my賦值給指針變量p;B. 語句MyClass *p,my;會調(diào)用兩次類MyClass的構(gòu)造函數(shù)C. 對
21、語句*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)鍵字為 。2. 當(dāng)一個派生類具有多個基類時,這種繼承方式稱為_ _。3. 通過一個構(gòu)造函數(shù)調(diào)用虛函數(shù)時,C+系統(tǒng)對該調(diào)用采
22、用 聯(lián)編。4. 任何類中允許有 、 、 三種訪問控制類型的成員,數(shù)據(jù)成員和成員函數(shù)的默認類型為 。5. 只有在 繼承的情況下,基類和派生類之間才有賦值兼容性規(guī)則。6. C+標(biāo)準(zhǔn)庫中的異常層次的根類定義在庫的頭文件 中。7. 運算符重載使用的兩種方式是 和 。8. C+支持面向?qū)ο蟪绦蛟O(shè)計的四個要素是:抽象性、 、 和 。模擬題三參考答案一、單項選擇題(每題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)性繼承性封裝性(三者位置可互換)模擬題四一、單項選擇題(每題2分,共20分)1. 下面有關(guān)構(gòu)造函數(shù)和new運算符關(guān)系正確的說法是( )Anew運算符不調(diào)用構(gòu)造函數(shù) B. 構(gòu)造函數(shù)一定調(diào)用new運算符C當(dāng)生成新類的實例時,先調(diào)用new運算符,再調(diào)用構(gòu)造函數(shù)進行初始化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ù)指
24、定參數(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+語言允許在重載運算符時改變運算符的原來的功能
25、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ù)不可
26、以重載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)限是 。5. 已知int DBL(int n)return n+n;和long DBL(
27、long n)return n+n;是一個函數(shù)模板的兩個實例,則該函數(shù)模板的定義是 。(要求寫出函數(shù)模板的完整定義)6. 靜態(tài)數(shù)據(jù)成員必須在 進行初始化。7. 含有純虛函數(shù)的類稱為 。8. 若Queue是一個類,aQueue是它的一個對象,而且該類中定義了一個靜態(tài)成員函數(shù)show()則在類外對該成員的函數(shù)進行調(diào)用的方式可以為 和 。9. 定義內(nèi)聯(lián)函數(shù)所用的關(guān)鍵字為 ,定義友元所用的關(guān)鍵字為 。10. 使用成員函數(shù)重載運算符時,若運算符是二元的,則參數(shù)表中有 個操作數(shù),此時 作為此運算符的左操作數(shù)。模擬題四參考答案一、單項選擇題(每題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)前對象 模擬題五 一、單項選擇題(每題2分,共20分)1. 下面有關(guān)重載函數(shù)的說法中正確的是( ) A重載函數(shù)必須具有不同的返回值類型;B重載函數(shù)形參個數(shù)必須不同; C重載函數(shù)必須有不同的形參列表D重載函數(shù)名可以不同; 2. 使用str
29、ing類建立對象的不正確方式是()。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ù)與( )放在一起,做為一個相互依存、不可分割的整體來處理。A. 對數(shù)據(jù)的操作B. 信息C. 數(shù)據(jù)隱藏D.數(shù)據(jù)抽象5. 一
30、個類的析構(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ù)的聲明形式是( )AA:A(&) B. A:A(constA&) C. A:A(A) D. void A: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è)置參
31、數(shù)的默認值 B成員函數(shù)可以重載C成員函數(shù)可以是內(nèi)聯(lián)函數(shù)D成員函數(shù)可以是靜態(tài)的10. 下面敘述正確的是( )A基類的保護成員在派生類中仍然是保護的B基類的公有成員在派生類中仍然是公有的C基類的私有成員在派生類中是私有的D從基類派生時,可以有3種派生方法二、改錯題,指出程序中的錯誤并改正之。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 模擬題五參考答案一、單項選擇題(每題2分,共20分)1 C 2 D 3 C 4 A 5 A 6 C 7 B 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
34、+=10;3 構(gòu)造函數(shù)去掉void(或構(gòu)造函數(shù)不能指定返回值類型)4 析構(gòu)函數(shù)去掉void(或析構(gòu)函數(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<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ù)不能在派生類中進行訪問聲明 4 派生類不能訪問基類A類的私有成員5 派生類不能訪問基類B類的私有成員6 不能訪問B類的公有成員setB 7 不能訪問B類的公有成員showB 8 去掉此語句,或主函數(shù)的返回值void去掉或改為int C+面向?qū)ο蟪绦蛟O(shè)計模擬試題一 一、填空1在類中必須聲明成員函數(shù)的 原型 ,成員函數(shù)的 實現(xiàn) 部分可以寫在類外。2如果需要在被調(diào)函數(shù)運行期間,改變主調(diào)函數(shù)中實參變量的值,則函數(shù)的形參應(yīng)該是 引用 類型或 指針 類型。3 抽象 類只能作為基類使用,而不能聲明它的對象。4進行函數(shù)重載時,被重載的同名函數(shù)如果
38、都沒有用const修飾,則它們的形參 個數(shù) 或 類型 必須不同。5函數(shù)的遞歸調(diào)用是指函數(shù)直接或間接地調(diào)用 自身 。6拷貝構(gòu)造函數(shù)的形參必須是 本類對象的引用 。二、閱讀下列程序,寫出其運行時的輸出結(jié)果 如果程序運行時會出現(xiàn)錯誤,請簡要描述錯誤原因。1請在以下兩題中任選一題,該題得分即為本小題得分。如兩題都答,則取兩題得分之平均值為本小題得分。(1)程序:#include <iostream.h>#include <string.h>class Base private: char msg30; protected: int n; public: Base(char s,
39、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;pu
40、blic: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();運行結(jié)果:1Base Class210Base(2)程序:#include <iostream.h>class Samppublic:void Setij(int a,int b)i=a,j=b;Samp()cout<&
41、lt;"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:"
42、 <<pk.GetMuti()<<endl;deletep;return 0;運行結(jié)果:Muti0 is:0Muti1 is:1Muti2 is:4Muti3 is:9Muti4 is:16Destroying.4Destroying.3Destroying.2Destroying.1Destroying.02請在以下兩題中任選一題,該題得分即為本小題得分。如兩題都答,則取兩題得分之平均值為本小題得分。(1)程序:#include <iostream.h>#include <stdlib.h>class Vector public: Vector
43、(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 Vect
44、or: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();運行結(jié)果:12345678910最后出現(xiàn)錯誤信息,原因是:聲明對象b是進行的是淺拷貝,b與a共用同一個buffer,程序結(jié)束前調(diào)用析構(gòu)函數(shù)時對同一內(nèi)存區(qū)進
45、行了兩次釋放。(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:&q
46、uot;<<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、quot;<<b.GetAge()<<endl;運行結(jié)果:a's age:5a's age:6b's age:6a's age:7b's age:7最后出現(xiàn)錯誤信息,原因是:聲明對象b是進行的是淺拷貝,b與a共用同一個buffer,程序結(jié)束前調(diào)用析構(gòu)函數(shù)時對同一內(nèi)存區(qū)進行了兩次釋放。C+面向?qū)ο蟪绦蛟O(shè)計模擬試題二一、單項選擇題(本大題共10小題,每小題2分,共20分)1說明內(nèi)聯(lián)函數(shù)的關(guān)鍵字是( )。A. inlineB. virtualC. defineD. static2假定CAb為一個類,則執(zhí)行CAb oX;語句時將自動調(diào)用該
48、類的( ) A. 有參構(gòu)造函數(shù) B. 無參構(gòu)造函數(shù) C. 拷貝構(gòu)造函數(shù) D. 賦值重載函數(shù) 3cin是某個類的標(biāo)準(zhǔn)對象的引用,該類是( )。A. ostreamB. istreamC. stdoutD. stdin4下面的哪個保留字不能作為函數(shù)的返回類型?( )A. void B. int C. new D. long5不能參與重載的運算符是( )。A. 類 B. 函數(shù) C. 函數(shù)模板 D. 運算符6由于數(shù)據(jù)隱藏的需要,靜態(tài)數(shù)據(jù)成員通常被說明為( )。A. 私有的 B. 公有的 C. 保護的 D. 不可訪問的7編譯時多態(tài)性使用什么獲得?( )A. 重載函數(shù) B. 繼承 C. 虛函數(shù) D. B和
49、C 8拷貝構(gòu)造函數(shù)的參數(shù)通常是( )。A. 無特殊要求B. 指向?qū)ο蟮闹羔楥. 自已類對象的常引用D. 對象9C+有幾種聯(lián)編?( )A. 1種B. 2種C. 3種D. 4種10基類和派生類可以分別稱為( )。A. “大類”和“小類”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ù)才可以操作常對象。 (
50、 )5引用可以不初始化。 ( )三、填空題(本大題共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)對象在不用時必須用( )釋放所占用的空間。四、程序分析題(本大題共4小題,每小題5分,共20分)給出下面各程序的輸出結(jié)果。1閱讀下面程序,寫出輸出結(jié)果。#include <iostream>u
51、sing 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)容里面會有圖紙預(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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 研學(xué)課程設(shè)計w
- 瑜伽足踝課程設(shè)計
- 線性代數(shù)矩陣課程設(shè)計
- 破解新材料新技術(shù)的技術(shù)難題考核試卷
- 汽輪機在工業(yè)發(fā)電中的優(yōu)勢分析考核試卷
- 墨爾本油畫課程設(shè)計理念
- 電子測量儀器的納米測量技術(shù)考核試卷
- 電子測量儀器的光電測量技術(shù)考核試卷
- 電子商務(wù)平臺運營策略考核試卷
- 2024年度廣西壯族自治區(qū)國家保安員資格考試題庫檢測試卷A卷附答案
- 《弘揚教育家精神》專題課件
- 口腔門診醫(yī)院感染管理標(biāo)準(zhǔn)WST842-2024
- 2024年中考語文(北京卷)真題詳細解讀及評析
- 職業(yè)中專對口升學(xué)復(fù)習(xí)語文基礎(chǔ)知識-5-辨析并修改病句36張講解
- 2024年情趣用品行業(yè)商業(yè)發(fā)展計劃書
- 新能源汽車ISO9001:2015認證產(chǎn)品一致性控制程序
- 重慶市江津區(qū)2023-2024學(xué)年下學(xué)期七年級期末檢測數(shù)學(xué)試卷 (A)
- 中藥附子課件
- DL-T5434-2021電力建設(shè)工程監(jiān)理規(guī)范
- 2024可燃性粉塵除塵系統(tǒng)防爆設(shè)計指南
- 2024年銀行考試-興業(yè)銀行筆試參考題庫含答案
評論
0/150
提交評論