面向?qū)ο蟪绦蛟O(shè)計(jì)C復(fù)習(xí)題1_第1頁
面向?qū)ο蟪绦蛟O(shè)計(jì)C復(fù)習(xí)題1_第2頁
面向?qū)ο蟪绦蛟O(shè)計(jì)C復(fù)習(xí)題1_第3頁
面向?qū)ο蟪绦蛟O(shè)計(jì)C復(fù)習(xí)題1_第4頁
面向?qū)ο蟪绦蛟O(shè)計(jì)C復(fù)習(xí)題1_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、一選擇題1對(duì)類的構(gòu)造函數(shù)和析構(gòu)函數(shù)描述正確的是( )。 A. 構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)不能重載 B. 構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)可以重載 C. 構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)也可以重載 D. 構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)也不能重載 2繼承具有( ),即當(dāng)基類本身也是某一個(gè)類派生類時(shí),底層的派生類也會(huì)自動(dòng)繼承間接基類的成員。 A)規(guī)律性 B.傳遞性 C.重復(fù)性 D.多樣性 3假設(shè)OneClass為一個(gè)類,則該類的復(fù)制初始化構(gòu)造函數(shù)的聲明語句為( )。 A.OneClass(OneClass p); B. OneClass& (OneClass p ); C. OneClass(OneClass &

2、p); D. OneClass (OneClass * p); 4對(duì)于結(jié)構(gòu)中定義的成員,其默認(rèn)的訪問權(quán)限為( )。 A.public B. protected C.private D. static 5下面對(duì)靜態(tài)數(shù)據(jù)成員的描述中,不正確的是( )。 A.靜態(tài)數(shù)據(jù)成員可以在類體內(nèi)進(jìn)行初始化 B.靜態(tài)數(shù)據(jù)成員不可以在類體內(nèi)進(jìn)行初始化 C.靜態(tài)數(shù)據(jù)成員能受private控制符的作用 D.靜態(tài)數(shù)據(jù)成員調(diào)用前必須初始 6. C+中的類有兩種用法:一種是類的實(shí)例化,即生成類對(duì)象,并參與系統(tǒng)的運(yùn)行;另一種是通過( )派生了新的類。 A.復(fù)用 B.繼承 C.封裝 D.引用 7. 假定AA為一個(gè)類,a為該類公有

3、的數(shù)據(jù)成員,x為該類的一個(gè)對(duì)象,則訪問x對(duì)象中數(shù)據(jù)成員a的格式為( )。 A. x(a) B. xa C. x-a D. x.a 9. 對(duì)于一個(gè)類的構(gòu)造函數(shù),其函數(shù)名與類名( )。 A. 完全相同 B. 基本相同 C. 不相同 D. 無關(guān)系 10. 一個(gè)類的構(gòu)造函數(shù)通常被定義為該類的( )成員。 A. 公有 B. 保護(hù) C. 私有 D. 友元 11. 一個(gè)類的析構(gòu)函數(shù)通常被定義為該類的( )成員。 A. 私有 B. 保護(hù) C. 公有 D. 友元 12. 一個(gè)類的靜態(tài)數(shù)據(jù)成員所表示屬性 ( )。 A. 是類的或?qū)ο蟮膶傩?B. 只是對(duì)象的屬性 C. 只是類的屬性 D. 類和友元的屬性 13.類的

4、析構(gòu)函數(shù)的作用是( )。 A一般成員函數(shù) B類的初始化 C對(duì)象初始化 D刪除對(duì)象之前的善后工作 14.下列對(duì)基類和派生類關(guān)系的描述中,錯(cuò)誤的是( )。 A派生類是基類的具體化 B派生類是基類的子集 C派生類是基類定義的延續(xù) D派生類是基類的組合 15.下列對(duì)派生類的描述中,錯(cuò)誤的是( )。 A一個(gè)派生類可以作為另一個(gè)派生類的基類 B派生類至少有一個(gè)基類 C派生類的缺省繼承方式是private D派生類只繼承了基類的公有成員和保護(hù)成員 16.下列對(duì)繼承的描述中,錯(cuò)誤的是( )。 A析構(gòu)函數(shù)不能被繼承 B派生類也是基類的組合 C派生類的成員除了它自己的成員外,還包含了它的基類的成員 D派生類中繼承

