面對象設(shè)計復(fù) 習(xí) 題_第1頁
面對象設(shè)計復(fù) 習(xí) 題_第2頁
面對象設(shè)計復(fù) 習(xí) 題_第3頁
面對象設(shè)計復(fù) 習(xí) 題_第4頁
面對象設(shè)計復(fù) 習(xí) 題_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、面對象設(shè)計復(fù) 習(xí) 題一、選擇題:1. 下列哪項不是面向?qū)ο蟪绦蛟O(shè)計的主要特征? da. 封裝 b. 繼承 c. 多態(tài) d. 結(jié)構(gòu)2. 若給出聲明:const char cc=a;char *pc;const char *pcc;char c= b ;char * const cpc=&c;下面的賦值表達(dá)式哪個是合法的?a. pc=&cc; b. pcc=&cc; c. cpc=pc; d. cc= f ;3. C+程序的執(zhí)行總是從哪里開始的?a. main函數(shù) b. 頭文件 c. 第一行 d. 函數(shù)注釋4. 下面對類和對象的描述不正確的是:a. 對象是類的一個實例 b.

2、 任何一個對象都?xì)w屬于一個具體的類c. 一個類只能有一個對象 d. 類與對象的關(guān)系和數(shù)據(jù)類型與變量的關(guān)系相似5. 以下哪個不是循環(huán)語句?a. while語句 b. do-while語句 c. for語句 d. if-else語句6. 按照標(biāo)識符的要求,下列符號哪個不能組成標(biāo)識符?a. 下劃線 b. 連接符 c. 大小寫字母 d. 數(shù)字字符7. 已知:int m=10; 在下列表示引用的方法中,哪個是正確的?a. int &x=m;b. int &y=10; c. int &z; d. float &t=&m;8. 以下有關(guān)類與結(jié)構(gòu)體的敘述不正確的是 :a

3、. 結(jié)構(gòu)體中只包括數(shù)據(jù);類中封裝了數(shù)據(jù)和操作b. 結(jié)構(gòu)體的成員對外界通常是開放的;類的成員可以被隱蔽c. 用 struct 可以聲明一個類型名;而 class 可以聲明一個類名d. 結(jié)構(gòu)體成員默認(rèn)為 private ;類成員默認(rèn)為 public9. 下列哪個不是構(gòu)造函數(shù)的特征?a. 構(gòu)造函數(shù)的函數(shù)名與類名相同 b. 構(gòu)造函數(shù)可以重載c. 構(gòu)造函數(shù)可以設(shè)置缺省參數(shù) d. 構(gòu)造函數(shù)必須指定返回值類型10. 已知:類 A 中一個成員函數(shù)說明如下:void Set(A&a); 其中, A&的含義是什么?a. 指向類 A 的指針為 a b. 將 a 的地址值賦給變量 Setc. a是類

4、A 對象的引用,用來作函數(shù) Set ()的參數(shù)d. 變量 A 與 a 按位與作為函數(shù) Set( )的參數(shù)11. 在一個函數(shù)中,要求通過函數(shù)來實現(xiàn)一種不太復(fù)雜的功能,并且要求加快執(zhí)行速度,選用下列 哪個函數(shù)?a. 內(nèi)聯(lián)函數(shù) b. 重載函數(shù) c. 遞歸調(diào)用 d. 嵌套調(diào)用12. 已知:print( )函數(shù)是一個類的常成員函數(shù),它無返回值,下列表示中,哪個是正確的?a. void print( ) const; b. const void print( );c. void const print( ); d. void print(const);13. 以下能對對象進(jìn)行初始化的是 :a. 構(gòu)造函數(shù)

5、b. 析構(gòu)函數(shù) c. 友元函數(shù) d. 靜態(tài)成員函數(shù)14. 關(guān)于虛函數(shù)的描述中,哪個是正確的?a. 虛函數(shù)是一個 stati c 類型的成員函數(shù) b. 虛函數(shù)是一個非成員函數(shù)c. 基類中說明了虛函數(shù)后,派生類中其對應(yīng)的函數(shù)可不必說明為虛函數(shù)d. 派生類的虛函數(shù)與基類的虛函數(shù)具有不同的參數(shù)個數(shù)和類型15. 設(shè)有以下類的定義:class Tempint x;public:void setx(int t=0);若在類外定義成員函數(shù) setx(),以下定義形式中正確的是哪個?a.void setx(int t) b.void Temp:setx(int t) c.Temp void: setx(int

6、t) d.void Temp:setx(int t=0) 16. 以下關(guān)于函數(shù)重載的要求,哪個敘述不正確?a. 函數(shù)名相同 b. 函數(shù)參數(shù)個數(shù)不同 c. 函數(shù)返回值類型不同d. 函數(shù)參數(shù)個數(shù)相同但參數(shù)類型至少有一個不同17. 已知:class Aprivate: int a,b;float c;public: void func1(int,int);friend int getData();則類 A 分別有幾個數(shù)據(jù)成員和成員函數(shù)?a. 2,2 b. 3,2 c. 2,1 d. 3,118. 已知:int a, *pa;char *p=” I like computer!” ;關(guān)于運(yùn)算符 new

