面向?qū)ο蟪绦蛟O(shè)計C 期末考試試題_第1頁
面向?qū)ο蟪绦蛟O(shè)計C 期末考試試題_第2頁
面向?qū)ο蟪绦蛟O(shè)計C 期末考試試題_第3頁
面向?qū)ο蟪绦蛟O(shè)計C 期末考試試題_第4頁
面向?qū)ο蟪绦蛟O(shè)計C 期末考試試題_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、山東師范高校2022-2022學(xué)年第一學(xué)期期末考試試題 一、單項選擇題 下面每題的選項中,只有一個是正確的,請選擇正確的答案填入答題紙中對應(yīng)的題號后(本 題共25小題,每題1分,共25分)。1、當(dāng)一個函數(shù)無返回值時,函數(shù)的類型應(yīng)定義為( )oA void B 任意 C int D 無)o指出作用域的范圍標(biāo)識某個成員是屬于哪個類B形參和實參都是變量D形參是引用,實參是變量)o指出作用域的范圍標(biāo)識某個成員是屬于哪個類B形參和實參都是變量D形參是引用,實參是變量2、作用域運算符的功能是(A標(biāo)識作用域的級別 B C給定作用域的大小 D 3、以下的()是引用調(diào)用。B構(gòu)造函數(shù)可以重載。D構(gòu)造函數(shù)必需指定類

2、型說明。)不能作為類的成員。A形參是指針,實參是地址值 C形參是數(shù)組名,實參是數(shù)組名 4、()不是構(gòu)造函數(shù)的特征 A構(gòu)造函數(shù)的名和類名相同 C構(gòu)造函數(shù)可以設(shè)置默認(rèn)值 5、以下(A自身類對象的指針B自身類對象的引用C自身類對象D另一個類的對象6、重載函數(shù)在調(diào)用時選擇的依據(jù),()是錯誤的。A.參數(shù)個數(shù)B參數(shù)的類型C A或者BD函數(shù)的類型7、以下靜態(tài)成員的特性中,()是錯誤的。A 說明靜態(tài)成員時,要加修飾符staticB靜態(tài)數(shù)據(jù)成員要在類體外進行初始化C引用靜態(tài)數(shù)據(jù)成員時,要在靜態(tài)數(shù)據(jù)成員名前加類名及作用域運算符D靜態(tài)數(shù)據(jù)成員不是全部對象所共用的8、fl(int)是類A的公有成員函數(shù),p是指向成員函

3、數(shù)fl()的指針,采納()是正確的。A p=fl B p=A:fl C p=A:fl() D p=f 1 ()9、運算符-*的功能是( )oA用來表示指向?qū)ο笾羔槍χ赶蝾惓蓡T指針的操作B用來表示對象對指向類成員指針的操作C用來表示指向?qū)ο笾羔槍︻惓蓡T的操作D用來表示對象類成員的操作10、以下定義中,()是定義指向數(shù)組的指針p.A int p5 B int (*p)5 C (int*)p5 D int *p11、設(shè)p為一個指向類A數(shù)據(jù)成員m的指針,Al為A的一個對象。假如給m賦值5,() 為正確的。A ALp=5 B Al,p=5 C AL*p=5 D *ALp=512、print。函數(shù)是一個類

4、的常成員函數(shù),它無返回值。以下表示中,()是正確的。A void print () const B const void print ()C void const print () D void print (const)13、說明 const char * ptr;中,ptr 應(yīng)當(dāng)是()。A指向字符常量的指針B指向字符的常量指針Product p 1(“ 電視機”,200015);pl.buy(7000);pl.get();pl.buy(4500);pl.get();).以面對對象的方法設(shè)計一個類,此類包含3個私有數(shù)據(jù):unlead, lead (無鉛汽油和有鉛 汽油)以及total (當(dāng)天

5、總收入,無鉛汽油的價格是17元/公升,有鉛汽油的價格是16元/公 升),請以構(gòu)造函數(shù)方式建立此值。試輸入某天所加的汽油量,本程序?qū)⒘谐黾佑驼井?dāng)天的 總收入。(10分)#include class Tc(private:double unlead,lead,total;int unprice,price;public:Tc() unpriced 17 ;price= 16;void getdata()(coutvv”無鉛汽油總量;”;cinunlead;COUtVV”有鉛汽油總量;”;cinlead;total二unprice*unlead+price*lead;)void disp()(cou

