面向?qū)ο笤O(shè)計(jì)試卷_第1頁
面向?qū)ο笤O(shè)計(jì)試卷_第2頁
面向?qū)ο笤O(shè)計(jì)試卷_第3頁
面向?qū)ο笤O(shè)計(jì)試卷_第4頁
面向?qū)ο笤O(shè)計(jì)試卷_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、面向?qū)ο蟪绦蛟O(shè)計(jì)試題(9)題序一二 三四五總 分分?jǐn)?shù)1820201428100得分一 單選題(每小題1.5分,共18分)1下列關(guān)于結(jié)構(gòu)體的說法錯(cuò)誤的是( )。A結(jié)構(gòu)體是由用戶自定義的一種數(shù)據(jù)類型B結(jié)構(gòu)體中可設(shè)定若干個(gè)不同數(shù)據(jù)類型的成員C結(jié)構(gòu)體中成員的數(shù)據(jù)類型可以是另一個(gè)已定義的結(jié)構(gòu)體D在定義結(jié)構(gòu)體時(shí),可以為成員設(shè)置默認(rèn)值2類的析構(gòu)函數(shù)的作用是( )。A. 刪除對(duì)象后的善后工作 B.類的初始化 C.對(duì)象初始化 D. 一般成員函數(shù)3下面對(duì)于友元函數(shù)描述正確的是( )。A.友元函數(shù)的實(shí)現(xiàn)必須在類的內(nèi)部定義B.友元函數(shù)是類的成員C. 友元函數(shù)不能訪問類的私有成員D. 友元函數(shù)破壞了類的封裝性和隱藏性4

2、為了使類中的某個(gè)成員不能被類的對(duì)象通過成員操作符訪問,則不能把該成員的訪問權(quán)限定義為( )。 A. protected B. public C.private D. static5下面對(duì)靜態(tài)數(shù)據(jù)成員的描述中,正確的是( )。A.靜態(tài)數(shù)據(jù)成員是類的所有對(duì)象共享的數(shù)據(jù)B.類的每一個(gè)對(duì)象都有自己的靜態(tài)數(shù)據(jù)成員C.類的不同對(duì)象有不同的靜態(tài)數(shù)據(jù)成員值D.靜態(tài)數(shù)據(jù)成員不能通過類的對(duì)象調(diào)用6繼承具有( ),即當(dāng)基類本身也是某一個(gè)類派生類時(shí),底層的派生類也會(huì)自動(dòng)繼承間接基類的成員。 A)規(guī)律性 B.傳遞性 C.重復(fù)性 D.多樣性7下列對(duì)繼承的描述中,錯(cuò)誤的是( )。A. 析構(gòu)函數(shù)不能被繼承B. 派生類也是基類

3、的組合C. 派生類的成員除了它自己的成員外,還包含了它的基類的成員D. 派生類中繼承的基類成員的訪問權(quán)限到派生類保持不變8下列說法錯(cuò)誤的是( )。A. 公有繼承的基類中的public成員在派生類中仍是public的B. 公有繼承的基類中的private成員在派生類中仍是private的C. 私有繼承的基類中的public成員在派生類中變成private的D. 保護(hù)繼承的基類中的public成員在派生類中變成protected的9C+類體系中,不能被派生類繼承的有( )。A.構(gòu)造函數(shù) B.虛函數(shù) C.靜態(tài)成員函數(shù) D.賦值成員函數(shù) 10關(guān)于虛函數(shù)的描述中,正確的是()。 A虛函數(shù)是一個(gè)靜態(tài)成員函

4、數(shù) B虛函數(shù)是一個(gè)非成員函數(shù) C虛函數(shù)即可以在函數(shù)說明定義,也可以在函數(shù)實(shí)現(xiàn)時(shí)定義 D派生類的虛函數(shù)與基類中對(duì)應(yīng)的虛函數(shù)具有相同的參數(shù)個(gè)數(shù)和類型11關(guān)于純虛函數(shù)和抽象類的描述中,錯(cuò)誤的是( )。 A純虛函數(shù)是一種特殊的虛函數(shù),它沒有具體的實(shí)現(xiàn) B抽象類是指具體純虛函數(shù)的類 C一個(gè)基類中說明有純虛函數(shù),該基類派生類一定不再是抽象類 D抽象類只能作為基類來使用,其純虛函數(shù)的實(shí)現(xiàn)由派生類給出12以下( )成員函數(shù)表示虛函數(shù)。 Avirtual int vf(int); Bvoid vf(int)=0; Cvirtual void vf(int) ; D virtual void vf()=0; 二、