7、 和 delete 的使用,下列表達(dá)式哪個是正確的?a. a=new int; b. delete p12; c. pa=new int(10); d. p=new int12;19. 對于類 A 而言,已知函數(shù) A :A(const A& a); 則該函數(shù)是類 A 的什么函數(shù)?a. 內(nèi)聯(lián)函數(shù) b. 友元函數(shù) c. 拷貝構(gòu)造函數(shù) d. 類型轉(zhuǎn)換函數(shù)20. 下面類的定義中哪個地方是不正確的?class examplefloat x;public:example(); (a)example(int,float); (b)operator int(); (c)example();const

8、int y=23; (d);二、填空題:1. 在 C+中,函數(shù)的參數(shù)有兩種傳遞方式,它們是值傳遞和 ( 引用傳遞 ) 。2. 當(dāng)一個成員函數(shù)被調(diào)用時,該成員函數(shù)的 ( this 指針 ) 指向調(diào)用它的對象。3. 在 C+類中, const 關(guān)鍵字可以修飾對象和成員函數(shù), const 對象不能 (調(diào)用非 const 的普通成員函數(shù) ) , const 成員函數(shù)不能 ( 修改 ) 。4. 在 C+類中,有一種不能定義對象的類,這樣的類只能被繼承,稱之為 ( 抽象類 ) ,定義該類至少具有一個 ( 純虛函數(shù) ) 。5. 描述命題 "A 小于 B 或小于 C" 的表達(dá)式為 ( a&

9、lt;b|a<c) 。6. 在基類和派生類中, 派生類可以定義其基類中不具備的數(shù)據(jù)和操作。 對兩個有相同名字的數(shù)據(jù)成員進(jìn)行訪問時, 如果沒有 ( 類名和作用域分辨符 ) ,對此數(shù)據(jù)成員的訪問將出現(xiàn)歧義。7. 靜態(tài)數(shù)據(jù)成員在類外進(jìn)行初始化,且靜態(tài)數(shù)據(jù)成員的一個拷貝被類的所有對象 ( 共用 ) 。8. 面向?qū)ο蟮某绦蛟O(shè)計有四大特征,它們是抽象、封裝、 ( 繼承 ) 、 (重載 ) 。9. 在 C+中,構(gòu)造派生類對象時,總是先從 ( 基類 ) 的初始化開始的。10. 類是用戶定義的類型,具有類類型的變量稱作 ( 對象 ) 。11. 靜態(tài)的成員函數(shù)沒有隱含的 ( this 指針 ) ,所以,它們

10、只能訪問靜態(tài)的數(shù)據(jù)成員。12. 構(gòu)造函數(shù)與析構(gòu)函數(shù)除功能不同外, 在定義形式上, 它們的區(qū)別還包括構(gòu)造函數(shù)名與類名相同,而析構(gòu)函數(shù)名是在類名前加一個 、 (無參數(shù) ) 、 (不能重載 ) 。13. 在公有派生的情況下,基類數(shù)據(jù)成員在派生類中的訪問權(quán)限 ( 不變 ) 。三、看程序?qū)懡Y(jié)果:1. #include<iostream.h>class Exampleint a,b;public:Example() a=b=0;cout<<"This is an example!"<<endl;Example(int x,int y) a=x; b=

11、y;Example()if(a>b) cout<<"a>b"<<endl;else cout<<"a<=b"<<endl;void disp() cout<<"a="<<a<<",b="<<b<<endl; ;void main()Example e1,e2(6,3);e1.disp();e2.disp();結(jié)果This is a example!a=0,b=0a=6,b=3a>ba&

12、lt;=b2. #include<iostream.h>class Sampleint x;public: Sample();Sample(int a)x=a;Sample(const Sample &a) x=a.x+ +10;void print()cout<<"x="<<x<<endl;void main()Sample s1(2),s2(s1);s1.print();s2.print();結(jié)果X=3X=123. #include<iostream.h>class Aprivate: int x1;p

13、ublic: A(int p1)x1=p1; cout<<"In A:" cout<<"x1="<<x1<<endl; A( )cout<<"destructing class A!"<<endl;class Bint x2;public:B(int p2) x2=p2; cout<<"In B:" cout<<"x2="<<x2<<endl;B( )cout<<&

