(完整版)《面向?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),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

2、t=&m;3、考慮下面的函數(shù)原型聲明:void testDefaulParam(int a,int b=7,char z='*');下面函數(shù)調(diào)用中,不合法的是()。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.函數(shù)的返回值類型B,參數(shù)的類型 C.函數(shù)名稱D.參數(shù)個(gè)數(shù)5、下列有關(guān)C+類的

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

4、分 B protected 部分 C public 部分D 以上都不對9、關(guān)于常數(shù)據(jù)成員的說法,不正確的是( ) 。A 常數(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)算符delet刪除一個(gè)動態(tài)對象時(shí)()。A 系統(tǒng)首先為該動態(tài)對象調(diào)用構(gòu)造函數(shù),再釋放其占用的內(nèi)存B 系統(tǒng)首先釋放該動態(tài)對象占用的內(nèi)存,再為其調(diào)用構(gòu)造函數(shù)C.系統(tǒng)首先為該動態(tài)對象調(diào)用析構(gòu)函數(shù),再釋放其占用的內(nèi)存D 系統(tǒng)首先釋放動態(tài)對象占用的內(nèi)存,再為其調(diào)

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

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

7、)。A . MyClass(MyClass x)B . MyClass&(MyClass x)C. MyClass(MyClass &x)D. MyClass(MyClass *x)二、填空題(前16個(gè)空,每空1分,后2個(gè)空,每空2分,共20分)1、類和對象的關(guān)系可表述為:類是對象的 ,而對象則是類的 2、在C+中,三種繼承方式的說明符號為 、和如果不加說明,則默認(rèn)的繼承方式為。3、如果只想保留公共基類的一個(gè)復(fù)制,就必須使用關(guān)鍵字 把這個(gè)公共基 類聲明為虛基類。4、若要把void fun()定義為類A的友元函數(shù),則應(yīng)在類A的定義中加入語5、類的靜態(tài)成員分為 和 o6、運(yùn)算符重載

8、要求保持其原來的操作數(shù)個(gè)數(shù)、 、 和語 法結(jié)構(gòu)。7、通過關(guān)鍵字 可以聲明模板,通過關(guān)鍵字 指定函數(shù)模板的 類型參數(shù),有幾個(gè)類型參數(shù)就有幾個(gè)類型關(guān)鍵字。8、列出C+中兩種用戶自定義的數(shù)據(jù)類型: 、。9、構(gòu)造函數(shù)的作用是 。10、后置自增運(yùn)算符“+”重載為類的成員函數(shù)(設(shè)類名為A)的形式為。 三、閱讀下面3個(gè)程序,寫出程序運(yùn)行時(shí)輸出的結(jié)果:(共13分)1、#include<iostream >using namespace std;void fun(int &a,int &b) int p;p=a; a=b; b=p;void exchange(int &a,i

9、nt &b,int &c) if(a<b)fun(a,b);if(a<c)fun(a,c);if(b<c)fun(b,c);int main() int a=12,b=89,c=56;exchange(a,b,c);cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl;return 0;2、#include <iostream>using namespace std;class D

10、atepublic:Date(int,int,int);Date(int,int);Date(int);Date();void display();private:int month, day, year;Date:Date(int m,int d,int y):month(m),day(d),year(y) Date:Date(int m,int d):month(m),day(d) year=2009;Date:Date(int m):month(m)day=1; year=2010; Date:Date() month=1; day=1; year=2010; void Date:dis

11、play()cout<<month<<"/"<<day<<"/"<<year<<endl; int main() Date d1(12,31,2009);Date d2(12,31);Date d3(1);Date d4;d1.display();d2.display();d3.display();d4.display();return 0;3、 #include <iostream>using namespace std;class A public:A()cout&l

12、t;<"constructing A "<<endl;A()cout<<"destructing A "<<endl;class B: public A public:B()cout<<"constructing B "<<endl;B()cout<<"destructing B "<<endl;class C : public B public:C()cout<<"constructing C &quo