5、的基類成員的訪問權(quán)限到派生類保持不變 17.派生類的對(duì)象對(duì)它的基類成員中( )是可以訪問的。 A公有繼承的公有成員 B公有繼承的私有成員 C公有繼承的保護(hù)成員 D私有繼承的公有成員 。) 下列說法錯(cuò)誤的是(18. A公有繼承的基類中的public成員在派生類中仍是public的 B公有繼承的基類中的private成員在派生類中仍是private的 C私有繼承的基類中的public成員在派生類中仍是private的 D保護(hù)繼承的基類中的public成員在派生類中仍是protected的 19.下面敘述錯(cuò)誤的是( )。 A基類的protected成員在派生類中仍然是protected B基類的pr

6、otected成員在public派生類中仍然是protected的 C基類的protected成員在private派生類中是private的 D基類的protected成員不能被派生類的對(duì)象訪問 20設(shè)置虛基類的聲明中,正確的是( )。 A.簡(jiǎn)化程序 B.消除二義性 C.提高運(yùn)行效率 D.減少目標(biāo)代碼 21關(guān)于虛函數(shù)的描述中,正確的是()。 A虛函數(shù)是一個(gè)靜態(tài)成員函數(shù) B虛函數(shù)是一個(gè)非成員函數(shù) C虛函數(shù)即可以在函數(shù)說明定義,也可以在函數(shù)實(shí)現(xiàn)時(shí)定義 D派生類的虛函數(shù)與基類中對(duì)應(yīng)的虛函數(shù)具有相同的參數(shù)個(gè)數(shù)和類型 22下列描述中,( )是抽象類的特征。 A可以說明虛函數(shù) B可以進(jìn)行構(gòu)造函數(shù)重載 C可

7、以定義友元函數(shù) D不能說明其對(duì)象 23. 靜態(tài)數(shù)據(jù)成員的初始化是在( )中進(jìn)行的。 A. 構(gòu)造函數(shù) B. 任何成員函數(shù) C. 所屬類 D. 全局區(qū) 24. 當(dāng)將一個(gè)類A或函數(shù)f()說明為另一個(gè)類B的友元后,類A或函數(shù)f()能夠直接訪問類B的( 。) B. 只能是保護(hù)成員 A. 只能是公有成員 D. 具有任何權(quán)限的成員 C. 只能是除私有成員之外的任何成員 )。25. 在重載一個(gè)運(yùn)算符時(shí),其參數(shù)表中沒有任何參數(shù),這表明該運(yùn)算符是( 元運(yùn)算符1元運(yùn)算符 B. 作為成員函數(shù)重載的1 A. 作為友元函數(shù)重載的 D. 2元運(yùn)算符作為成員函數(shù)重載的2元運(yùn)算符 C. 作為友元函數(shù)重載的 26. 關(guān)于運(yùn)算符重

8、載,下列說法正確的是( )。 A. 重載時(shí),運(yùn)算符的優(yōu)先級(jí)可以改變。 B. 重載時(shí),運(yùn)算符的結(jié)合性可以改變。 。 C. 重載時(shí),運(yùn)算符的功能可以改變 重載時(shí),運(yùn)算符的操作數(shù)個(gè)數(shù)可以改變。 D. ( )。27. 從一個(gè)基類派生出的各個(gè)類的對(duì)象之間 A. 共享所有數(shù)據(jù)成員,每個(gè)對(duì)象還包含基類的所有屬性 共享部分?jǐn)?shù)據(jù)成員,每個(gè)對(duì)象還包含基類的所有屬性 B. 不共享任何數(shù)據(jù)成員,但每個(gè)對(duì)象還包含基類的所有屬性 C. D. 共享部分?jǐn)?shù)據(jù)成員和函數(shù)成員 28. C+的繼承性允許派生類繼承基類的( )。 部分特性,并允許增加新的特性或重定義基類的特性 A. B. 部分特性,但不允許增加新的特性或重定義基類的

