《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》期末考試試題.doc
《《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》期末考試試題.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》期末考試試題.doc(6頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》考試試題 本試卷滿分100分; 請(qǐng)將答案寫在答題紙上,寫明題號(hào),不必抄題,字跡工整、清晰; 請(qǐng)?jiān)诖痤}紙和試題紙上都寫上你的班級(jí),學(xué)號(hào)和姓名,交卷時(shí)請(qǐng)將試題紙、答題紙和草紙 一并交上來(lái)。 一、 單選題(共10分,每題1分) 1. C++中解決命名沖突的機(jī)制是:D (A) 虛基類 (B) 虛函數(shù) (C) 函數(shù)重載 (D) 名字空間 2. 若類A的一個(gè)對(duì)象所占的內(nèi)存空間中包含虛函數(shù)表的入口地址,則: C (A) 類A不能有靜態(tài)數(shù)據(jù)成員 (B) 類A中公有的成員函數(shù)一定是虛的 (C) 類A中至少有一個(gè)成員函數(shù)是虛的 (D) 類A的析構(gòu)函數(shù)一定是虛的 3.任意一個(gè)類,析構(gòu)函數(shù)的個(gè)數(shù)最多是:B (A) 不限個(gè)數(shù) (B) 1 (C) 2 (D) 3 4. 下列關(guān)于this指針的說(shuō)法,哪個(gè)是正確的: D (A) this指針一定指向常量型數(shù)據(jù) (B) this指向的數(shù)據(jù)不可更改 (C) 靜態(tài)成員函數(shù)中也可以訪問(wèn)this指針 (D) this指針本身可直接作為成員函數(shù)的返回值 5.在類定義中,為說(shuō)明成員的訪問(wèn)權(quán)限,private, protected, public 可以出現(xiàn)次數(shù)為:A (A)次數(shù)沒(méi)有具體限定 (B) 每種至多一次 (C) public 至少一次 (D) 每種至少一次 6.下面哪種定義方式是正確的,并且使得p可以作為函數(shù)void f( A* const pp);的實(shí)參:A (A) A * p = new A; (B) A a; A* p = a; (C) const A* p = new A; (D) A a; const A* p = a; 7. obj是類A的一個(gè)對(duì)象,執(zhí)行語(yǔ)句 const A& aA= obj; ,則下列說(shuō)法正確的是: C (A) 類A的拷貝構(gòu)造函數(shù)會(huì)被調(diào)用 (B) 類A的賦值函數(shù)會(huì)被調(diào)用 (C) &aA的值就是 &obj (D) 語(yǔ)句obj.f( );等價(jià)于語(yǔ)句aA.f( ); 8.下面關(guān)于訪問(wèn)類A的私有數(shù)據(jù)成員的說(shuō)法,錯(cuò)誤的是: C (A) 類A的友元函數(shù)可以訪問(wèn)類A的私有成員。 (B) 類A的友元類中的非靜態(tài)成員函數(shù)可以訪問(wèn)類A的私有成員。 (C) 類A的嵌套類中的非靜態(tài)成員函數(shù)可以訪問(wèn)類A的私有成員。 (D) 類A中的非靜態(tài)成員函數(shù)可以訪問(wèn)類A的私有成員。 9.類A中有唯一的一個(gè)成員函數(shù)f,且f是公有的靜態(tài)或非靜態(tài)成員函數(shù),對(duì)于類A的一個(gè)對(duì)象a,執(zhí)行語(yǔ)句 a.f(100);成功,那么f 的函數(shù)原型不可以是:B (A) A& f( int, int=50 ); (B) void f(int& ) ; (C) const A * f(const int ); (D) A f( const int&); 10. 下面關(guān)于類的成員函數(shù)描述不正確的是:A (A) 靜態(tài)成員函數(shù)內(nèi)可以直接訪問(wèn)類的非靜態(tài)成員數(shù)據(jù) (B) 靜態(tài)成員函數(shù)內(nèi)可以直接訪問(wèn)類的靜態(tài)成員數(shù)據(jù) (C) 非靜態(tài)成員函數(shù)可以直接訪問(wèn)類的非靜態(tài)成員數(shù)據(jù) (D) 非靜態(tài)成員函數(shù)可以直接訪問(wèn)類的靜態(tài)成員數(shù)據(jù)(全局成員) 二、判斷正誤,對(duì)于你認(rèn)為錯(cuò)誤的論述,說(shuō)明原因或舉出反例。(每題2分,共20分) 1. 重載流操作符<<和>> 時(shí),如果第一個(gè)參數(shù)的類型為ostream 和istream,那么這個(gè)重載函數(shù)既可以用于標(biāo)準(zhǔn)輸入輸出流,也可以用于文件流上。 對(duì),ostream 和istream是標(biāo)準(zhǔn)輸入輸出流、文件流、字符串流的基類 2. 在同一個(gè)類中,可以定義重載的成員函數(shù) void f(int);和virtual void f(int); 。 錯(cuò),這屬于重復(fù)定義 3. 抽象類不會(huì)產(chǎn)生實(shí)例,所以不需要有構(gòu)造函數(shù)。 錯(cuò),被派生時(shí)需要它的構(gòu)造函數(shù) 4. 類A有一個(gè)非靜態(tài)的成員函數(shù)f,其函數(shù)原型是:void A::f( ) const,則該函數(shù)被調(diào)用時(shí),一定是通過(guò)類A或類A的某后裔類的一個(gè)用const修飾符說(shuō)明的常量對(duì)象調(diào)用的。 錯(cuò),常函數(shù)可以由變量對(duì)象或常量對(duì)象調(diào)用 5. 異常必須在其產(chǎn)生的當(dāng)前函數(shù)中捕獲,而不能在外層函數(shù)中捕獲該異常。 錯(cuò),可以在外層捕獲,并且這是最常見(jiàn)的用法 6. 只要程序中沒(méi)有A a1 = a2; 和A a1(a2); 形式的代碼,類A的拷貝構(gòu)造函數(shù)就不會(huì)被調(diào)用。 錯(cuò),參數(shù)傳遞或函數(shù)返回時(shí)也調(diào)用拷貝構(gòu)造函數(shù) 7. 在protected繼承方式下,派生類對(duì)象的指針不能直接轉(zhuǎn)換成指向基類對(duì)象的指針。 對(duì),否則基類中的公有成員由不可見(jiàn)變?yōu)榭梢?jiàn),權(quán)限被放大 8. 若靜態(tài)成員函數(shù)中調(diào)用了一個(gè)函數(shù)f,那么f 一定不是虛函數(shù)。 對(duì),靜態(tài)成員函數(shù)不能是虛函數(shù),因?yàn)樘摵瘮?shù)入口需要在保存在對(duì)象中的虛函數(shù) 表中,而靜態(tài)成員函數(shù)不屬于對(duì)象。 9. 若要實(shí)例化一個(gè)含有引用型數(shù)據(jù)成員的類,那么只能使用構(gòu)造函數(shù)初始化列表來(lái)初始化該數(shù)據(jù)成員。 對(duì),沒(méi)有別的辦法 10. 構(gòu)造函數(shù)的函數(shù)體中,不能使用return語(yǔ)句;但在實(shí)現(xiàn)該類的自動(dòng)類型轉(zhuǎn)化函數(shù)時(shí),必須有return 語(yǔ)句。 對(duì) 三、回答下列各題(每題4分,共20分) 1. 舉例說(shuō)明static關(guān)鍵字的用法和相應(yīng)目的(至少3種)。 f(){ static int a;…} 函數(shù)體內(nèi)的靜態(tài)變量,每次調(diào)用該函數(shù)時(shí)值保持不變 static int a; 全局的靜態(tài)變量,約束作用域?yàn)樗谖募? class A {static int a;…}; A的靜態(tài)成員,類似全局變量,需用A::a訪問(wèn) 2. 舉例說(shuō)明類的數(shù)據(jù)成員在哪些情況下必須在初始化列表中進(jìn)行初始化(至少3種)。 基類不提供無(wú)參的構(gòu)造函數(shù) 成員對(duì)象不提供無(wú)參的構(gòu)造函數(shù) 有常量成員或引用成員 3. 舉例說(shuō)明虛擬繼承的作用和目的。 虛擬繼承的目的是使基類在派生類中只保留一個(gè)副本 從而避免二義性 4. 舉例說(shuō)明成員函數(shù)A& f( ) const;和成員函數(shù)A& f( ); 的區(qū)別。 A& f( ) const是常函數(shù),隱含的this指針是常指針,因此在f中不能修改對(duì)象成員的值。 舉例略 5. 有類A的對(duì)象a,任意給出一種解決方案,使得程序支持下面的表達(dá)式: a=10+a; class A { A(int); //轉(zhuǎn)換構(gòu)造函數(shù) friend const A operator+(const A,const A); //重載+ }; 四、指出下列程序代碼中存在的錯(cuò)誤或不足,說(shuō)明原因。(每題5分,共10分) 1. #include- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- C+面向?qū)ο蟪绦蛟O(shè)計(jì) C+ 面向 對(duì)象 程序設(shè)計(jì) 期末考試 試題
鏈接地址:http://www.3dchina-expo.com/p-6613998.html