面向?qū)ο蠹夹g(shù)練習(xí)_第1頁
面向?qū)ο蠹夹g(shù)練習(xí)_第2頁
面向?qū)ο蠹夹g(shù)練習(xí)_第3頁
面向?qū)ο蠹夹g(shù)練習(xí)_第4頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、面向?qū)ο蠹夹g(shù) 練習(xí)ffh 面向?qū)ο缶幊?從C到C+ 類 繼承 多態(tài) 操作符重載 模板與標(biāo)準(zhǔn)模板庫面向?qū)ο缶幊叹毩?xí)面向?qū)ο蟪绦蛟O(shè)計(jì)著重于( )的設(shè)計(jì)。A. 對(duì)象 B. 類C. 算法 D. 數(shù)據(jù) 面向?qū)ο蟪绦蛟O(shè)計(jì)中,把對(duì)象的屬性和行為組織在同一個(gè)模塊內(nèi)的機(jī)制叫做( )。A. 抽象 B. 繼承 C. 封裝 D. 多態(tài)在面向?qū)ο蟪绦蛟O(shè)計(jì)中,類通過( )與外界發(fā)生關(guān)系。A. 對(duì)象 B. 類 C. 消息 D. 接口面向?qū)ο蟪绦蛟O(shè)計(jì)中,對(duì)象與對(duì)象之間的通信機(jī)制是()。A. 對(duì)象 B. 類 C. 消息 D. 接口面向?qū)ο蟮某绦蛟O(shè)計(jì)將數(shù)據(jù)結(jié)構(gòu)與( )放在一起,作為一個(gè)相互依存、不可分割的整體來處理。A. 算法

2、B. 信息 C. 數(shù)據(jù)隱藏 D. 數(shù)據(jù)抽象B C D C A 練習(xí)下面( )不是面向?qū)ο笙到y(tǒng)所包含的要素。A. 重載 B. 對(duì)象 C. 類 D. 繼承下面說法正確的是( 多選 )。A. 將數(shù)據(jù)結(jié)構(gòu)和算法置于同一個(gè)函數(shù)內(nèi),即為數(shù)據(jù)封裝 B. 一個(gè)類通過繼承可以獲得另一個(gè)類的特性C. 面向?qū)ο笠蟪绦騿T集中于事物的本質(zhì)特征,用抽象的觀點(diǎn)看待程序D. 同一消息為不同的對(duì)象接受時(shí),產(chǎn)生的行為是一樣的,這稱為一致性下面說法正確的是(多選)。A. 對(duì)象是計(jì)算機(jī)內(nèi)存中的一塊區(qū)域,它可以存放代碼和數(shù)據(jù)B. 對(duì)象實(shí)際是功能相對(duì)獨(dú)立的一段程序C. 各個(gè)對(duì)象間的數(shù)據(jù)可以共享是對(duì)象的一大優(yōu)點(diǎn)D. 在面向?qū)ο蟮某绦蛑校?/p>

3、對(duì)象之間只能通過消息相互通信A BC AD練習(xí)判斷題 在高級(jí)程序設(shè)計(jì)語言中,一般用類來實(shí)現(xiàn)對(duì)象,類是具有相同屬性和行為的一組對(duì)象的集合,它是創(chuàng)建對(duì)象的模板。 面向?qū)ο蟪绦蛟O(shè)計(jì)中的消息應(yīng)該包含“如何做”的信息。 一個(gè)消息只能產(chǎn)生特定的響應(yīng)效果。 類的設(shè)計(jì)和類的繼承機(jī)制實(shí)現(xiàn)了軟件模塊的可重用性。 學(xué)習(xí)C+語言是學(xué)習(xí)面向?qū)ο蟮某绦蛟O(shè)計(jì)方法的唯一途徑。書p3: 5、6、10、11p5:4、5、6、7、8、9、10p8:2、3P11:6P13:1T F F T F 1.1.4 課后練習(xí)課后練習(xí)5. 通過自頂向下設(shè)計(jì)法進(jìn)行函數(shù)分解時(shí),可能會(huì)出現(xiàn)的串聯(lián)改變現(xiàn)象指的是什么?10. 如果在面向?qū)ο笳Z言中為類Hu