9、特性 所有特性,并允許增加新的特性或重定義基類的特性 C. 所有特性,但不允許增加新的特性或重定義基類的特性 D. 29. 派生類的成員函數(shù)可以直接訪問基類的()成員。 私有 D. 保護(hù)和私有 C. 公有和保護(hù) B. 所有 A. 30. 當(dāng)派生類中有和基類一樣名字的成員時(shí),一般來說,( )。 A. 將產(chǎn)生二義性 B. 派生類的同名成員將覆蓋基類的成員 C. 是不能允許的 D. 基類的同名成員將覆蓋派生類的成員 31關(guān)于純虛函數(shù)和抽象類的描述中,錯(cuò)誤的是( )。 A純虛函數(shù)是一種特殊的虛函數(shù),它沒有具體的實(shí)現(xiàn) B抽象類是指具體純虛函數(shù)的類 C一個(gè)基類中說明有純虛函數(shù),該基類派生類一定不再是抽象類

10、 D抽象類只能作為基類來使用,其純虛函數(shù)的實(shí)現(xiàn)由派生類給出 32如果一個(gè)類至少有一個(gè)純虛函數(shù),那么就稱該類為( )。 A抽象類 B虛函數(shù) C派生類 D以上都不對(duì) 33要實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編,必須通過( )調(diào)用虛函數(shù)。 A對(duì)象指針 B成員名限定 C對(duì)象名 D派生類名 34.以下( )成員函數(shù)表示虛函數(shù)。 Avirtual int vf(int); Bvoid vf(int)=0; Cvirtual void vf()=0; Dvirtual void vf(int) ; 40.下面描述中,正確的是( )。 Avirtual可以用來聲明虛函數(shù) B含有純虛函數(shù)的類是不可以用來創(chuàng)建對(duì)象的,因?yàn)樗翘摶?C即

11、使基類的構(gòu)造函數(shù)沒有參數(shù),派生類也必須建立構(gòu)造函數(shù) D靜態(tài)數(shù)據(jù)成員可以通過成員初始化列表來初始化 35. 在成員函數(shù)中進(jìn)行雙目運(yùn)算符重載時(shí),其參數(shù)表中應(yīng)帶有( )個(gè)參數(shù)。 A. 0 B. 1 C. 2 D. 3 36. 在重載一運(yùn)算符時(shí),若運(yùn)算符函數(shù)的形參表中沒有參數(shù),則不可能的情況是( )。 A. 該運(yùn)算符是一個(gè)單目運(yùn)算符。 B. 該運(yùn)算符函數(shù)有一個(gè)隱含的參數(shù)this。 C. 該運(yùn)算符函數(shù)是類的成員函數(shù)。 D. 該運(yùn)算符函數(shù)是類的友元函數(shù)。 37. 下面對(duì)于友元函數(shù)描述正確的是( )。 A友元函數(shù)的實(shí)現(xiàn)必須在類的內(nèi)部定義 B友元函數(shù)是類的成員 C友元函數(shù)破壞了類的封裝性和隱藏性 D友元函數(shù)不

12、能訪問類的私有成員 38.為了使類中的某個(gè)成員不能被類的對(duì)象通過成員操作符訪問,則不能把該當(dāng)成員的訪問權(quán)限定義為( ) 。ststic private Dpublic A Bprotected C 。39.下面對(duì)靜態(tài)數(shù)據(jù)成員的描述中,正確的是( ) 靜態(tài)數(shù)據(jù)成員是類的所有對(duì)象共享的數(shù)據(jù)A B類的每一個(gè)對(duì)象都有自己的靜態(tài)數(shù)據(jù)成員 C類的不同對(duì)象有不同的靜態(tài)數(shù)據(jù)成員值 D靜態(tài)數(shù)據(jù)成員不能通過類的對(duì)象調(diào)用 )。 40.C+類體系中,不能被派生類繼承的有( 虛函數(shù) B C靜態(tài)成員函數(shù) D賦值操作函數(shù)構(gòu)造函數(shù) A 。 41下列虛基類的聲明中,正確的是()virtual class B:public A

13、class virtual B:public A B A Cclass B:public A virtual Dclass B: virtual public A 42在下面的表達(dá)式中,不表示虛繼承的是( )。 Avirtual public Bpublic virtual Cpublic D virtual 43.下列關(guān)于動(dòng)態(tài)聯(lián)編的描述中,錯(cuò)誤的是( )。 A動(dòng)態(tài)聯(lián)編是以虛函數(shù)為基礎(chǔ) B動(dòng)態(tài)聯(lián)編是運(yùn)行時(shí)確定所調(diào)用的函數(shù)代碼的 C動(dòng)態(tài)聯(lián)編調(diào)用函數(shù)操作是指向?qū)ο蟮闹羔樆驅(qū)ο笠?D動(dòng)態(tài)聯(lián)編是在編譯時(shí)確定操作函數(shù)的 44.下面4個(gè)選項(xiàng)中,( )是用來聲明虛函數(shù)的。 Avirtual Bpublic