6、tvv”總收入:ntotalendl;);void main()Tc A;A.getdata();A.dispO;.編寫一個程序計算兩個給定長方形的面積,其中在設(shè)計類成員函數(shù)addarea。(用于計算 兩個長方形的總面積)時使用對象作為參數(shù)。(12分)#include #include class rectangle(private:float ledge,sedge;public:rectangle();rectangle(float a,float b)(ledge=a;sedge=b;);float area()(return ledgesedge;);void addarea(rect

7、angle rl,rectangle r2)(cout”,總面積:nrl.ledger 1 .sedge+ r2ledge*r2.sedgeendl;);void main()(rectangle A(3.5,2.5),B(4.2,3.8),C;C.addarea(A,B);.編一個程序計算正方體,球體和圓柱體的外表積和體積。要求:抽象出一個公共基類 container為抽象類,在其中定義求外表積和體積的純虛函數(shù)。抽象類中定義一個公共的數(shù)據(jù) 成員radius,此數(shù)值可以作為球體的半徑、正方體的邊長、圓柱體底面圓半徑。由該抽象類派 生出的三個類,都有求外表積和體積的實際定義。鍵盤輸入radius

8、的值后,可以輸出這3 種立方體的面積。(13分)#include class Circle(public:Circle(double i) r=i;double Area(double r) a=r*r*3.14159; return a;void Show() coutHarea=HArea(r)endl;private:double r,a;);class Rectangle public:Rectangle(double i,double j) l=i;w=j;double Area(double i,double j) a=i*j; return a;void Show() coutH

9、area=,Area(l,w)endl; private:double l,w,a;;class Graph:public Circle, public Rectanglepublic:Graph(double i, double j, double k):Circle(i),Rectangle(j,k) r=i;l=j;w=k;double Area(double r,double 1,double h) a=Circle:Area(r)+Rectangle:Area(l,h); return a; void Show() coutarea=nArea(r,l,w)endl;private:

10、double r,l,w,a;);void main() (Circle c(10);c.ShowQ;Rectangle rec(20,50);rec.ShowQ;Graph g(10.0,20.0,50.0);g.Show();C指向字符串常量的指針 D指向字符串的常量指針14、派生類的對象對它的基類成員中()是可以訪問的。A公有繼承的公有成員B公有繼承的私有成員C公有繼承的保護成員D私有繼承的公有成員15、以下對派生類的描述中,()是錯的。A 一個派生類可以作為另一個派生類的基類B派生類至少有一個基類C 派生類的成員除了它自己的成員以外,還包含了它的基類成員D派生類中繼承的基類成員的訪問權(quán)

11、限到派生類保持不變16、對于int*pa5;的描述,()是正確的。A pa是一個指向數(shù)組的指針,所指向的數(shù)組是5個int型元素。B pa是一個指向某數(shù)組中第5個元素的指針,該元素是血型變量。C pa5表示某個數(shù)組的第5個元素的值。D pa是一個具有5個元素的指針數(shù)組,每個元素是一個血型指針。17、設(shè)置虛基類的目的是()oA簡化程序 B消退二義性C提高運行效率D削減目標(biāo)代碼18、帶有虛基類的多層派生類構(gòu)造函數(shù)的成員初始化列表中都耍列出虛基類的構(gòu)造函數(shù), 這樣將對虛函數(shù)的子對象初始化()oA與虛基類下的派生類個數(shù)有關(guān) B屢次C二次 D 一次19、以下函數(shù)中,()不能重載。A成員函數(shù) B非成員函數(shù)C

12、析構(gòu)函數(shù) D構(gòu)造函數(shù)20、關(guān)于動態(tài)聯(lián)編的描述中,()是錯誤的。A動態(tài)聯(lián)編是以虛函數(shù)為基礎(chǔ)的B動態(tài)聯(lián)編是在運行時,確定所調(diào)用的函數(shù)代碼的。C動態(tài)聯(lián)編調(diào)用函數(shù)操作是指向?qū)ο蟮闹羔樆驅(qū)ο笠?。D動態(tài)聯(lián)編是在編譯時確定操作函數(shù)的。21、關(guān)于虛函數(shù)的描述中,()是正確的。A虛函數(shù)是一個非satatic類的成員函數(shù)。B虛函數(shù)是一個非成員函數(shù)。C基類中說明白虛函數(shù)后,派生類中與其對應(yīng)的函數(shù)可以不必說明為虛函數(shù)。D 派生類的虛函數(shù)與基類的虛函數(shù)具有不同的參數(shù)個數(shù)和類型。22、關(guān)于純虛函數(shù)和抽象類的描述中,()是錯誤的。A 純虛函數(shù)是一種特別的虛函數(shù),它沒有詳細(xì)的實現(xiàn)。B抽象類是指含有純虛函數(shù)的類。C 一個基類