4、man設(shè)計(jì)“年齡”和“性別”屬性,它們的表現(xiàn)形式是什么? 1.3.3 課后練習(xí)課后練習(xí)2. 如果一個(gè)類或?qū)ο笫且粋€(gè)服務(wù)器,什么可以成為客戶?4. 客戶通過什么方式請(qǐng)求類或?qū)ο筇峁┓?wù)? 1.5.3 課后練習(xí)課后練習(xí)10. 為什么說如果一個(gè)組件沒有暴露任何接口就是一個(gè)對(duì)用戶無用的組件?11. 如果組件設(shè)計(jì)良好,使用者需要知道這個(gè)組件是使用什么語言編寫的嗎? 面向?qū)ο缶幊?從C到C+ 類 繼承 多態(tài) 操作符重載 模板與標(biāo)準(zhǔn)模板庫二在整型指針變量p2、p3的定義中,錯(cuò)誤的是( )。A. int p1,*p2,p3; B. int *p2,p1,*p3;C. int p1,*p2=&p1,*p

5、3; D. int *p2,p1,*p3=&p1;若有定義“double xx=3.14,*pp=&xx; ”,則*pp等價(jià)于( )。A. &xxB. *xxC. 3.14D. xx下面對(duì)引用的描述中( )是錯(cuò)誤的。A. 引用是某個(gè)變量或?qū)ο蟮膭e名B. 建立引用時(shí),要對(duì)它初始化C. 對(duì)引用初始化可以使用任意類型的變量D. 引用與其代表的對(duì)象具有相同的地址對(duì)重載的函數(shù)來說,下面敘述不正確的是( )。A. 參數(shù)的類型不同B. 參數(shù)的順序不同C. 參數(shù)的個(gè)數(shù)不同D. 參數(shù)的個(gè)數(shù)、類型、順序都相同,但函數(shù)的返回值類型不同A C C D下列有關(guān)設(shè)置函數(shù)參數(shù)默認(rèn)值的描述中,( )是

6、正確的。A. 對(duì)設(shè)置函數(shù)參數(shù)默認(rèn)值的順序沒有任何規(guī)定B. 函數(shù)具有一個(gè)參數(shù)時(shí)不能設(shè)置默認(rèn)值C. 默認(rèn)參數(shù)要設(shè)置在函數(shù)的原型中,而不能設(shè)置在函數(shù)的定義語句中D. 設(shè)置默認(rèn)參數(shù)可使用表達(dá)式,但表達(dá)式中不可用局部變量下面說法正確的是( 多選 )。A. 所有的函數(shù)都可以說明為內(nèi)聯(lián)函數(shù)B. 具有循環(huán)語句、switch語句的函數(shù)不能說明為內(nèi)聯(lián)函數(shù)C. 使用內(nèi)聯(lián)函數(shù),可加快程序執(zhí)行的速度,但會(huì)增加程序代碼的大小D. 使用內(nèi)聯(lián)函數(shù),可以減小程序代碼大小,但使程序執(zhí)行的速度減慢一個(gè)函數(shù)功能不太復(fù)雜,但要求被頻繁調(diào)用,應(yīng)選用( )。A. 內(nèi)聯(lián)函數(shù) B. 重載函數(shù) C. 遞歸函數(shù) D. 嵌套函數(shù)D BC A下面程序

7、的輸出結(jié)果為:#includeusing namespace std;int main()int x=10,&y=x; coutx=x,y=yendl;int *p=&y; *p=100;coutx=x,y=yendl;return 0; x=10,y=10;x=100,y=100。下面程序的輸出結(jié)果為#include using namespace std;int main() int num=50; int& ref=num; ref=ref+10; coutnum=numendl; num=num+40; coutref=refendl; return 0; nu

8、m=60ref=100 2.1.1 課后練習(xí)課后練習(xí)3.解釋錯(cuò)誤:namespace foo void showdate(int,int);/. namespace bar void showdate(int);/. using foo:showdate;showdate(23); 2.4.7 課后練習(xí)課后練習(xí)5. 以下代碼段有什么錯(cuò)誤? (i范圍) 2.5.11 課后練習(xí)課后練習(xí)練習(xí)4到練習(xí)35為代碼正誤判斷,如果代碼有錯(cuò),說明問題所在;如果正確,寫出其輸出,假設(shè)用4 294 967 295代表無窮大。5. string s1=“C+ is great fun”;char s230;s2=s