14、 Cusing Dfalse 45.編譯時(shí)的多態(tài)性可以通過使用( )獲得。 A A虛函數(shù)和指針 B重載函數(shù)和析構(gòu)函數(shù) C虛函數(shù)和對(duì)象 D虛函數(shù)和引用 二.填空題 1.重載插入運(yùn)算符時(shí),其運(yùn)算符函數(shù)的返回值類型應(yīng)當(dāng)是ostream &。 2.派生類可以定義其基類 中不具備的數(shù)據(jù)和操作。 3.對(duì)象將其大部分實(shí)現(xiàn)細(xì)節(jié)隱藏起來,這種機(jī)制稱為 封閉。 4.建立類和類的對(duì)象時(shí),系統(tǒng)對(duì)類 不分配內(nèi)存,系統(tǒng)對(duì)對(duì)象 分配內(nèi)存。 5.基類和派生類的關(guān)系稱為繼承和派生。 6.當(dāng)保護(hù)繼承時(shí),基類的公有或保護(hù) 成員在派生類中成為保護(hù)成員,派生類對(duì)象不能直接訪問基類的任何 成員。 7. C支持兩種多態(tài)性:編譯 時(shí)的多態(tài)性

15、(重載)和運(yùn)行 時(shí)的多態(tài)性(虛函數(shù))。、 8.在C+中定義類時(shí),通常是利用變量 描述對(duì)象的“特征”; 利用函數(shù) 描述對(duì)象的“行為”。 9.假定用戶為類AB定義了一個(gè)構(gòu)造函數(shù)AB(int aa,char*bbNULL):a(aa),b(bb)”,則該類中至少包含有2個(gè)數(shù)據(jù)成員。 10.類是對(duì)象的抽象 ;而對(duì)象則是類的具體實(shí)例。 私有 ; 結(jié)構(gòu)成員的默認(rèn)訪問權(quán)限是公有11.如果不做特殊說明,類成員的默認(rèn)訪問權(quán)限是。 12.在定義對(duì)象的同時(shí)初始化其成員變量,需要利用構(gòu)造函數(shù),用于初始化變量的值可以是固定的常量,也可以通過參數(shù) 獲得。 13.在私有繼承關(guān)系下,基類的公有成員和保護(hù)成員將成為派生類中的私

16、有成員,它們只能由派生類的成員函數(shù)來訪問;基類的私有成員將成為派生 類中的不可訪問的成員。 14. 在保護(hù)繼承中,基類中的公有成員、保護(hù)成員是可見的。 15.面向?qū)ο蠓椒?gòu)造的系統(tǒng),其基本單位是對(duì)象 。 16.生成一個(gè)派生類對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),然后調(diào)用派生類的構(gòu)造函數(shù)。 17.AA operator +(AA x )表示為運(yùn)算符重載。 18.若在類的定義體中只給出了一個(gè)成員函數(shù)的原型,則在類外給出完整定義時(shí),其函數(shù)名前必須加上類名 和兩個(gè)冒號(hào)分隔符。 19.若采用x.abc(y)表達(dá)式調(diào)用一個(gè)成員函數(shù),在成員函數(shù)中使用的*this就代表了類外的x對(duì)象。 20.假定用戶沒有給一個(gè)名為A

