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

下載本文檔

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

文檔簡(jiǎn)介

《面向?qū)ο蟪绦蛟O(shè)計(jì)C++》期末考試試卷(A)班級(jí):姓名:學(xué)號(hào):分?jǐn)?shù):題號(hào)一二二四總分得分試卷說(shuō)明:本套試題共四個(gè)大題,全部題目都答在答題紙上,寫(xiě)在其他地方均無(wú)效。(答題紙?jiān)诒咎自嚲淼牡?0頁(yè)上)一、選擇題(每小題2分,共40分)1、C+隹(C)。A.面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言B.面向過(guò)程的程序設(shè)計(jì)語(yǔ)言C.既支持面向?qū)ο蟮某绦蛟O(shè)計(jì)又支持面向過(guò)程的程序設(shè)計(jì)的混合型語(yǔ)言D.非結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言2、面向?qū)ο蟪绦蛟O(shè)計(jì)思想的主要特征中不包括(D)。A.封裝性B.多態(tài)性C.繼承性D.功能分解,逐步求精3、若定義:stringstr;當(dāng)語(yǔ)句cin>>str; 執(zhí)行時(shí),從鍵盤(pán)輸入:MicrosoftVisualStudio!所得的2果是str=(B)0A.MicrosoftVisualStudio!B.MicrosoftC.MicrosoftVisual D.MicrosoftVisualStudio4、考慮下面的函數(shù)原型聲明:voidtestDefaulParam(inta,intb=7,charz='*');下面函數(shù)調(diào)用中,不合法的是(C)。A.testDefaulParam(5);B.testDefaulParam(5,8);C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*');正確重載的是(C5、下列語(yǔ)句中,將函數(shù) 正確重載的是(CA.floatsum(intx,inty);B.intsum(inta,intb);C.floatsum(floatx,floaty);D.doublesum(inty,intx);6、下列表示引用的方法中, (A)是正確的。已知:inta=1000;A.int&x=a;B.char&y;C.int&z=1000;D.float&t=&a;7、在一個(gè)函數(shù)中,要求通過(guò)函數(shù)來(lái)實(shí)現(xiàn)一種不太復(fù)雜的功能,并且要求加快執(zhí)行速度,選用(A)。A.內(nèi)聯(lián)函數(shù) B.重載函數(shù) C.遞歸調(diào)用D.嵌套調(diào)用8、下列有關(guān)C+談的說(shuō)法中,不正確的是(D)。類(lèi)是一種用戶(hù)自定義的數(shù)據(jù)類(lèi)型只有類(lèi)中的成員函數(shù)或類(lèi)的友元函數(shù)才能存取類(lèi)中的私有成員在類(lèi)中,如果不做特別說(shuō)明,所有成員的訪(fǎng)問(wèn)權(quán)限均為私有的在類(lèi)中,如果不做特別說(shuō)明,所有成員的訪(fǎng)問(wèn)權(quán)限均為公用的9、已知X類(lèi),則當(dāng)程序執(zhí)行到語(yǔ)句:Xarray[3];時(shí),調(diào)用了(D)次構(gòu)造函數(shù)。A.0B.1C.2D.310、下面說(shuō)法中,正確的是( B)一個(gè)類(lèi)只能定義一個(gè)構(gòu)造函數(shù),但可以定義多個(gè)析構(gòu)函數(shù)一個(gè)類(lèi)只能定義一個(gè)析構(gòu)函數(shù),但可以定義多個(gè)構(gòu)造函數(shù)構(gòu)造函數(shù)與析構(gòu)函數(shù)同名,只要名字前加了一個(gè)求反符號(hào)( ~)構(gòu)造函數(shù)可以指定返回類(lèi)型,而析構(gòu)函數(shù)不能指定任何返回類(lèi)型,即使是void類(lèi)型也不可以11、已知:print()函數(shù)是一個(gè)類(lèi)的常成員函數(shù),它無(wú)返回值,下列表示中,(A)是正確的。

