面向?qū)ο蟪绦蛟O(shè)計(jì)C期末試卷及標(biāo)準(zhǔn)答案A_第1頁
面向?qū)ο蟪绦蛟O(shè)計(jì)C期末試卷及標(biāo)準(zhǔn)答案A_第2頁
面向?qū)ο蟪绦蛟O(shè)計(jì)C期末試卷及標(biāo)準(zhǔn)答案A_第3頁
面向?qū)ο蟪绦蛟O(shè)計(jì)C期末試卷及標(biāo)準(zhǔn)答案A_第4頁
面向?qū)ο蟪绦蛟O(shè)計(jì)C期末試卷及標(biāo)準(zhǔn)答案A_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、-PAGE 1. z面向?qū)ο蟪绦蛟O(shè)計(jì)C+期末考試試卷A班級:*:分?jǐn)?shù):題號一二三四總分得分試卷說明:本套試題共四個(gè)大題,全部題目都答在答題紙上,寫在其他地方均無效。答題紙?jiān)诒咎自嚲淼牡?0頁上一、選擇題每題2分,共40分1、C+是 C。 A.面向?qū)ο蟮某绦蛟O(shè)計(jì)語言 B.面向過程的程序設(shè)計(jì)語言 C.既支持面向?qū)ο蟮某绦蛟O(shè)計(jì)又支持面向過程的程序設(shè)計(jì)的混合型語言 D.非構(gòu)造化的程序設(shè)計(jì)語言2、面向?qū)ο蟪绦蛟O(shè)計(jì)思想的主要特征中不包括 D 。A.封裝性 B.多態(tài)性 C.繼承性 D.功能分解,逐步求精3、假設(shè)定義:string str; 當(dāng)語句cinstr; 執(zhí)行時(shí),從鍵盤輸入:Microsoft Vis