17、B的類定義析構(gòu)函數(shù),則系統(tǒng)為其定義的析構(gòu)函數(shù)為AB()。 21.類的成員按訪問權(quán)限可分為三類: 公有 、私有、保護(hù)。 22在一個(gè)類中定義復(fù)制構(gòu)造函數(shù)的目的,是為了當(dāng)利用該類的一個(gè)對(duì)象初始化另一個(gè)對(duì)象時(shí),能夠避免這兩個(gè)對(duì)象的同一指針同時(shí)指向同一塊 地 址 。 23. 假定 AB為一個(gè)類,則執(zhí)行“AB a10;”語句時(shí),系統(tǒng)自動(dòng)調(diào)用該類構(gòu)造函數(shù)的次數(shù)為10。 24. 假定要把a(bǔ)a定義為AB類中的一個(gè)常量整數(shù)型數(shù)據(jù)成員,則定義語句為const int aa;。 25假定AB為一個(gè)類,則該類的復(fù)制構(gòu)造函數(shù)的函數(shù)頭為AB(AB & )。 26假定AB為一個(gè)類,該類中含有一個(gè)指向動(dòng)態(tài)數(shù)組空間的指針成員pa

18、,則在該類的析構(gòu)函數(shù)中應(yīng)該包含有一條delete pa語句。 27. 靜態(tài)成員函數(shù)只能訪問類的靜態(tài)數(shù)據(jù)成員,非靜態(tài)成員函數(shù) 訪問類的非靜態(tài)數(shù)據(jù)成員。 28. 一個(gè)類的成員函數(shù)也可以成為另一個(gè)類的友元函數(shù),這時(shí)的友元說明必須在函數(shù)名前加上 friend 的限定。 29. 一個(gè)單目運(yùn)算符作為類的成員函數(shù)重載時(shí)有0個(gè)參數(shù);如果作為友元函數(shù)重載,則有1個(gè)參數(shù)。 30. 若多個(gè)基類及其派生類中都定義了同名函數(shù)成員,要訪問相應(yīng)函數(shù)時(shí),就需要在函數(shù)名前加上基類名和類區(qū)分符。 31. 若要保證一個(gè)公共的基類在派生類中只產(chǎn)生一個(gè)基類子對(duì)象,則必須都以virtual 的方式直接繼承它。 32. 引進(jìn)虛基類的根本目

19、的是為了消除二義性。 33. 在每個(gè)成員函數(shù)中,隱含的第一個(gè)參數(shù)的參數(shù)名為this指針。 三寫出下列程序的運(yùn)行結(jié)果 (1)#include struct ab char a5; float b; ; void main() ab x=Li,89.6; coutx.atx.bendl; Li 89.6 (2) #include struct ab char a ; float b; ; void f(ab &y) y.a=W; y.b=90.5; void main() ab x=L,89.5; f(x); coutx.atx.bendl; W 90.5 (3)#include #include

20、 class A char a; public: A(char *s) a=new charstrlen(s)+1; strcpy(a,s); coutaendl; A() delete a; coutDestructor!endl; ; void main() A x(Li Ming); A y( Zhang); (4) #include int n=0; class A int a; public: A(int aa=0) a=aa; n+; A() n-;coutnendl; void show() coutnendl; ; void main() a.show(); A a; A x2

21、; x1.show(); a.show(); 1 3 2 1 1 0 (5) #include class A int a,b; public: A( ) a=b=0;couta bendl; A(int aa,int bb) a=aa;b=bb; couta bendl; ; void main() A x,y(10,5); (6 )#include class BB int a,b; public: a=i; b=j; BB(int i=0,int j=1) BB operator +(BB c) BB d; d.a=a + c.a*10; d.b=b+c.b*10; return d;

22、BB operator -(BB c) BB d; d.a=a * c.a; d.b=b*c.b; return d; void show() cout(a,b)endl; ; void main() BB x(2,6) , y(5, 5),z; z=x+y; z.show(); z=x-y; z.show(); (7) #include class EX intx,y; public: EX(int i=0,int j=1) x=i; y=j; EX operator * (EX z) EX d; d.x=x *z.x; d.y=y*z.y; return d; EX operator /(

23、EX c) EX d; d.x=x-c.x; d.y=y-c.y; return d; void show() cout(a,b)endl; ; void main() EX a(30,10) , b(2,5),c; c=a*b; c.show(); c=a/b; c.show(); (8)#include class Point int x,y; public: Point()x=1;y=1; Point()coutPoint x,y is deleted.endl; ; void main() Point a; (9) #include #include int count=0; clas

24、s Point int x,y; public: Point() x=1; y=1;count+; Point()count-; ; void display() cout There are countpoints. endl; void main() Point a; display(); Point b5; display(); display(); (10)#include class EX1 int a,b; public: EX1 ( ) a=b=1; couta bendl; EX1 (int aa,int bb=100) a=aa;b=bb; couta bendl; ; vo

