面向?qū)ο蟪绦蛟O(shè)計(jì)C期末試卷及標(biāo)準(zhǔn)答案B_第1頁
面向?qū)ο蟪绦蛟O(shè)計(jì)C期末試卷及標(biāo)準(zhǔn)答案B_第2頁
面向?qū)ο蟪绦蛟O(shè)計(jì)C期末試卷及標(biāo)準(zhǔn)答案B_第3頁
面向?qū)ο蟪绦蛟O(shè)計(jì)C期末試卷及標(biāo)準(zhǔn)答案B_第4頁
面向?qū)ο蟪绦蛟O(shè)計(jì)C期末試卷及標(biāo)準(zhǔn)答案B_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(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ì)C+期末考試試卷(B)班級(jí):姓名:學(xué)號(hào):分?jǐn)?shù):題號(hào)一二三四總分得分試卷說明:本套試題共四個(gè)大題,全部題目都答在答題紙上,寫在其他地方均無效。(答題紙?jiān)诒咎自嚲淼牡?頁上)一、單項(xiàng)選擇題(每小題2分,共40分)1、關(guān)于C+與C語言關(guān)系的描述中,(D)是錯(cuò)誤的。A.C語言是C+語言的一個(gè)子集B.C語言與C+語言是兼容的C.C+語言對(duì)C語言進(jìn)行了一些改進(jìn)D.C+語言和C語言都是面向?qū)ο蟮?、已知:intm=10;下列表示引用的方法中,(A)是正確的。A.int&x=m;B.int&y=10;C.int&z;D.float&t=&m;3、考慮下面

2、的函數(shù)原型聲明:voidtestDefaulParam(inta,intb=7,charz='*');下面函數(shù)調(diào)用中,不合法的是(C)。A.testDefaulParam(5);B.testDefaulParam(5,8);C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*');4、系統(tǒng)在調(diào)用重載函數(shù)時(shí)往往根據(jù)一些條件確定哪個(gè)重載函數(shù)被調(diào)用,在下列選項(xiàng)中,不能作為依據(jù)的是(A)。A.函數(shù)的返回值類型B,參數(shù)的類型C.函數(shù)名稱D,參數(shù)個(gè)數(shù)5、下列有關(guān)C+類的說法中,不正確的是(D)。A.類是一種用戶自

3、定義的數(shù)據(jù)類型B.只有類中的成員函數(shù)或類的友元函數(shù)才能存取類中的私有成員C.在類中,如果不做特別說明,所有成員的訪問權(quán)限均為私有的D.在類中,如果不做特別說明,所有成員的訪問權(quán)限均為公用的6已知X類,則當(dāng)程序執(zhí)行到語句Xarray3;時(shí),調(diào)用了(D)次構(gòu)造函數(shù)A. 0B. 1C. 2D. 37、有關(guān)析構(gòu)函數(shù)的說法,不正確的是(B)0A.析構(gòu)函數(shù)有且僅有一個(gè)B.析構(gòu)函數(shù)和構(gòu)造函數(shù)一樣可以有形參C.析構(gòu)函數(shù)的功能是在系統(tǒng)釋放對(duì)象之前作一些內(nèi)存清理工作D.析構(gòu)函數(shù)無任何函數(shù)類型8、類定義的內(nèi)容允許被其對(duì)象無限制地存取的是(C)。A. private部分B.protected部分C.public部分D

4、.以上都不對(duì)9、關(guān)于常數(shù)據(jù)成員的說法,不正確的是(D)0A.常數(shù)據(jù)成員的定義形式與一般常變量的定義形式相同,只不過常數(shù)據(jù)成員的定義必須出現(xiàn)在類體中B.常數(shù)據(jù)成員必須進(jìn)行初始化,并且不能被更新C.常數(shù)據(jù)成員通過構(gòu)造函數(shù)的成員初始化列表進(jìn)行初始化D.常數(shù)據(jù)成員可以在定義時(shí)直接初始化10、運(yùn)用運(yùn)算符delete刪除一個(gè)動(dòng)態(tài)對(duì)象時(shí)(C)。A.系統(tǒng)首先為該動(dòng)態(tài)對(duì)象調(diào)用構(gòu)造函數(shù),再釋放其占用的內(nèi)存B.系統(tǒng)首先釋放該動(dòng)態(tài)對(duì)象占用的內(nèi)存,再為其調(diào)用構(gòu)造函數(shù)C.系統(tǒng)首先為該動(dòng)態(tài)對(duì)象調(diào)用析構(gòu)函數(shù),再釋放其占用的內(nèi)存D.系統(tǒng)首先釋放動(dòng)態(tài)對(duì)象占用的內(nèi)存,再為其調(diào)用析構(gòu)函數(shù)11、可以在類外用p.a的形式訪問派生類對(duì)象p