2、ual Studio 6.0!所得的結(jié)果是str= B 。A.Microsoft Visual Studio 6.0! B.MicrosoftC.Microsoft VisualD.Microsoft Visual Studio 6.04、考慮下面的函數(shù)原型聲明:void testDefaulParam(int a,int b=7,char z=*);下面函數(shù)調(diào)用中,不合法的是 C 。A.testDefaulParam(5); B.testDefaulParam(5,8);C.testDefaulParam(5,#); D.testDefaulParam(0,0,*);5、以下語句中,將函數(shù)i

3、nt sum(int *, int y)正確重載的是 C 。A. float sum(int *, int y); B. int sum(int a, int b);C. float sum(float *, float y); D. double sum(int y, int *);6、以下表示引用的方法中, A 是正確的。:int a=1000;A. int &*=a; B. char &y; C. int &z=1000; D. float &t=&a;7、在一個(gè)函數(shù)中,要求通過函數(shù)來實(shí)現(xiàn)一種不太復(fù)雜的功能,并且要求加快執(zhí)行速度,選用 A 。A. 聯(lián)函數(shù) B. 重載函數(shù) C. 遞歸調(diào)用

4、D. 嵌套調(diào)用8、以下有關(guān)C+類的說法中,不正確的選項(xiàng)是 D 。A. 類是一種用戶自定義的數(shù)據(jù)類型B. 只有類中的成員函數(shù)或類的友元函數(shù)才能存取類中的私有成員C. 在類中,如果不做特別說明,所有成員的訪問權(quán)限均為私有的D. 在類中,如果不做特別說明,所有成員的訪問權(quán)限均為公用的9、*類,則當(dāng)程序執(zhí)行到語句:* array3;時(shí),調(diào)用了 D 次構(gòu)造函數(shù)。A. 0 B. 1 C. 2 D. 310、下面說法中,正確的選項(xiàng)是 BA. 一個(gè)類只能定義一個(gè)構(gòu)造函數(shù),但可以定義多個(gè)析構(gòu)函數(shù)B. 一個(gè)類只能定義一個(gè)析構(gòu)函數(shù),但可以定義多個(gè)構(gòu)造函數(shù)C. 構(gòu)造函數(shù)與析構(gòu)函數(shù)同名,只要名字前加了一個(gè)求反符號D.

5、構(gòu)造函數(shù)可以指定返回類型,而析構(gòu)函數(shù)不能指定任何返回類型,即使是void類型也不可以11、:print( )函數(shù)是一個(gè)類的常成員函數(shù),它無返回值,以下表示中, A 是正確的。 A.void print( ) const; B.const void print( );C.void const print( ); D.void print(const);12、下面描述中,表達(dá)錯(cuò)誤的選項(xiàng)是 B A. 公用繼承時(shí)基類中的public成員在派生類中仍是public的B. 公用繼承時(shí)基類中的private成員在派生類中仍是private的C. 公用繼承時(shí)基類中的protected成員在派生類中仍是prot

6、ected的D. 私有繼承時(shí)基類中的public成員在派生類中是private的13、設(shè)置虛基類的目的是 B 。A. 簡化程序 B. 消除二義性 C. 提高運(yùn)行效率 D. 減少目標(biāo)代碼14、下面 B 的表達(dá)不符合賦值兼容規(guī)則。A. 派生類的對象可以賦值給基類的對象B. 基類的對象可以賦值給派生類的對象C. 派生類的對象可以初始化基類的對象D. 派生類的對象的地址可以賦值給指向基類的指針15、關(guān)于虛函數(shù)的描述中, C 是正確的。 A. 虛函數(shù)是一個(gè)static類型的成員函數(shù) B. 虛函數(shù)是一個(gè)非成員函數(shù) C. 基類中說明了虛函數(shù)后,派生類中與其對應(yīng)的函數(shù)可不必說明為虛函數(shù) D. 派生類的虛函數(shù)與

7、基類的虛函數(shù)具有不同的參數(shù)個(gè)數(shù)和類型16、下面關(guān)于友元的描述中,錯(cuò)誤的選項(xiàng)是 D 。A. 友元函數(shù)可以訪問該類的私有數(shù)據(jù)成員B. 一個(gè)類的友元類中的成員函數(shù)都是這個(gè)類的友元函數(shù)C. 友元可以提高程序的運(yùn)行效率D. 類與類之間的友元關(guān)系可以繼承17、以下關(guān)于靜態(tài)數(shù)據(jù)成員的說法,不正確的選項(xiàng)是 C 。A. 類中定義的公用靜態(tài)數(shù)據(jù)成員,可以通過類的對象來訪問B. 類中定義的所有靜態(tài)數(shù)據(jù)成員,都必須在類外初始化C. 靜態(tài)數(shù)據(jù)成員不是所有對象所共用的D. 普通的成員函數(shù)可以直接訪問類中的靜態(tài)數(shù)據(jù)成員18、如果表達(dá)式+i*k中的+和*都是重載的友元運(yùn)算符,假設(shè)采用運(yùn)算符函數(shù)調(diào)用格式,則表達(dá)式還可以表示為

8、B 。A. operator*(i.operator+(),k) B. operator*(operator+(i),k)C. i.operator+().operator*(k) D. k.operator*(operator+(i)19、下面對模板的聲明,正確的選項(xiàng)是 C 。A.templateB. templateC. template D. template20、以下的各類函數(shù)中, C 不是類的成員函數(shù)A. 構(gòu)造函數(shù) B. 析構(gòu)函數(shù) C. 友元函數(shù) D. 復(fù)制構(gòu)造函數(shù)二、填空題前14個(gè)空,每空1分,后3個(gè)空,每空2分,共20分1、類和對象的關(guān)系可表述為:類是對象的 抽象 ,而對象則是類

9、的實(shí)例。2、靜態(tài)成員函數(shù)沒有隱含的this指針,所以,在C+程序中,靜態(tài)成員函數(shù)主要用來訪問靜態(tài)數(shù)據(jù)成員,而不訪問非靜態(tài)成員。3、在圖1中,A,B,C,D,E,F(xiàn)均是類,其中屬于單繼承的派生類有E,屬于多繼承的派生類有D、F,類F的基類有A、B、C、D、E,類A的派生類有D、F。ABCDEF圖1 類的繼承層次圖4、如果只想保存公共基類的一個(gè)復(fù)制,就必須使用關(guān)鍵字virtual把這個(gè)公共基類聲明為虛基類。5、從實(shí)現(xiàn)的角度來講,多態(tài)性可以劃分為兩類: 靜態(tài)多態(tài)性 和 動(dòng)態(tài)多態(tài)性 。6、如果一個(gè)類包含一個(gè)或多個(gè)純虛函數(shù),則該類稱為 抽象類 。7、假設(shè)要把void fun()定義為類A的友元函數(shù),則應(yīng)

10、在類A的定義中參加語句 friend void fun(A &a) 。8、列出C+中的兩種代碼復(fù)用方式: 繼承 和 組合 或模板 9、析構(gòu)函數(shù)的作用是 在對象被系統(tǒng)釋放之前做一些存清理工作 10、假定A是一個(gè)類名,則該類的拷貝構(gòu)造函數(shù)的原型說明語句為: A(const A&)11、后置自增運(yùn)算符+重載為類的成員函數(shù)設(shè)類名為A的形式為:A operator+(int)三、閱讀下面4個(gè)程序,寫出程序運(yùn)行時(shí)輸出的結(jié)果。共13分1、#includeusing namespace std;void fun(int &a,int &b) int p; p=a; a=b; b=p;void e*change

11、(int &a,int &b,int &c) if(ab)fun(a,b); if(ac)fun(a,c); if(bc)fun(b,c);int main() int a=12,b=89,c=56;e*change(a,b,c); couta=a,b=b,c=cendl;return 0;解1、a=89,b=56,c=122、#include using namespace std;class A public: A( ) cout A; ;class B public:B( ) cout B; ;class C: public A public: C( ) cout C; private:

12、B b;int main ( ) C obj; return 0; 解2、ABC3、#include using namespace std;class Apublic:A()coutA:A() called.n;virtual A()coutA:A() called.n; class B:public Apublic:B(int i) coutB:B() called.n;buf=new chari;virtual B() delete buf; coutB:B() called.n;private:char *buf;int main() A *a=new B(15);delete a;r

13、eturn 0;解3、A:A() called.B:B() called.A:A() called.B:B() called.4、#include using namespace std;class Apublic:void f()coutCall As function f()endl;class Bpublic:void f() coutCall Bs function f()endl;void g() coutCall Bs function g()endl; ;class C:public A,public Bpublic:void g()coutCall Cs function g(

14、)endl;int main()C cc;cc.B:f(); cc.B:g();cc.g();return 0;解4、Call Bs function f() Call Bs function g() Call Cs function g()四、編程題27分1、10分 復(fù)數(shù)類Comple*的聲明如下:class Comple*public: Comple*(); /無參構(gòu)造函數(shù)Comple*(double); /轉(zhuǎn)換構(gòu)造函數(shù)Comple*(double,double); /有兩個(gè)形參的構(gòu)造函數(shù)friend Comple* operator+(Comple*&, Comple*&); /對+運(yùn)算

15、符進(jìn)展重載 friend ostream& operator(ostream&, Comple*&); /對(istream&, Comple*&); /對運(yùn)算符進(jìn)展重載private: double real,imag;要求:1寫出該類的所有構(gòu)造函數(shù)的類外定義代碼。 2寫出對運(yùn)算符+、進(jìn)展重載的運(yùn)算符重載函數(shù)的定義。2、17分以下Shape類是一個(gè)表示形狀的抽象類,area( )為求圖形面積的函數(shù),total( )則是一個(gè)通用的用以求不同形狀的圖形面積總和的函數(shù)。class Shapepublic:virtual double area()=0;double total(Shape *s ,

16、int n) double sum=0.0; for(int i=0;iarea( );return sum; 要求:1從Shape類派生圓類(Circle)、正方形類Square,圓類新增數(shù)據(jù)成員半徑radius,正方形類新增數(shù)據(jù)成員邊長a,圓類和正方形類都有構(gòu)造函數(shù),修改、顯示數(shù)據(jù)成員值的函數(shù),求面積函數(shù)。 2寫出main()函數(shù),計(jì)算半徑為5.5的圓和邊長為9.9的正方形的面積和必須通過調(diào)用total函數(shù)計(jì)算。四、編程題共27分1、10分Comple*:Comple*()real=0;imag=0;Comple*:Comple*(double r)real=r;Comple*:Compl

17、e*(double r,double i)real=r;imag=i;Comple* operator+(Comple* &c1,Comple* &c2) Comple* c; c.real=c1.real+c2.real; c.imag=c1.imag+c2.imag; return c;ostream& operator (ostream& output,Comple*& c) output(c.real+c.imagi) (istream& input,Comple*& c) coutc.realc.imag; return input;2、17分class Circle:public Shapepublic: Circle(double r)radius=r;void set()coutPlease input the value of the circle:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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

提交評論