9、1;couts2endl; 2.8.1 課后練習(xí)課后練習(xí)6. 解釋如下代碼中的錯(cuò)誤:try int *ptr = new int; catch (bad_alloc) cerr關(guān)于成員函數(shù)的說法中不正確的是( )。A. 成員函數(shù)可以無返回值B. 成員函數(shù)可以重載 C. 成員函數(shù)一定是內(nèi)聯(lián)函數(shù) D. 成員函數(shù)可以設(shè)定參數(shù)的默認(rèn)值C B D B C三下面對(duì)構(gòu)造函數(shù)的不正確描述是( )。A. 系統(tǒng)可以提供默認(rèn)的構(gòu)造函數(shù)B. 構(gòu)造函數(shù)可以有參數(shù),所以也可以有返回值C. 構(gòu)造函數(shù)可以重載D. 構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù)假定A是一個(gè)類,那么執(zhí)行語句“A a,b(3),*p; ”調(diào)用了( ) 次構(gòu)造函數(shù)。A.

10、 1 B. 2 C. 3 D. 4下面對(duì)析構(gòu)函數(shù)的正確描述是( )。A. 系統(tǒng)可以提供默認(rèn)的析構(gòu)函數(shù) B. 析構(gòu)函數(shù)必須由用戶定義C. 析構(gòu)函數(shù)沒有參數(shù) D. 析構(gòu)函數(shù)可以設(shè)置默認(rèn)參數(shù)B B AC三類的析構(gòu)函數(shù)是( )時(shí)被調(diào)用的。A. 類創(chuàng)建 B. 創(chuàng)建對(duì)象 C. 引用對(duì)象 D. 釋放對(duì)象創(chuàng)建一個(gè)類的對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用( ); 撤銷對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用( )。A. 成員函數(shù) B. 構(gòu)造函數(shù) C. 析構(gòu)函數(shù) D. 復(fù)制構(gòu)造函數(shù)通??截悩?gòu)造函數(shù)的參數(shù)是( )。A. 某個(gè)對(duì)象名 B. 某個(gè)對(duì)象的成員名C. 某個(gè)對(duì)象的引用名 D. 某個(gè)對(duì)象的指針名關(guān)于this指針的說法正確的是( )。A. this

11、指針必須顯式說明B. 當(dāng)創(chuàng)建一個(gè)對(duì)象后,this指針就指向該對(duì)象C. 成員函數(shù)擁有this指針D. 靜態(tài)成員函數(shù)擁有this指針。D B C C B三下列關(guān)于子對(duì)象的描述中,( )是錯(cuò)誤的。A. 子對(duì)象是類的一種數(shù)據(jù)成員,它是另一個(gè)類的對(duì)象B. 子對(duì)象可以是自身類的對(duì)象C. 對(duì)子對(duì)象的初始化要包含在該類的構(gòu)造函數(shù)中D. 一個(gè)類中能含有多個(gè)子對(duì)象作其成員 對(duì)new運(yùn)算符的下列描述中,( )是錯(cuò)誤的。A. 它可以動(dòng)態(tài)創(chuàng)建對(duì)象和對(duì)象數(shù)組B. 用它創(chuàng)建對(duì)象數(shù)組時(shí)必須指定初始值C. 用它創(chuàng)建對(duì)象時(shí)要調(diào)用構(gòu)造函數(shù)D. 用它創(chuàng)建的對(duì)象數(shù)組可以使用運(yùn)算符delete來一次釋放B B對(duì)delete運(yùn)算符的下列描

12、述中,( )是錯(cuò)誤的。A. 用它可以釋放用new運(yùn)算符創(chuàng)建的對(duì)象和對(duì)象數(shù)組B. 用它釋放一個(gè)對(duì)象時(shí),它作用于一個(gè)new所返回的指針C. 用它釋放一個(gè)對(duì)象數(shù)組時(shí),它作用的指針名前須加下標(biāo)運(yùn)算符 D. 用它可一次釋放用new運(yùn)算符創(chuàng)建的多個(gè)對(duì)象 關(guān)于靜態(tài)數(shù)據(jù)成員,下面敘述不正確的是( )。A. 使用靜態(tài)數(shù)據(jù)成員,實(shí)際上是為了消除全局變量B. 可以使用“對(duì)象名.靜態(tài)成員”或者“類名 靜態(tài)成員”來訪問靜態(tài)數(shù)據(jù)成員C. 靜態(tài)數(shù)據(jù)成員只能在靜態(tài)成員函數(shù)中引用 D. 所有對(duì)象的靜態(tài)數(shù)據(jù)成員占用同一內(nèi)存單元D C對(duì)靜態(tài)數(shù)據(jù)成員的不正確描述是( 多選 )。A. 靜態(tài)成員不屬于對(duì)象,是類的共享成員B. 靜態(tài)數(shù)據(jù)成