5、的基類成員a,其中2是(D)。A.私有繼承的公用成員B.公用繼承的私有成員C.公用繼承的保護(hù)成員D.公用繼承的公用成員12、在公用繼承方式下,有關(guān)派生類對(duì)象和基類對(duì)象的關(guān)系,不正確的敘述是(C)。A.派生類的對(duì)象可以賦給基類的對(duì)象B.派生類的對(duì)象可以初始化基類的引用C.派生類的對(duì)象可以直接訪問基類中的成員D.派生類的對(duì)象的地址可以賦給指向基類的指針13、設(shè)置虛基類的目的是(B)A.簡(jiǎn)化程序B.消除二義性C.提高運(yùn)行效率D.減少目標(biāo)代碼14、在C+中,用于實(shí)現(xiàn)動(dòng)態(tài)多態(tài)性的是(D)A.內(nèi)聯(lián)函數(shù)B.重載函數(shù)C.模板函數(shù)15不能說明為虛函數(shù)的是(B)。A.析構(gòu)函數(shù)B.構(gòu)造函數(shù)C.類的成員函數(shù)D.虛函數(shù)

6、D,以上都不對(duì)16、如果一個(gè)類至少有一個(gè)純虛函數(shù),那么就稱該類為(A)A.抽象類B.派生類C.純基類D,以上都不對(duì)17、下面關(guān)于友元的描述中,錯(cuò)誤的是(D)。A.友元函數(shù)可以訪問該類的私有數(shù)據(jù)成員B. 一個(gè)類的友元類中的成員函數(shù)都是這個(gè)類的友元函數(shù)C.友元可以提高程序的運(yùn)行效率D.類與類之間的友元關(guān)系可以繼承18、下列運(yùn)算符中,(C)運(yùn)算符在C+中不能被重載。A.&&B.C.:D.new19、模板的使用實(shí)際上是將類模板實(shí)例化成一個(gè)(C)0A.函數(shù)B.對(duì)象C.類D.抽象類20、假定MyClass為一個(gè)類,則該類的拷貝構(gòu)造函數(shù)的聲明語句為(C)A. MyClass(MyClassx

7、)B. MyClass&(MyClassx)C. MyClass(MyClass&x)D.MyClass(MyClass*x)二、填空題(前16個(gè)空,每空1分,后2個(gè)空,每空2分,共20分)1、類和對(duì)象的關(guān)系可表述為:類是對(duì)象的抽象,而對(duì)象則是類的3。2、在C+中,三種繼承方式的說明符號(hào)為public、private和protected,如果不加說明,則默認(rèn)的繼承方式為private。3、如果只想保留公共基類的一個(gè)復(fù)制,就必須使用關(guān)鍵字virtual杷這個(gè)公共基類聲明為虛基類。4、若要把voidfun()定義為類A的友元函數(shù),則應(yīng)在類A的定義中加入語句friendvoidfun

8、(A&a)。5、類的靜態(tài)成員分為靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函強(qiáng)。6運(yùn)算符重載要求保持其原來的操作數(shù)個(gè)數(shù)、結(jié)合性、優(yōu)先級(jí)和語法結(jié)構(gòu)。7、通過關(guān)鍵字Template可以聲明模板,通過關(guān)鍵字class指定函數(shù)模板的類型參數(shù),有幾個(gè)類型參數(shù)就有幾個(gè)類型關(guān)鍵字。8、列出C+中兩種用戶自定義的數(shù)據(jù)類型:類、結(jié)構(gòu)體。9、構(gòu)造函數(shù)的作用是在創(chuàng)建對(duì)象時(shí)初始化對(duì)象的數(shù)據(jù)成員。10、后置自增運(yùn)算符“+”重載為類的成員函數(shù)(設(shè)類名為A)的形式為Aoperator+(int)。三、閱讀下面3個(gè)程序,寫出程序運(yùn)行時(shí)輸出的結(jié)果:(共13分)1、#include<iostream>usingnamespace

9、std;voidfun(int&a,int&b)intp;p=a;a=b;b=p;voidexchange(int&a,int&b,int&c)if(a<b)fun(a,b);if(a<c)fun(a,c);if(b<c)fun(b,c);intmain()inta=12,b=89,c=56;exchange(a,b,c);cout<<"a="<<a<<",b="<<b<<",c="<<c<<e

10、ndl;return0;2、#include<iostream>usingnamespacestd;classDatepublic:Date(int,int,int);Date(int,int);Date(int);Date();voiddisplay();private:intmonth,day,year;Date:Date(intm,intd,inty):month(m),day(d),year(y)Date:Date(intm,intd):month(m),day(d)year=2009;Date:Date(intm):month(m)day=1;year=2010;Date

