c++期末考試試卷

上傳人:少*** 文檔編號(hào):52056034 上傳時(shí)間:2022-02-07 格式:DOC 頁數(shù):53 大?。?31KB
收藏 版權(quán)申訴 舉報(bào) 下載
c++期末考試試卷_第1頁
第1頁 / 共53頁
c++期末考試試卷_第2頁
第2頁 / 共53頁
c++期末考試試卷_第3頁
第3頁 / 共53頁

下載文檔到電腦,查找使用更方便

16 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《c++期末考試試卷》由會(huì)員分享,可在線閱讀,更多相關(guān)《c++期末考試試卷(53頁珍藏版)》請?jiān)谘b配圖網(wǎ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++程序中,對象之間的相互通信通過( ) 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 B.template QF(Qx){ QF(Qx){ return Q+x? return x+x? } } C.template D.template 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::

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)識(shí)符?? 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)先級(jí) 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 class BASE{ char c; public: BASE(char n):c(n){} virtual~BASE(){cout<

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)先級(jí) 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.成員名限定的符號(hào)是 ,它可以在引用成員時(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 T DBL(T n){return n+n;} 6. 類外 7. 抽象類 8. aQueue.show() Queue::show() 9. inline friend 10. 1 當(dāng)前對象 模擬題五 一、單項(xiàng)選擇題(每題2分,共20分) 1. 下面有關(guān)重載函數(shù)的說法中正確的是( ) A.重載函數(shù)必須具有不同的返回值類型;   B.重載函數(shù)形參個(gè)數(shù)必須不同;   C.重載函數(shù)必須有不同的形參列表   D.重載函數(shù)名可以不同; 2. 使用string類建立對象

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 class A{ public: void A(int i=0){m=i;} void show(){cout<

36、ivate: int m; }; void main() { A a(5); a.m+=10; a.show(); } [3] [4] [5] 3. #include using namespace std; class base{ int a; static int b; public: base(int m,int n):a(m),b(n){} static int geta(){retur

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 T fun(T x) { T y; y=

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 class A { pub

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 [2] y=T-2*x; [3] base::f; [4] a=x; [5] b=y; [6] obj.setB(6); [7] obj.showB()

43、; [8] return 0; [1] 改為template [2] T不能用作-的操作數(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ù)的 原型

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 #include class Base { private: char msg[30]; protected: int n; public: Base(char s[],int m=0):n(m) { strcpy(msg,s); } void output(void) {

46、cout<

47、erived1(m-1) { n=m; } void output(void) { cout< class Samp {public: void Setij(int a,in

48、t b){i=a,j=b;} ~Samp() { cout<<"Destroying.."<

49、 cout<<"Muti["<

50、 #include #include class Vector { public: Vector(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 int[size=s]; }

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 class CAT { public:

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分)判斷正誤,在題后的括號(hào)內(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 using namespace std; class CPosition { public: CPosition(int iPositionX = 0, int iPositionY = 0):m_iPositionX(iPositionX) { m_iPositionY = iPositionY; } int GetPositionX() const { return m_iPositionX;

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 using namespace std; template class CTest { public: CTest(Type m_tArray[], int iSize):m_pArray(m_tArray) { m_iSize = iSize; } void Pr

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 oTest1(a, 3); oTest1.Print(); CTest oTest2(b, si

65、zeof(b) / sizeof(double)); oTest2.Print(); cout << endl; return 0; } 上面程序的輸出結(jié)果為: 3.閱讀下面程序,寫出輸出結(jié)果。 #include using namespace std; class CGoods { public: CGoods(int iWeight) { m_iWeight = iWeight; m_iTotalWeight = m_iTotalWeight + iWeight; } CGoo

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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