25、id main() EX1 x,y(10,2); EX1z(200); (11) #include #include class Csample int i; public: Csample() cout constructor 1 endl; i=0; Csample(int val) cout Constructor 2 endl;i=val; void Display() couti=iendl; Csample() coutDestructorendl; ; void main() Csample a,b(10); a.Display(); b.Display(); (12) #inc

26、lude class Csample private: int i; static int k; public: Csample( ); void Display( ); ; int Csample:k=0; Csample:Csample( ) i=0; k+; void Csample:Display( ) couti=i,k=kendl; void main( ) Csample a,b; a.Display( ); b.Display( ); (13) #include #include struct A char c 20 ; float f; ; void f(A &t) strc

27、py( t.c, ”MALIANG”); t.f=70.5; void main() A z=“LIMING”,77.5; f(z); coutz.ctz.fendl; (14)#include class Csample int i; public: Csample( ); void Display( ); Csample(); ; Csample:Csample( ) coutConstructor,; i=0; void Csample:Display() couti=i,; Csample:Csample( ) coutDestructorendl; void main( ) Csam

28、ple a; a.Display( ); 5月13日 15. #include class Croot public: int small; Croot( ) small=2;cout”Called Constructor1.n”; Croot(int n) small=n; cout”Called Constructor2.n”; void showsmall() coutsmall=smallendl; ; class Cder1: public Croot public: Cder1(int m) :Croot(m) ; class Cder2: public Croot public:

29、 int small; Cder2(int n=0) small=n; ; void main() Croot A; Cder1 bb(4); Cder2 cc; A.showsmall(); bb.showsmall(); cc.showsmall(); (15)#include class base public: void show() 捻畯?尼調(diào)用基類函數(shù) show().n; ; class derived: public base public: void show() 捻畯?尼調(diào)用派生類函數(shù) show().n; ; void main() base a1; a1.show(); d

30、erived a2; a2.show(); (16)#include class ROOT public: int small; ROOT(int n=2) small=n; void showsmall() coutsmall=smallendl; ; class Cder1: public ROOT public: Cder1(int m) :ROOT(m) ; class Cder2: public ROOT public: int small; Cder2(int n=0) small=n; ; void main() ROOT A; Cder1 bb(3); Cder2 cc; A.

31、showsmall(); bb.showsmall(); cc.showsmall(); 17.#include #include class CD char *a; char b20; public: CD() a=new char10; strcpy(a, 喂,?猻牴灣?你好!); void Init(char* aa, char *bb) a=new charstrlen(aa)+1;strcpy(a,aa); strcpy(b,bb); void Output() couta bendl; ; void main() CD dx,dy; dx.Output(); dy.Output()

32、; ,2008); 祤?楮?中國(guó), 北京 18.#include class A int a; public: A(int aa=0): a(aa) couta ; n; ?笠潣瑵?對(duì)象被刪除; void main() A *p; A x2=10,20,y=40; coutendl; p=new A1; coutendl; delete p; coutendl; #include 19.class A int a10; int n; public: A(int aa, int nn): n(nn) for(int i=0; in; i+) ai=aai; int Get(int i) retu

33、rn ai; int SumA(int n) int s=0; for(int j=0; jn; j+) s+=aj; return s; ; void main() int a=1,1,2,3,5,8; A x(a,3), y(a,4); int d=1; for(int i=0; i3; i+) d*=x.Get(i); int f=y.SumA(4); coutd=dendl; cout=fendl; 20. #include class BB int a,b; public: BB(int i=0,int j=1) a=i; b=j; BB operator +(BB c) BB d;

34、 d.a=a + c.a; d.b=b+c.b; return d; BB operator -(BB c) BB d; d.a=a - c.a; d.b=b-c.b; return d; void show() cout(a,b)endl; ; void main() BB x(10,15) , y(5,7),z; z=x+y; z.show(); z=x-y; z.show(); #include 21.#include class Point int x,y; public: Point(int x1=0, int y1=0) :x(x1), y(y1) coutPoint:x yn;