13、t;<<endl;C()cout<<"destructing C "<<endl;int main() C c1;return 0;四、編程題(共27分)1、 ( 10分)已知復(fù)數(shù)類Complex 的聲明如下:class Complexpublic:Complex();/ 無參構(gòu)造函數(shù)Complex(double );/轉(zhuǎn)換構(gòu)造函數(shù)Complex(double, double);/W兩個(gè)形參的構(gòu)造函數(shù)friend Complex operator+(Complex&, Complex&); /對“ + ”運(yùn)算符進(jìn)行重載fr

14、iend ostream& operator<<(ostream&, Complex&); /對“ << ” 運(yùn)算符進(jìn)行重載friend istream& operator>>(istream&, Complex&);/對“ >>” 運(yùn)算符進(jìn)行重載 private:double real,imag;要求: ( 1)寫出該類的所有構(gòu)造函數(shù)的類外定義代碼。( 2)寫出對運(yùn)算符“+ ” 、 “ << ” 、 “ >> ”進(jìn)行重載的運(yùn)算符重載函數(shù)的定義。2、( 17分)下列Shap啖

15、是一個(gè)表示形狀的抽象類,area()為求圖形面積的函數(shù),total() 則是一個(gè)通用的用以求不同形狀的圖形面積總和的函數(shù)。class Shapepublic:virtual double area()=0;double total(Shape *s , int n) double sum=0.0;for(int i=0; i<n; i+) sum+=si->area( );return sum;要求:(1)從Shape類派生圓類(Circle)、正方形類(Squar,圓類新增數(shù)據(jù)成員半徑( radius) ,正方形類新增數(shù)據(jù)成員邊長(a) ,圓類和正方形類都有構(gòu)造函數(shù),修改、顯示數(shù)

16、據(jù)成員值的函數(shù),求面積函數(shù)。( 2)寫出main() 函數(shù),計(jì)算半徑為5.5的圓和邊長為9.9的正方形的面積和(必須通過調(diào)用total函數(shù)計(jì)算)。第 7 頁面向?qū)ο蟪绦蛟O(shè)計(jì) C+期末考試試卷(B)標(biāo)準(zhǔn)答案班級:姓名:學(xué)號:分?jǐn)?shù):題號一二三四總分得分、單項(xiàng)選擇題(每小題2分,共40分)1-5. D A C A D6-10. D B C D C11-15. D C B D B16-20. A D C C C二、填空題(前16個(gè)空,每空1分,后2個(gè)空,每空2分,共20分)1. MB、2. public、 private _、 protected 、 private 3. virtual 4. fri

17、end void fun(A &a)5.靜態(tài)數(shù)據(jù)成員、靜態(tài)成員函數(shù)6. 結(jié)合性 、 優(yōu)先級7. Template 、class( 或 typename) 8. IS、 結(jié)構(gòu)體 9. 在創(chuàng)建對象時(shí)初始化對象的數(shù)據(jù)成員_10. A operator+(int) 三、閱讀程序(共13分)1、a=89,b=56,c=122、12/31/200912/31/20091/1/20101/1/20103、 constructing Aconstructing Bconstructing Cdestructing Cdestructing Bdestructing A四、編程題(共27分)1、 ( 1

18、0分)Complex:Complex()real=0;imag=0;Complex:Complex(double r)real=r;Complex:Complex(double r,double i)real=r;imag=i;Complex operator+(Complex &c1,Complex &c2) Complex c;c.real=c1.real+c2.real; c.imag=c1.imag+c2.imag;return c;ostream& operator << (ostream& output,Complex& c) o

19、utput<<"("<<c.real<<"+"<<c.imag<<"i)"<<endl;return output;istream& operator >> (istream& input,Complex& c) cout<<"input real and imaginary part of complex number:"input>>c.real>>c.imag;return input;2、 ( 17分)class Circle:public Shapepublic:Circle(double r)radius=r;void set() cout<&l

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論