5、填空題(第1題第8題每空1分,第9題6分,共20分)1面向?qū)ο蠓椒?gòu)造的系統(tǒng),其基本單位是_。2建立類和類的對(duì)象時(shí),系統(tǒng)對(duì) 不分配內(nèi)存,系統(tǒng)對(duì) 分配內(nèi)存。3在C+中,編譯時(shí)的多態(tài)性是通過_實(shí)現(xiàn)的,而運(yùn)行時(shí)的多態(tài)性則是通過_實(shí)現(xiàn)的。4生成一個(gè)派生類對(duì)象時(shí),先調(diào)用 的構(gòu)造函數(shù),然后調(diào)用 的構(gòu)造函數(shù)。5AA operator +(AA x )表示為     。6類的成員按訪問權(quán)限可分為三類: 公有 、 、 。7. 類是對(duì)象的 ;而對(duì)象則是類的具體 。8. 在C+中定義類時(shí),通常是利用 描述對(duì)象的“特征”; 利用 描述對(duì)象的“行為”。9.假定給定下列的程序代碼,

6、請(qǐng)寫出類和類的成員及它們的訪問權(quán)限。 class A B類成員訪問權(quán)限 C類成員訪問權(quán)限 int a; protected: int y(); public: A(); friend void cal(); void show(); ; class B:private A int z(); public: B(); void display(); ; class C:public B int set(); public: C(); C(); ;三、寫出下列程序運(yùn)行結(jié)果(每題4分,共20分)1#include<iostream.h> #include<string.h>

7、運(yùn)行結(jié)果:struct AAA char ch20 ; float b; ;void f(AAA &y)strcpy(y.ch,”Zhao”); y.b=70.5;void main() AAA x=“Wang”,88.5; f(x); cout<<x.ch<<'t'<<x.b<<endl;2. #include <iostream.h>class BBB運(yùn)行結(jié)果: int a,b; public: BBB( ) a=b=10;cout<<a<<' '<<b&

8、lt;<endl; BBB(int aa,int bb) a=aa;b=bb; cout<<a<<' '<<b<<endl; ;void main() BBB x,y(20,5);3. #include<iostream.h>class base public: void show() cout<<"class base show() is called.n" ;class derived: public base public: void show() cout<<&

9、quot;class derived show() is called.n" 運(yùn)行結(jié)果:;void main()base obj1; derived obj2; obj1.show(); obj2.show(); obj2.base:show();4#include<iostream.h>class BB int a,b; public: BB(int i=0,int j=1) a=i; b=j; BB operator *(BB c)運(yùn)行結(jié)果: BB d; d.a=a * c.a; d.b=b*c.b; return d; BB operator /(BB c) BB

10、d; d.a=a /c.a; d.b=b/c.b; return d; void show() cout<<'('<<a<<','<<b<<')'<<endl;void main() BB x(10,20) , y(3,7),z; z=x*y; z.show(); z=x/y; z.show();5#include<iostream.h>class Croot public: int small; Croot( ) small=2;cout<<”Cal

11、led Constructor1.n”; Croot(int n) small=n; cout<<”Called Constructor2.n”; void showsmall() cout<<"small="<<small<<endl; ;class Cder1: public Croot public: Cder1(int m) :Croot(m);class Cder2: public Croot運(yùn)行結(jié)果: public: int small; Cder2(int n=0) small=n; ;void main() C

12、root A; Cder1 bb(4); Cder2 cc; A.showsmall(); bb.showsmall(); cc.showsmall();四、程序填空題(每空2分,共14分)1一種類定義如下:class Goods private: char gd_name20; /商品名稱 int weight; /商品重量 static int totalweight; /同類商品總重量 public:Goods (char*str,int w) /構(gòu)造函數(shù) strcpy(gd_name,str); weight=w; totalweight+=weight; Goods ()totalw

13、eight -= weight; Char * GetN()_ _; /返回商品名稱 int GetW()return weight;_ int GetTotal_Weight() /定義靜態(tài)成員函數(shù)返回總重量 _;2計(jì)算兩點(diǎn)之間的距離。定義點(diǎn)類(Point),將兩點(diǎn)之間距離函數(shù)聲明為Point類的友元函數(shù)。#include<iostream.h>#include<math.h>class Pointpublic: Point( ) x=a; y=b; int xcord() return x; int ycord () return y; private: int x