13、中說明白純虛函數(shù),那么其派生類不再是抽象類。D抽象類一般只能作為基類來使用。23、以下關(guān)于抽象類的使用中,()是錯誤的。A可以定義抽象類的對象 B可以定義抽象類的指針C可以定義抽象類的引用 D可以定義抽象類的派生類24、派生類的構(gòu)造函數(shù)的成員初始化列表中,不能包含()0A基類的構(gòu)造函數(shù)B派生類中子對象的初始化C基類的子對象的初始化D派生類中一般數(shù)據(jù)成員的初始化25、關(guān)于new運算符的以下描述中,()是錯的。A 它可以用來動態(tài)創(chuàng)立對象和對象數(shù)組;B使用它創(chuàng)立的對象或?qū)ο髷?shù)組可以使用delete運算符刪除;C使用它創(chuàng)立對象時要調(diào)用構(gòu)造函數(shù);D使用它創(chuàng)立對象數(shù)組時,必需指定初始值。二、填空題將正確的

14、答案填入答題紙相應(yīng)的題號后。(此題共3小題,5個空,每空2分,共10分).面對對象的程序設(shè)計有三大特征,它們是封裝、(1)、(2) o2、類是用戶定義的類型,具有類類型的變量稱作(3) o3、在面對對象的程序設(shè)計中,通過(4)實現(xiàn)數(shù)據(jù)隱蔽;通過(5)實現(xiàn)代碼的復(fù)用。三、分析程序的執(zhí)行結(jié)果題分析程序的執(zhí)行結(jié)果,將結(jié)果按程序運行時輸出形式填在答題紙對應(yīng)的題號后(此題共5小 題,每題4分,共20分)。 #include class M public:M() x=y=0; M(int i, int j) x=i; y寸void copy(M *m);void setxy(int i, int j) x

15、=i; y=j; void print() coutxn,yendl; private:int x, y;void M:copy(M *m) x=m-x; y=m-y;void fun(M ml, M *m2) ml.setxy(12, 15);m2-setxy(22,25);)void main() M p(5, 7), q;q.copy(&p);fun(p, &q);p.print();q.print();)2、#include class Mpublic:M()a=b=0;M(int i,int j)a=i;b=j;void print() coutaH,nbntn;private:in

16、t a,b;);void main() M m24; int x=10,y=10;for(int i=0;iv2;i+) for(int j=0;j4;j+) mi皿=M(x+=2,y+=10);)M (*pm)4(m);for(i=0;i2;i+) coutendl;for(int j=0;j4;j+)(*(*(pm+i)+j).print();用指針的方式存取數(shù)組的第ij個元素 coutendl;)3、#include #include class B public:B(char *s, double n) strcpy(name,s);b=n;coutHConstructor. nn;)

17、B()coutnDefaultnn;-B () cout Destructor nnameendl;void getb(char *s, double& n) strcpy(s,name); n=b; private:char name80;double b;);void main() B* p;double n;char s80;p=new B3;p0=B(nMan,4.8);pl=BCWang”,3.6);p2=BCLi;3.1);for(int i=0;i3;i+) pi.getb(s,n);coutsnnendl;delete p;)4、#include class A (public