35、Point() coutPoint des!n; ; class Text char text100; public: Text(char * str) strcpy(text,str);coutText con!n; coutText des!n; Text() ; class CircleWithText : public Point,public Text public: CircleWithText(int cx,int cy, char *msg): Point(cx,cy),Text(msg) coutPoint with Text con!n; CircleWithText()

36、coutPoint with Text desn; ; void main() CircleWithText cm(3,4,hello); 22.#include class Croot public: int x; Croot( ) x=2;coutConstructor1.n; Croot(int n) x=n; coutConstructor2.n; 潶摩猠潨獷慭汬?笠撓畯?尼?砼?湥湯?; class Cder1: public Croot public: Cder1(int m) :Croot(m) ; class Cder2: public Croot public: int x;

37、 Cder2(int n=0) x=n; ; void main() Croot A; Cder1 bb(4); Cder2 cc; A.showsmall(); bb.showsmall(); cc.showsmall(); 四程序 定義一個(gè)第3題的結(jié)構(gòu)體類型的結(jié)構(gòu)體數(shù)組stud,輸入學(xué)生三門課成績(jī),然后按總分成績(jī)排序后輸出學(xué)生成績(jī)。 #include struct stud int no; char name20; int math; int eng; int c; int sum; st10; int n=-1; /表示數(shù)組元素當(dāng)前下標(biāo) void main() int x=1,i,j;

38、stud t; 潣瑵?請(qǐng)輸入學(xué)生記錄,按0 結(jié)束x; if(x) n+; /讀入學(xué)號(hào) 讀入姓名/ stn.no=x; stn.mathstn.engstn.c; /讀入三門課成績(jī) stn.sum=stn.math+stn.eng+stn.c; /計(jì)算三門課總分 else break; for(i=0;in;i+) / 采用冒泡排序法對(duì)總分排序 for(j=0;jstj+1.sum) t=stj;stj=stj+1;stj+1=t; for(i=0;i=n;i+) / 輸出排序后學(xué)生信息 coutsti.no sti.math sti.c sti.eng

39、sti.sumendl; 聲明一個(gè)哺乳動(dòng)物Mammal類,再由此派生出狗Dog類,聲明一個(gè)Dog類的對(duì)象,觀察基類與派生類的構(gòu)造函數(shù)與析構(gòu)函數(shù)的調(diào)用順序。 #include class Mammal public: Mammal() coutcall Mammalendl; Mammal() coutDelete base classendl; ; class Dog :public Mammal public: Dog() coutcall Dogn; Dog() coutDelete Dog classn; ; void main() Dog b; 定義一個(gè)基類有姓名、性別、年齡,再由基類

40、派生出教師類和學(xué)生類,教師類增加工號(hào)、職稱和工資,學(xué)生類增加學(xué)號(hào)、班級(jí)、專業(yè)和入學(xué)成績(jī)。 #include #include #include class base /定義一個(gè)基類 protected: char name20; /姓名 char sex3; /性別 int age; /年齡 ; class teacher:public base /基類派生出教師類 int sno; /工號(hào) char zc20; /職稱 double wages; /工資 ; class student :public base /基類派生出學(xué)生類 int sno; /學(xué)號(hào) char bj10; /班級(jí) ch

41、ar zy10; /專業(yè) double score; /入學(xué)成績(jī) ; 建立一個(gè)基類Building ,用來存儲(chǔ)一座樓房的層數(shù)、房間數(shù)以及它的總平方英尺數(shù)。建立派生類Housing,繼承Building,并存儲(chǔ)下面的內(nèi)容:臥室和浴室的數(shù)量,另外,建立派生類Office,繼承Building,并存儲(chǔ)滅火器和電話的數(shù)目。然后,編制應(yīng)用程序,建立住宅樓對(duì)象和辦公樓對(duì)象,并輸出它們的有關(guān)數(shù)據(jù)。 程序代碼: #include class Building public: Building(int f,int r,double ft) floors=f; rooms=r; footage=ft; void show() cout floors: floorsendl; cout rooms: roomsendl; cout total area: footageendl; protected: int floors; int rooms; double footage; ; class Housing:public Building public: Housing(int f,int r,double ft,int bd,int bth):Building(f,r,ft) bedrooms=bd; bathrooms=bth; void show() cout HOUSING:n;

溫馨提示

  • 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)論