14、,y;friend double Distance(Point p1,Point p2);double Distance(Point p1,Point p2) double dx=_; double dy=_; return sqrt(dx*dx+dy*dy);void main() Point q1(1,2),q2(5,6);cout<<”The distance is: ”<< <<endl;五、編寫程序(9分9分10分28分)1定義一個(gè)日期類Tdate,它有三個(gè)私有數(shù)據(jù)成員:Month,Day,Year和若干個(gè)成員函數(shù),并實(shí)現(xiàn)如下要求:(1)用構(gòu)造函數(shù)

15、對(duì)數(shù)據(jù)成員賦值;(2)用成員函數(shù)對(duì)數(shù)據(jù)成員賦值;(3)定義一個(gè)友元函數(shù)打印日期。并要求對(duì)數(shù)據(jù)輸入、輸出。2有一圓環(huán),其中小圓半徑為10,大圓半徑為20。編程定義一個(gè)circle類,含有私有變量半徑r,能夠初始化r、計(jì)算圓面積,再定義友元函數(shù)來計(jì)算出兩個(gè)圓的面積的差。主函數(shù)中通過定義2個(gè)對(duì)象(大圓和小圓),求兩個(gè)圓計(jì)算面積的差。3聲明一個(gè)Shape基類,在此基礎(chǔ)上派生出Rectangle(矩形)類和Circle(圓)類,二者都有GetArea()函數(shù)計(jì)算對(duì)象的面積。使用Rectangle類創(chuàng)建一個(gè)派生類Square(正方形)類。分別求三種圖形的面積。(矩形和寬為10,20。圓的半徑為3.5。正方

16、形邊長(zhǎng)為10)面向?qū)ο蟪绦蛟O(shè)計(jì)9 試題答案及評(píng)分標(biāo)準(zhǔn) (供參考)一單選題(每小題1.5分,共18分)DADBABDBADCC二、填空題(第1題第8題每空1分,第9題6分,共20分)9結(jié)果: B類成員訪問權(quán)限ydisplay()zfun()privateprivateprivatepublic C類成員訪問權(quán)限t fun()privatepublic1對(duì)象2類、對(duì)象3重載、虛函數(shù)4基類、派生類5運(yùn)算符重載6私有、保護(hù)7.抽象、實(shí)例 8.變量 、 函數(shù);三、寫出下列程序運(yùn)行結(jié)果(每題4分,共20分)4運(yùn)行結(jié)果:(30,140)(3,2)5運(yùn)行結(jié)果:Called Constructor1.Calle

17、d Constructor2.Called Constructor1.small=2small=4small=21運(yùn)行結(jié)果:Zhao70.52. 運(yùn)行結(jié)果:10 1020 53. 運(yùn)行結(jié)果:class base show() is called. class derived show() is called.class base show() is called. 四、程序填空題(每空2分,共14分)2int a=0, int b=0 p1.x-p2.x p1.y-p2.yDistance(q1,q2 )1 gd_namestatic return_ totalweight 五、編寫程序(9分

18、9分10分28分)1定義一個(gè)日期類Tdate,它有三個(gè)私有數(shù)據(jù)成員:Month,Day,Year和若干個(gè)成員函數(shù),并實(shí)現(xiàn)如下要求:(1)用構(gòu)造函數(shù)對(duì)數(shù)據(jù)成員賦值;(2)用成員函數(shù)對(duì)數(shù)據(jù)成員賦值;(3)定義一個(gè)友元函數(shù)打印日期。并要求對(duì)數(shù)據(jù)輸入、輸出。#include<iostream>using namespace std;class Tdateint year,month,day;public:Tdate(int y=2008,int m=1,int d=1)year=y;month=m;day=d;void set_Tdate(int y=2000,int m=12,int d

19、=30)year=y;month=m;day=d;void display()cout<<year<<"."<<month<<"."<<day<<endl;void main() Tdate obj1,obj2(2008,1,30); cout<<"Obj1: " obj1.display(); cout<<"Obj2: " obj2.display(); obj2.set_Tdate(2008,6,10); obj2.

20、display();2有一圓環(huán),其中小圓半徑為3.5,大圓半徑為8。編程定義一個(gè)circle類,含有私有變量半徑r,能夠初始化r、計(jì)算圓面積,再定義友元函數(shù)來計(jì)算出兩個(gè)圓的面積的差。主函數(shù)中通過定義2個(gè)對(duì)象(大圓和小圓),求兩個(gè)圓計(jì)算面積的差。#include<iostream.h>class circle float r,s;public: circle(float r1=0) r=r1; float area() s=3.1416*r*r; return s; friend double subarea(circle &s1,circle &s2) return s1.area()-s2.area();void main()circle obj1(8); circle obj2(3.5); cout<<subarea(

溫馨提示

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