11、:Date()month=1;day=1;year=2010;voidDate:display()cout<<month<<"/"<<day<<"/"<<year<<endl;intmain()Dated1(12,31,2009);Dated2(12,31);Dated3(1);Dated4;d1.display();d2.display();d3.display();d4.display();return0;3、#include<iostream>usingnamesp

12、acestd;classApublic:A()cout<<"constructingA"<<endl;A()cout<<"destructingA"<<endl;classB:publicApublic:B()cout<<"constructingB"<<endl;B()cout<<"destructingB"<<endl;classC:publicBpublic:C()cout<<"constru

13、ctingC"<<endl;C()cout<<"destructingC"<<endl;intmain()Cc1;return0;四、編程題(共27分)1、(1陰)已知復(fù)數(shù)類Complex的聲明如下:classComplexpublic:Complex();/無參構(gòu)造函數(shù)Complex(double);/轉(zhuǎn)換構(gòu)造函數(shù)Complex(double,double);/后兩個(gè)形參的構(gòu)造函數(shù)friendComplexoperator+(Complex&,Complex&);對(duì)“+”運(yùn)算符進(jìn)行重載friendostream

14、&operator<<(ostream&,Complex&);對(duì)“<<”運(yùn)算符進(jìn)行重載friendistream&operator>>(istream&,Complex&);對(duì)“>>”運(yùn)算符進(jìn)行重載private:doublereal,imag;要求:(1)寫出該類的所有構(gòu)造函數(shù)的類外定義代碼。(2)寫出對(duì)運(yùn)算符“+”、“<<"、“>>”進(jìn)行重載的運(yùn)算符重載函數(shù)的定義。2、(17分)下列Shap或是一個(gè)表示形狀的抽象類,area()為求圖形面積的函數(shù),total()

15、則是一個(gè)通用的用以求不同形狀的圖形面積總和的函數(shù)。classShapepublic:virtualdoublearea()=0;doubletotal(Shape*s,intn)doublesum=0.0;for(inti=0;i<n;i+)sum+=si->area();returnsum;要求:(1)從Shape類派生圓類(Circle)、正方形類(Square),圓類新增數(shù)據(jù)成員半徑(radius),正方形類新增數(shù)據(jù)成員邊長(zhǎng)(a),圓類和正方形類都有構(gòu)造函數(shù),修改、顯示數(shù)據(jù)成員值的函數(shù),求面積函數(shù)。(2)寫出main()函數(shù),計(jì)算半徑為5.5的圓和邊長(zhǎng)為9.9的正方形的面積和

16、(必須通過調(diào)用total函數(shù)計(jì)算)。面向?qū)ο蟪绦蛟O(shè)計(jì)C+期末考試試卷(B)標(biāo)準(zhǔn)答案班級(jí):姓名:學(xué)號(hào):分?jǐn)?shù):題號(hào)一二三四總分得分、單項(xiàng)選擇題(每小題2分,共40分)1-5.DACAD6-10.DBCDC11-15.DCBDB16-20.ADCCC二、填空題(前16個(gè)空,每空1分,后2個(gè)空,每空2分,共20分)1. 、OJ2. public、private、protected、private3. virtual4.friendvoidfun(A&a)5.靜態(tài)數(shù)據(jù)成員、靜態(tài)成員函數(shù)6.結(jié)合性、優(yōu)先級(jí)_.7. Template、class(或typename)8.、結(jié)構(gòu)體9. 在創(chuàng)建對(duì)象時(shí)初始

17、化對(duì)象的數(shù)據(jù)成員10. Aoperator+(int)_三、閱讀程序(共13分)1、a=89,b=56,c=122、12/31/200912/31/20091/1/20101/1/20103、constructingAconstructingBconstructingCdestructingCdestructingBdestructingA四、編程題(共27分)1、(1陰)Complex:Complex()real=0;imag=0;Complex:Complex(doubler)real=r;Complex:Complex(doubler,doublei)real=r;imag=i;Comp

18、lexoperator+(Complex&c1,Complex&c2)Complexc;c.real=c1.real+c2.real;c.imag=c1.imag+c2.imag;returnc;ostream&operator<<(ostream&output,Complex&c)output<<"("<<c.real<<"+"<<c.imag<<"i)"<<endl;returnoutput;istream&operator>>(istream&input,Complex&c)cout<<"inputrealandimaginarypartofcomplexnumber:"input>>c.real>>c.imag;returninput;2、(17分)classCircle:publicShapepublic:Circle(doubler)radius

溫馨提示

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