




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
PAGE1第4頁《面向?qū)ο蟪绦蛟O(shè)計C++》期末考試試卷(A)班級:姓名:學(xué)號:分?jǐn)?shù):題號一二三四總分得分試卷說明:本套試題共四個大題,全部題目都答在答題紙上,寫在其他地方均無效。(答題紙在本套試卷的第10頁上)一、選擇題(每小題2分,共40分)1、C++是(C)。A.面向?qū)ο蟮某绦蛟O(shè)計語言B.面向過程的程序設(shè)計語言C.既支持面向?qū)ο蟮某绦蛟O(shè)計又支持面向過程的程序設(shè)計的混合型語言D.非結(jié)構(gòu)化的程序設(shè)計語言2、面向?qū)ο蟪绦蛟O(shè)計思想的主要特征中不包括(D)。A.封裝性B.多態(tài)性C.繼承性D.功能分解,逐步求精3、若定義:stringstr;當(dāng)語句cin>>str;執(zhí)行時,從鍵盤輸入:MicrosoftVisualStudio6.0!所得的結(jié)果是str=(B)。A.MicrosoftVisualStudio6.0!B.MicrosoftC.MicrosoftVisualD.MicrosoftVisualStudio6.04、考慮下面的函數(shù)原型聲明:voidtestDefaulParam(inta,intb=7,charz='*');下面函數(shù)調(diào)用中,不合法的是(C)。A.testDefaulParam(5);B.testDefaulParam(5,8);C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*');5、下列語句中,將函數(shù)intsum(intx,inty)正確重載的是(C)。A.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、在一個函數(shù)中,要求通過函數(shù)來實現(xiàn)一種不太復(fù)雜的功能,并且要求加快執(zhí)行速度,選用(A)。A.內(nèi)聯(lián)函數(shù)B.重載函數(shù)C.遞歸調(diào)用D.嵌套調(diào)用8、下列有關(guān)C++類的說法中,不正確的是(D)。A.類是一種用戶自定義的數(shù)據(jù)類型B.只有類中的成員函數(shù)或類的友元函數(shù)才能存取類中的私有成員C.在類中,如果不做特別說明,所有成員的訪問權(quán)限均為私有的D.在類中,如果不做特別說明,所有成員的訪問權(quán)限均為公用的9、已知X類,則當(dāng)程序執(zhí)行到語句:Xarray[3];時,調(diào)用了(D)次構(gòu)造函數(shù)。A.0B.1C.2D10、下面說法中,正確的是(B)A.一個類只能定義一個構(gòu)造函數(shù),但可以定義多個析構(gòu)函數(shù)B.一個類只能定義一個析構(gòu)函數(shù),但可以定義多個構(gòu)造函數(shù)C.構(gòu)造函數(shù)與析構(gòu)函數(shù)同名,只要名字前加了一個求反符號(~)D.構(gòu)造函數(shù)可以指定返回類型,而析構(gòu)函數(shù)不能指定任何返回類型,即使是void類型也不可以11、已知:print()函數(shù)是一個類的常成員函數(shù),它無返回值,下列表示中,(A)是正確的。A.voidprint()const;B.constvoidprint();C.voidconstprint();D.voidprint(const);12、下面描述中,表達錯誤的是(B)A.公用繼承時基類中的public成員在派生類中仍是public的B.公用繼承時基類中的private成員在派生類中仍是private的C.公用繼承時基類中的protected成員在派生類中仍是protected的9析構(gòu)函數(shù)的作用是在對象被系統(tǒng)釋放前,清理內(nèi)存。10、假定A是一個類名,則該類的拷貝構(gòu)造函數(shù)的原型說明語句為:A(constA&)。11、后置自增運算符“++”重載為類的成員函數(shù)(設(shè)類名為A)的形式為:Aoperator++(int)。三、閱讀下面4個程序,寫出程序運行時輸出的結(jié)果。(共13分)1、#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=122、#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、ABC3、#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.B::~B()called.A::~A()called.4、#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; cc.B::f();cc.B::g(); cc.g(); return0;}答案4、CallB'sfunctionf()CallB'sfunctiong()CallC'sfunctiong()四、編程題(27分)1、(10分)已知復(fù)數(shù)類Complex的聲明如下:classComplex{public:Complex();//無參構(gòu)造函數(shù)Complex(double);//轉(zhuǎn)換構(gòu)造函數(shù)Complex(double,double);//有兩個形參的構(gòu)造函數(shù)friendComplexoperator+(Complex&,Complex&);//對“+”運算符進行重載friendostream&operator<<(ostream&,Complex&);//對“<<”運算符進行重載friendistream&operator>>(istream&,Complex&);//對“>>”運算符進行重載private:doublereal,imag;};要求:(1)寫出該類的所有構(gòu)造函數(shù)的類外定義代碼。(2)寫出對運算符“+”、“<<”、“>>”進行重載的運算符重載函數(shù)的定義。答案:1、(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;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分)下列Shape類是一個表示形狀的抽象類,area()為求圖形面積的函數(shù),total()則是一個通用的用以求不同形狀的圖形面積總和的函數(shù)。classShape{public: virtualdoublearea()=0;};doubletotal(Shape*s[],intn){ doublesum=0.0;for(inti=0;i<n;i++) sum+=s[i]->area(); returnsum;}要求:(1)從Shape類派生圓類(Circle)、正方形類(Square),圓類新增數(shù)據(jù)成員半徑(radius),正方形類新增數(shù)據(jù)成員邊長(a),圓類和正方形類都有構(gòu)造函數(shù),修改、顯示數(shù)據(jù)成員值的函數(shù),求面積函數(shù)。(2)寫出main()函數(shù),計算半徑為5.5的圓和邊長為9.9的正方形的面積和(必須通過調(diào)用total函數(shù)計算)。答案:2、(17分)classCircle:publicShape{public:Circle(doubler){radius=r;} voidset() { cout<<"Pleaseinputthevalueofthecircle:"<<endl; cin>>radius; }voidshow() { cout<<"theradiusofthecircle="<<radius<<endl; }doublearea(){return3.14159*radius*radius;}private: doubleradius;};classSquare:publicShape{public:Square(doublea){this->a=a;} voidset()
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《辯論賽技巧與策略》課件
- 2025體育教師學(xué)期工作總結(jié)(15篇)
- 骨干教師培訓(xùn)計劃(16篇)
- 閱讀的演講稿(19篇)
- 2025年10月教師述職報告范文(18篇)
- 小學(xué)清明節(jié)國旗下講話稿(4篇)
- 佛山假山施工方案
- 校園食品安全宣傳周活動總結(jié)(35篇)
- 消防干道施工方案
- 大專自我鑒定200字(12篇)
- 無人機吊裝作業(yè)安全措施
- 2012年7月國家開放大學(xué)專本科《法律文書》期末紙質(zhì)考試試題及答案
- 《永輝超市營運能力現(xiàn)狀、問題及優(yōu)化建議探析》10000字【論文】
- 2024鐵路通信線路施工合同規(guī)范范本3篇
- 2025年拉桿箱項目可行性研究報告
- 雙全日培訓(xùn)課件
- 個人北京租房合同范本下載
- 甲油膠行業(yè)報告
- 露天礦排土場初步設(shè)計
- DB51T 692-2018 中小學(xué)實驗室設(shè)備技術(shù)規(guī)范
- 山東省萊西市2024-2025學(xué)年高一語文下學(xué)期3月月考試題含解析
評論
0/150
提交評論