13、員要在類外定義和初始化C. 調(diào)用靜態(tài)成員函數(shù)時(shí)要通過類或?qū)ο蠹せ?,所以靜態(tài)成員函數(shù)擁有this指針D. 只有靜態(tài)成員函數(shù)可以操作靜態(tài)數(shù)據(jù)成員 下面的選項(xiàng)中,靜態(tài)成員函數(shù)不能直接訪問的是( )。A. 靜態(tài)數(shù)據(jù)成員 B. 靜態(tài)成員函數(shù) C. 類以外的函數(shù)和數(shù)據(jù) D. 非靜態(tài)數(shù)據(jù)成員CD D A#include using namespace std;class Test private:int num;public:Test(); Test(int n); ;Test Test() coutInit defaendl;num=0; Test Test(int n) coutInit nendl;

14、num=n;int main()Test x2; Test y(15); return 0; Init defaInit defaInit 15#include using namespace std;class Xxprivate:int num;public:Xx(int x)num=x; Xx()cout“x= ”numendl;int main()Xx w(5); coutExit mainendl; return 0;Exit mainx= 5class Bookpublic:Book(int w);static int sumnum;private:int num;Book Boo

15、k(int w)num=w; sumnum - = w;int Book sumnum=120;int main()Book b1(20);Book b2(70);coutBook sumnumendl;return 0; 30 3.1.8 課后練習(xí)課后練習(xí)5. 如果用class作關(guān)鍵字進(jìn)行類聲明,成員在默認(rèn)情況下是私有的還是公有的?7. 是否所有的成員函數(shù)都能夠在類聲明之中進(jìn)行定義?8. 是否所有的成員函數(shù)都能夠在類聲明之外進(jìn)行定義? 3.3.5 課后練習(xí)課后練習(xí)1. 為什么通過引用方式而非傳值方式來傳遞和返回對(duì)象(特殊情況除外)?2. 為什么不能以引用方式返回一個(gè)auto對(duì)象?3. 假設(shè)C

16、是一個(gè)類,f是一個(gè)頂層函數(shù),請(qǐng)解釋如下f的兩種聲明方式有何區(qū)別: void f(c& c) /. void f(const c& c) /.4. 類的設(shè)計(jì)者將一個(gè)成員函數(shù)標(biāo)記為const意味著什么?6. 對(duì)一個(gè)接受字符串參數(shù)的成員函數(shù),為什么通常為其設(shè)計(jì)兩個(gè)重載版本,分別用來處理string類型參數(shù)和const char*類型參數(shù)? 3.4.7 課后練習(xí)課后練習(xí)1. 為什么將TimeStamp類稱為一個(gè)瘦包裝器?2. TimeStamp類是如何實(shí)現(xiàn)信息隱藏的?3. TimeStamp類封裝了哪些功能?4. TimeStamp類對(duì)公有成員函數(shù)set進(jìn)行了重載,這樣,set成員函數(shù)

17、可通過無參數(shù)、單一參數(shù)兩種形式進(jìn)行調(diào)用,總結(jié)set成員函數(shù)的各個(gè)重載版本是如何工作的。5. 為什么將extract設(shè)計(jì)為私有成員函數(shù),而非公有成員函數(shù)?6. 另外編寫一個(gè)測(cè)試程序,檢驗(yàn)TimeStamp類是否實(shí)現(xiàn)了其在聲明中宣稱的所有功能。 3.5.12 課后練習(xí)課后練習(xí)1. 解釋下面代碼中的錯(cuò)誤:class C c ( ); /default constructor /.2. 解釋下面代碼中的錯(cuò)誤:class z void z ( );/default constructor /. 3.5.12 課后練習(xí)課后練習(xí)3. 能否對(duì)類的構(gòu)造函數(shù)進(jìn)行重載?4. 類的構(gòu)造函數(shù)可以是私有的嗎?5. 類的構(gòu)