14、quot;destructing class B!"<<endl;class C int x3;public: C(int p3) :x3(p3)cout<<"In C:" cout<<"x3="<<x3<<endl;C( ) cout<<"destructing class C!"<<endl;void main() Aa(1);B b(2);C c(4);結(jié)果:In A: x1=1In B: x2=2In C: x3=4destructi

15、ng class C! destructing class B! destructing class A! 4. #include<iostream.h>class p_exampleint num;public: void set_num(int val) num=val;void show_num() cout<<num<<endl; ;void main() p_example ob,obj2; p_example *p;ob.set_num(1);obj0.set_num(10); obj1.set_num(20); p=&ob;p->

16、show_num();p=obj;p->show_num();p+;p->show_num();p-;p->show_num(); 結(jié)果:11020105. #include<iostream.h>int& f(int &i) i+=10; return i; void main() int k=0;int& m=f(k);cout<<k<<endl;m=20;cout<<k<<endl;結(jié)果10206. #include<iostream.h>class Aint a;publi

17、c: int c;A(int i) a=i; c=0; int fun(int b) return a*c+b; ;void main() int A:*pc=&A:c;int (A:*pfun)(int)=&A:fun; A ob(1);ob.*pc=3;cout<<ob.c<<endl;cout<<(ob.*pfun)(7)<<endl;A *p=&ob;p->*pc=4;cout<<p->c<<endl;cout<<(p->*pfun)(7)<<end

18、l;結(jié)果3104117. #include<iostream.h>class bpublic:b()cout<<"b:b() constructed"<<endl;virtual b()cout<<"b:b()destructed"<<endl;class d:public bprivate:char *buf;public:d(int i )cout<<"d:d()constructed"<<endl;buf=new chari;virtual d(

19、)delete buf;cout <<"d:d()destructed"<<endl; ;void fun (b *a )delete a;void main ()b *a=new d(25);fun (a);結(jié)果b :b< > constructedd :d< >constructedd :d< > destructedb :b< > destructed四、編寫程序:1. 定義一個復(fù)數(shù)類,使其至少具有實部 (re)和虛部 (im)兩個數(shù)據(jù)成員,并具有顯示復(fù)數(shù)、求兩個復(fù)數(shù)相 加、兩個復(fù)數(shù)相減的功能。還

20、要求定義類的構(gòu)造函數(shù)初始化復(fù)數(shù)。#include<iostream.h>class fushuprivate :float re;float im;public :fushu()fushu(float x,float y) re =x,im=y; void disp()cout<<re<<'+'<<im<<'i'<<endl;fushu plus(fushu a,fushu b)fushu:re=a.re+b.re;fushu:im=a.im+b.im;fushu minus(fushu a

21、,fushu b)fushu:re=a.re-b.re;fushu:im=a.im-b.im;void main ()fushu a1(10,5),a2(5,3),a3;a3.plus(a1,a2);a3.disp();a3.minus(a1,a2);a3.disp();2. 編寫一個程序計算正方體、 球體、 圓柱體的表面積和體積。 要求:創(chuàng)建一個 Shape 抽象類, 正方體、 球體、圓柱體是其派生類;編寫 main()函數(shù)顯示所求正方體、球體、圓柱體的表面積和體積(使用 一個抽象類的指針完成) 。#include<iostream.h>class shapeprotected:

22、float x;public :shape(float x)shape:x=x;virtual void disp()=0;class cube:public shapepublic:cube(float x):shape(x)void disp()cout <<"正方體表面積 :"<<x*x*6<<endl;cout <<"正方體體積:"<<x*x*x<<endl;class sphere:public shapepublic:sphere(float x):shape(x)voi

23、d disp()cout <<"球形表面積 :"<<4*3.14*x*x<<endl;cout <<"球形體體積:"<<4/3*3.14*x*x*x<<endl;class yuanzhu:public shapefloat height ;public:yuanzhu(float x,float y):shape(x)height=y ;void disp()cout <<"圓柱體表面積 :"<<2*3.14*x*x+2*3.14*x*h

24、eight<<endl;cout <<"圓柱體體積:"<<x*x*3.14*height<<endl;void main ()shape *s;cube c(10);sphere s1(10);yuanzhu y(10,20);s=&c;s->disp();s=&s1;s->disp();s=&y;s->disp();3. 定義長方形類 Rectangle ,其屬性是長 (length)和寬 (width),要求能夠計算長方形的面積和周長。 #include<iostream.h>class rectangleprivate:int length,width ;public :rectangle()rectangle(int x,int y )len

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論