18、:A(int i,int j) a=i;b=j;void Move(int x,int y) a+=x;b+=y;void Show() coutH(na,V,b,)Hendl; private:int a,b;);class B:public A ( public:B(int i,int j,int k,int l):A(i,j),x(k),y(l) ()void Show() coutxn,nyendl;void fun() Move(3,5);void fl() A:Show(); private:int x,y;); void main() Ae(l,2);e.ShowQ;B d(3,

19、4,5,6);d.A:Show();d.B:Show();d.fl();)5、#include class A public:A(int i) a=i;coutncon. An”;void print() coutaendl;A()cout”des. An”; private:int a;);class B1 : virtual public A public:Bl(int i, int j) : A(i)b 1 =j;coutncon. BlnH;void print() A:print(); coutblendl;-Bl()coutHdes. Blnn; private:int bl;cl

20、ass B2 : virtual public A public:B2(int i, int j): A(i)b2=j;coutHcon. B2n”; void print() A:print(); coutb2endl;B2()cout”des. B2nH;private:int b2;class C : public Bl, public B2 public:C(int i, intj, int k, int 1): Bl(i,j), B2(i,k), A(i) c=l; cout*con. Cnendl; void print() Bl:print(); B2:print();coutc

21、endl; C()coutvdes. Cnendl;private:int c;);void main()Ccl(5,7,3,6);cl.print();)四、程序設(shè)計題將編寫的程序標(biāo)上小題題號,寫在答題紙上。此題共4小題,45分。.編寫一個程序,設(shè)計一個產(chǎn)品類Product,其定義如下:Class Product (產(chǎn)品單價/剩余產(chǎn)品數(shù)量產(chǎn)品單價/剩余產(chǎn)品數(shù)量char *name; 產(chǎn)品名稱int price;int quantity;public:Product(char *n,int p,int q);Product。; void buy(int money);void get() co

22、nst;構(gòu)造函數(shù)析構(gòu)函數(shù)購買產(chǎn)品顯示剩余產(chǎn)品數(shù)量;并用數(shù)據(jù)進行測試。(10分).以面對對象的方法設(shè)計一個類,此類包含3個私有數(shù)據(jù):unlead, lead (無鉛汽油和有鉛汽油)以及total (當(dāng)天總收入,無鉛汽油的價格是17元/公升,有鉛汽油的價格是16元/ 公升),請以構(gòu)造函數(shù)方式建立此值。試輸入某天所加的汽油量,本程序?qū)⒘谐黾佑驼井?dāng)天 的總收入。(10分).編寫一個程序計算兩個給定長方形的面積,其中在設(shè)計類成員函數(shù)addarea()(用于計算 兩個長方形的總面積)時使用對象作為參數(shù)。(12分).編一個程序計算正方體,球體和圓柱體的外表積和體積。要求:抽象出一個公共基類 containe

23、r為抽象類,在其中定義求外表積和體積的純虛函數(shù)。抽象類中定義一個公共的數(shù)據(jù) 成員radius,此數(shù)值可以作為球體的半徑、正方體的邊長、圓柱體底面圓半徑。由該抽象類派 生出的三個類,都有求外表積和體積的實際定義。鍵盤輸入radius的值后,可以輸出這3 種立方體的面積。(13分)8山東師范高校信息科學(xué)與工程2022-2022學(xué)年第一學(xué)期選擇題(25小題,共25分)12345ADDDC678910DDBAB1112131415C A CAD1617181920DBDCD2122232425CCACD二、 填空題(每空2分,共10分)繼承多態(tài)對象封裝繼承 三、分析程序的執(zhí)行結(jié)果,填空(5小題,每題4分,共20分)5,722,2512,20 14,30 16,40 18,5020,60 22,70 24,80 26,90DefaultDefaultDefaultConstructor.Destructor MaConstructor.Destructor WangConstructor.Destructor LiMa, 4.8Wan

溫馨提示

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

評論

0/150

提交評論