18、造函數(shù)必須定義在類聲明之外嗎?6. 在如下類聲明中,哪個(gè)構(gòu)造函數(shù)是默認(rèn)構(gòu)造函數(shù)?class c public: c ( ) ; c ( int ) ; /. 3.5.12 課后練習(xí)課后練習(xí)7. 解釋下面代碼中的錯(cuò)誤:class k private: k() ; int main() k k1;return 0; 10. 拷貝構(gòu)造函數(shù)的作用是什么?12. 如類的設(shè)計(jì)者沒有提供拷貝構(gòu)造函數(shù),編譯器是否會(huì)提供一個(gè)?14. 在什么情況下應(yīng)該為類設(shè)計(jì)一個(gè)拷貝構(gòu)造函數(shù)?15. 什么是轉(zhuǎn)型構(gòu)造函數(shù)? 3.7.4 課后練習(xí)課后練習(xí)1. 對(duì)象數(shù)據(jù)成員和類數(shù)據(jù)成員之間有什么區(qū)別?3. 解釋下面代碼段中的錯(cuò)誤: 面

19、向?qū)ο缶幊?從C到C+ 類 繼承 多態(tài) 操作符重載 模板與標(biāo)準(zhǔn)模板庫繼承下面對(duì)派生類的描述中,錯(cuò)誤的是( )。 A一個(gè)派生類可以作為另外一個(gè)派生類的基類 B派生類至少有一個(gè)基類 C派生類的成員除了它自己的成員外,還包含了它的基類的成員 D派生類中繼承的基類成員的訪問權(quán)限到派生類中保持不變當(dāng)保護(hù)繼承時(shí),基類的()在派生類中成為保護(hù)成員,不能通過派生類的對(duì)象來直接訪問。 A任何成員B公有成員和保護(hù)成員 C公有成員和私有成員 D私有成員派生類的對(duì)象對(duì)它的基類成員中( )是可以訪問的。A公有繼承的公有成員;B公有繼承的私有成員;C公有繼承的保護(hù)成員;D私有繼承的公有成員。D B A在公有派生情況下,有

20、關(guān)派生類對(duì)象和基類對(duì)象的關(guān)系,不正確的敘述是( )。 A派生類的對(duì)象可以賦給基類的對(duì)象 B派生類的對(duì)象可以初始化基類的引用 C派生類的對(duì)象可以直接訪問基類中的成員 D派生類的對(duì)象的地址可以賦給指向基類的指針派生類的構(gòu)造函數(shù)的成員初始化列表中,不能包含( )。A基類的構(gòu)造函數(shù);B派生類中對(duì)象成員的初始化;C基類的對(duì)象成員的初始化;D派生類中一般數(shù)據(jù)成員的初始化類O定義了私有函數(shù)F1。P和Q為O的派生類,定義為class P: protected O; class Q: public O。 ( )可以訪問Fl。A O的對(duì)象B P類內(nèi)C O類內(nèi)D Q類內(nèi)C D C有如下類定義:class XA in

21、t x;public: XA(int n) x=n;class XB: public XAint y; public: XB(int a,int b); ;在構(gòu)造函數(shù)XB的下列定義中,正確的是( )。 AXB:XB(int a,int b):x(a),y(b) BXB:XB(int a,int b):XA(a),y(b) CXB:XB(int a,int b):x(a),XB(b) DXB:XB(int a,int b):XA(a),XB(b) B有如下程序:class Baseprivate:void fun1( ) const cout”fun1”;protected:void fun2(

22、 ) const cout”fun2”;public:void fun3( ) const cout”fun3”; ;class Derived : protected Basepublic:void fun4( ) const cout”fun4”; ;int main()Derived obj; obj.fun1( ); / obj.fun2( ); /obj.fun3( ); /obj.fun4( ); /其中沒有語法錯(cuò)誤的語句是( )。A B C DD有如下類定義:class MyBASEint k;public:void set(int n) k=n;int get( ) const return k; ;class MyDERIVED: protected MyBASEprotected:int j;public:void set(int m,int n)MyBASE:set(m);j=n;int get( ) constreturn MyBASE:get( )+j;則類MyDERIVED中保護(hù)成員個(gè)數(shù)是( )。A4 B3 C2 D1B#includeusing namespace std;class A public: A( ) cout”A”; ;class B public:B( ) c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論