voidprint()voidprint()const;constvoidprint();C.voidconstprint();D.voidprint(const);12、下面描述中,表達(dá)錯(cuò)誤的是(B)公用繼承時(shí)基類(lèi)中的public成員在派生類(lèi)中仍是 public的公用繼承時(shí)基類(lèi)中的private成員在派生類(lèi)中仍是 private的公用繼承時(shí)基類(lèi)中的protected成員在派生類(lèi)中仍是 protected的私有繼承時(shí)基類(lèi)中的public成員在派生類(lèi)中是 private的13、設(shè)置虛基類(lèi)的目的是(B)。A.簡(jiǎn)化程序B.消除二義性 C.提高運(yùn)行效率 D.減少目標(biāo)代碼14、下面(B)的敘述不符合賦值兼容規(guī)則。派生類(lèi)的對(duì)象可以賦值給基類(lèi)的對(duì)象基類(lèi)的對(duì)象可以賦值給派生類(lèi)的對(duì)象派生類(lèi)的對(duì)象可以初始化基類(lèi)的對(duì)象派生類(lèi)的對(duì)象的地址可以賦值給指向基類(lèi)的指針15、關(guān)于虛函數(shù)的描述中, (C)是正確的。虛函數(shù)是一個(gè) static類(lèi)型的成員函數(shù)虛函數(shù)是一個(gè)非成員函數(shù)基類(lèi)中說(shuō)明了虛函數(shù)后,派生類(lèi)中與其對(duì)應(yīng)的函數(shù)可不必說(shuō)明為虛函數(shù)派生類(lèi)的虛函數(shù)與基類(lèi)的虛函數(shù)具有不同的參數(shù)個(gè)數(shù)和類(lèi)型16、下面關(guān)于友元的描述中,錯(cuò)誤的是( D)。友元函數(shù)可以訪(fǎng)問(wèn)該類(lèi)的私有數(shù)據(jù)成員一個(gè)類(lèi)的友元類(lèi)中的成員函數(shù)都是這個(gè)類(lèi)的友元函數(shù)友元可以提高程序的運(yùn)行效率類(lèi)與類(lèi)之間的友元關(guān)系可以繼承17、下列關(guān)于靜態(tài)數(shù)據(jù)成員的說(shuō)法,不正確的是(C)。A.類(lèi)中定義的公用靜態(tài)數(shù)據(jù)成員,可以通過(guò)類(lèi)的對(duì)象來(lái)訪(fǎng)問(wèn)B.類(lèi)中定義的所有靜態(tài)數(shù)據(jù)成員,都必須在類(lèi)外初始化C.靜態(tài)數(shù)據(jù)成員不是所有對(duì)象所共用的D.普通的成員函數(shù)可以直接訪(fǎng)問(wèn)類(lèi)中的靜態(tài)數(shù)據(jù)成員18、如果表達(dá)式++i*k中的“++”和“*”都是重載的友元運(yùn)算符,若采用運(yùn)算符函數(shù)調(diào)用格式,則表達(dá)式還可以表示為(B)。A.operator*++(),k)B.operator*(operator++(i),k)C.++().operator*(k)D.*(operator++(i))19、下面對(duì)模板的聲明,正確的是(C)。A.template<T> B.template<classT1,T2>C.template<classT1,classT2>D.template<classT1;classT2>20、下列的各類(lèi)函數(shù)中,(C)不是類(lèi)的成員函數(shù)A.構(gòu)造函數(shù)B. 析構(gòu)函數(shù) C. 友元函數(shù) D.復(fù)制構(gòu)造函數(shù)二、填空題(前14個(gè)空,每空1分,后3個(gè)空,每空2分,共20分)1、類(lèi)和對(duì)象的關(guān)系可表述為:類(lèi)是對(duì)象的 抽象,而對(duì)象則是類(lèi)的」1。2、靜態(tài)成員函數(shù)沒(méi)有隱含的 this指針,所以,在C++?序中,靜態(tài)成員函數(shù)主要用來(lái)訪(fǎng)問(wèn)靜態(tài)數(shù)據(jù)成員,而不訪(fǎng)問(wèn)非靜態(tài)成員。3、在圖1中,A,B,C,D,E,F均是類(lèi),其中屬于單繼承的派生類(lèi)有E,屬于多繼承的派生類(lèi)有D、F,類(lèi)F的基類(lèi)有A、B、GDE,類(lèi)A的派生類(lèi)有D、F。圖1類(lèi)的繼承層次圖4、如果只想保留公共基類(lèi)的一個(gè)復(fù)制,就必須使用關(guān)鍵字 virtual把這個(gè)公共基類(lèi)聲明為虛基類(lèi)。5、從實(shí)現(xiàn)的角度來(lái)講,多態(tài)性可以劃分為兩類(lèi): 靜態(tài)多態(tài)性和動(dòng)態(tài)多態(tài)性。6、如果一個(gè)類(lèi)包含一個(gè)或多個(gè)純虛函數(shù),則該類(lèi)稱(chēng)為抽象類(lèi)。7、若要把voidfun()定義為類(lèi)A的友元函數(shù),則應(yīng)在類(lèi)A勺定義中加入語(yǔ)句friendvoidfun(A&a)。8、列出C+”的兩種代碼復(fù)用方式: 繼承和組合或模板9、析構(gòu)函數(shù)的作用是 在對(duì)象被系統(tǒng)釋放之前做一些內(nèi)存清理工作10、假定A是一個(gè)類(lèi)名,則該類(lèi)的拷貝構(gòu)造函數(shù)的原型說(shuō)明語(yǔ)句為: A(constA&)11、后置自增運(yùn)算符“++”重載為類(lèi)的成員函數(shù)(設(shè)類(lèi)名為A)的形式為:Aoperator++(int)三、閱讀下面4個(gè)程序,寫(xiě)出程序運(yùn)行時(shí)輸出的結(jié)果。(共13分)#include<iostream>usingnamespacestd;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<<endl;return0;}解1、a=89,b=56,c=12#include<iostream>usingnamespacestd;classA{public:A(){cout<<"A";}};classB{public:B(){cout<<"B";}};classC:publicA{public:C(){cout<<"C";}private:Bb;};intmain(){Cobj;return0;}解2、ABC#include<iostream>usingnamespacestd;classA{public:A(){cout<<"A::A()called.\n";}virtual~A(){cout<<"A::~A()called.\n";}};classB:publicA{public:B(inti){cout<<"B::B()called.\n";buf=newchar[i];}virtual~B(){delete[]buf;cout<<"B::~B()called.\n";}private:char*buf;};intmain(){A*a=newB(15);deletea;return0;}解3、A::A()called.B::~B()called.A::~A()called.B::B()called.、#include<iostream>usingnamespacestd;classA{public:voidf(){cout<<"CallA'sfunctionf()"<<endl;}};classB{public:voidf(){cout<<"CallB'sfunctionf()"<<endl;}voidg(){cout<<"CallB'sfunctiong()"<<endl;}};classC:publicA,publicB{public:voidg(){cout<<"CallC'sfunctiong()"<<endl;}};intmain(){Ccc;::f();::g();();return0;}解4、CallB'sfunctionf()CallB'sfunctiong()CallC'sfunctiong()四、編程題(27分)1、(10分)已知復(fù)數(shù)類(lèi)CompleX勺聲明如下:classComplex{public:Complex(); //無(wú)參構(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&operator<<(ostream&,Complex&);// 對(duì)“<<”運(yùn)算符進(jìn)行重載friendistream&operator>>(istream&,Complex&);// 對(duì)“>>”運(yùn)算符進(jìn)行重載private:doublereal,imag;};要求:(1)寫(xiě)出該類(lèi)的所有構(gòu)造函數(shù)的類(lèi)外定義代碼。(2)寫(xiě)出對(duì)運(yùn)算符“ +”、“<<”、“>>”進(jìn)行重載的運(yùn)算符重載函數(shù)的定義。2、(17分)下列Shap族是一個(gè)表示形狀的抽象類(lèi),area()為求圖形面積的函數(shù),total()則是一個(gè)通用的用以求不同形狀的圖形面積總和的函數(shù)。classShape{public:virtualdoublearea()=0;};doubletotal(Shape*s[],intn){doublesum=;for(inti=0;i<n;i++) sum+=s[i]->area();returnsum;}要求:(1)從Shape類(lèi)派生圓類(lèi)(Circle)、正方形類(lèi)(Square),圓類(lèi)新增數(shù)據(jù)成員半徑(radius),正方形類(lèi)新增數(shù)據(jù)成員邊長(zhǎng)( a),圓類(lèi)和正方形類(lèi)都有構(gòu)造函數(shù),修改、顯示數(shù)據(jù)成員值的函數(shù),求面積函數(shù)。(2)寫(xiě)出main()函數(shù),計(jì)算半徑為的圓和邊長(zhǎng)為的正方形的面積和(必須通過(guò)調(diào)用total函數(shù)計(jì)算)。四、編程題(共 27分)(10分)Complex::Complex(){real=0;imag=0;}Complex::Complex(doubler){real=r;}Complex::Complex(doubler,doublei){real=r;imag=i;}Complexoperator+(Complex&c1,Complex&c2){Complexc;=+;=+;returnc;}ostream&operator<<(ostream&output,Complex&c){output<<"("<<<<"+"<<<<"i)"<<endl;returnoutput;}istream&operator>>(istream&input,Complex&c){cout<<"inputrealandimaginaryparto

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論