版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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)一二三四總分得分試卷說(shuō)明:本套試題共四個(gè)大題,全部題目都答在答題紙上,寫(xiě)在其他地方均無(wú)效。(答題紙?jiān)诒咎自嚲淼牡?0頁(yè)上)一、 選擇題(每小題2分,共40分)1、面向?qū)ο蟪绦蛟O(shè)計(jì)思想的主要特征中不包括( D )。A. 封裝性 B. 多態(tài)性 C. 繼承性 D. 功能分解,逐步求精2、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ǔ)言3、若定義:string str; 當(dāng)語(yǔ)句cin>>st
2、r; 執(zhí)行時(shí),從鍵盤(pán)輸入:Microsoft Visual Studio 6.0!所得的結(jié)果是str=( B )。A. Microsoft Visual Studio 6.0! B. MicrosoftC. Microsoft Visual D. 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. testDefaulP
3、aram(5,'#'); D. testDefaulParam(0,0,'*');5、下列語(yǔ)句中,將函數(shù)int sum(int x, int y)正確重載的是( C )。A. float sum(int x, int y); B. int sum(int a, int b);C. float sum(float x, float y); D. double sum(int y, int x);6、下列表示引用的方法中,( A )是正確的。已知:int a=1000;A. int &x=a; B. char &y; C. int &z=10
4、00; 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+類(lèi)的說(shuō)法中,不正確的是( D )。A. 類(lèi)是一種用戶自定義的數(shù)據(jù)類(lèi)型B. 只有類(lèi)中的成員函數(shù)或類(lèi)的友元函數(shù)才能存取類(lèi)中的私有成員C. 在類(lèi)中,如果不做特別說(shuō)明,所有成員的訪問(wèn)權(quán)限均為私有的D. 在類(lèi)中,如果不做特別說(shuō)明,所有成員的訪問(wèn)權(quán)限均為公用的9、下面說(shuō)法中,正確的是( B )A. 一個(gè)類(lèi)只能定義一個(gè)構(gòu)造函數(shù),但可以定義多個(gè)析構(gòu)函數(shù)B. 一個(gè)類(lèi)只能定義一個(gè)析構(gòu)函數(shù),但
5、可以定義多個(gè)構(gòu)造函數(shù)C. 構(gòu)造函數(shù)與析構(gòu)函數(shù)同名,只要名字前加了一個(gè)求反符號(hào)()D. 構(gòu)造函數(shù)可以指定返回類(lèi)型,而析構(gòu)函數(shù)不能指定任何返回類(lèi)型,即使是void類(lèi)型也不可以10、已知X類(lèi),則當(dāng)程序執(zhí)行到語(yǔ)句:X array3;時(shí),調(diào)用了( D )次構(gòu)造函數(shù)。A. 0 B. 1 C. 2 D. 311、已知:print( )函數(shù)是一個(gè)類(lèi)的常成員函數(shù),它無(wú)返回值,下列表示中,( A )是正確的。 A. void print( ) const; B. const void print( ); C. void const print( ); D. void print(const);12、下面描述中,表
6、達(dá)錯(cuò)誤的是( B ) A. 公用繼承時(shí)基類(lèi)中的public成員在派生類(lèi)中仍是public的B. 公用繼承時(shí)基類(lèi)中的private成員在派生類(lèi)中仍是private的C. 公用繼承時(shí)基類(lèi)中的protected成員在派生類(lèi)中仍是protected的D. 私有繼承時(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ī)則。A. 派生類(lèi)的對(duì)象可以賦值給基類(lèi)的對(duì)象B. 基類(lèi)的對(duì)象可以賦值給派生類(lèi)的對(duì)象C. 派生類(lèi)的對(duì)象可以初始化基類(lèi)的對(duì)象D. 派生類(lèi)的對(duì)象的地
7、址可以賦值給指向基類(lèi)的指針15、關(guān)于虛函數(shù)的描述中,( C )是正確的。 A. 虛函數(shù)是一個(gè)static類(lèi)型的成員函數(shù) B. 虛函數(shù)是一個(gè)非成員函數(shù) C. 基類(lèi)中說(shuō)明了虛函數(shù)后,派生類(lèi)中與其對(duì)應(yīng)的函數(shù)可不必說(shuō)明為虛函數(shù) D. 派生類(lèi)的虛函數(shù)與基類(lèi)的虛函數(shù)具有不同的參數(shù)個(gè)數(shù)和類(lèi)型16、下面關(guān)于友元的描述中,錯(cuò)誤的是( D )。A. 友元函數(shù)可以訪問(wèn)該類(lèi)的私有數(shù)據(jù)成員B. 一個(gè)類(lèi)的友元類(lèi)中的成員函數(shù)都是這個(gè)類(lèi)的友元函數(shù)C. 友元可以提高程序的運(yùn)行效率D. 類(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)訪問(wèn)B.
8、 類(lèi)中定義的所有靜態(tài)數(shù)據(jù)成員,都必須在類(lèi)外初始化C. 靜態(tài)數(shù)據(jù)成員不是所有對(duì)象所共用的D. 普通的成員函數(shù)可以直接訪問(wèn)類(lèi)中的靜態(tài)數(shù)據(jù)成員18、如果表達(dá)式+i*k中的“+”和“*”都是重載的友元運(yùn)算符,若采用運(yùn)算符函數(shù)調(diào)用格式,則表達(dá)式還可以表示為( B )。A. operator*(i.operator+(),k) B. operator*(operator+(i),k)C. i.operator+().operator*(k) D. k.operator*(operator+(i)19、下面對(duì)模板的聲明,正確的是( C )。A. template<T> B. template&l
9、t;class T1, T2>C. template<class T1, class T2> D. template<class T1; class T2>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、靜態(tài)成員函數(shù)沒(méi)有隱含的 this指針 ,所以,在C+程序中,靜態(tài)成員函數(shù)主要用來(lái)訪問(wèn)靜態(tài)數(shù)據(jù)成員,而不訪問(wèn)非靜態(tài)成員。2、類(lèi)和對(duì)象的關(guān)系可表述為:類(lèi)是對(duì)象的 抽象 ,而對(duì)象則是類(lèi)的 實(shí)例 。3、在圖1中,A,B,C,D,E,F(xiàn)均是
10、類(lèi),其中屬于單繼承的派生類(lèi)有 E ,屬于多繼承的派生類(lèi)有 D、F ,類(lèi)F的基類(lèi)有 ABCDE ,類(lèi)A的派生類(lèi)有 DF 。ABCDEF圖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)稱為 抽象類(lèi) 。7、若要把void fun()定義為類(lèi)A的友元函數(shù),則應(yīng)在類(lèi)A的定義中加入語(yǔ)句 friend void fun(A &a) 。8、列出C+中的兩種代碼復(fù)用方式:繼承 和 組合或模板 。9析構(gòu)函數(shù)的作用是 在對(duì)
11、象被系統(tǒng)釋放前,清理內(nèi)存 。10、假定A是一個(gè)類(lèi)名,則該類(lèi)的拷貝構(gòu)造函數(shù)的原型說(shuō)明語(yǔ)句為: A(const A&) 。11、后置自增運(yùn)算符“+”重載為類(lèi)的成員函數(shù)(設(shè)類(lèi)名為A)的形式為: A operator +(int) 。三、閱讀下面4個(gè)程序,寫(xiě)出程序運(yùn)行時(shí)輸出的結(jié)果。(共13分)1、#include <iostream>using namespace std;class A public: A( ) cout << "A" ;class B public:B( ) cout <<"B" ;class C:
12、 public A public: C( ) cout << "C" private: B b;int main ( ) C obj; return 0; 答案:2、ABC2、#include<iostream >using namespace std;void fun(int &a, int &b) int p; p=a; a=b; b=p;void exchange(int &a, int &b, int &c) if( a<b ) fun(a, b); if( a<c ) fun(a, c);
13、 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;答案:1、a=89,b=56,c=123、#include <iostream>using namespace std;class Apublic:A()cout<<"A:A
14、() called.n"virtual A()cout<<"A:A() called.n" class B: public Apublic:B(int i) cout<<"B:B() called.n"buf=new chari;virtual B() delete buf; cout<<"B:B() called.n"private:char *buf;int main() A *a=new B(15);delete a;return 0;答案:3、A:A() called. B:B()
15、 called. B:B() called.A:A() called.4、#include <iostream>using namespace std;class Apublic:void f()cout<<"Call A's function f()"<<endl;class Bpublic:void f() cout<<"Call B's function f()"<<endl;void g() cout<<"Call B's function
16、g()"<<endl; ;class C: public A, public Bpublic:void g()cout<<"Call C's function g()"<<endl;int main()C cc;cc.B:f(); cc.B:g();cc.g();return 0;答案4、Call B's function f() Call B's function g() Call C's function g()四、編程題(27分)1、(17分)下列Shape類(lèi)是一個(gè)表示形狀的抽象類(lèi),area
17、( )為求圖形面積的函數(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類(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ù)。
18、(2)寫(xiě)出main()函數(shù),計(jì)算半徑為5.5的圓和邊長(zhǎng)為9.9的正方形的面積和(必須通過(guò)調(diào)用total函數(shù)計(jì)算)。答案:2、(17分)class Circle:public Shapepublic: Circle(double r)radius=r;void set()cout<<"Please input the value of the circle:"<<endl;cin>>radius; void show()cout<<"the radius of the circle="<<radi
19、us<<endl; double area() return 3.14159*radius*radius;private:double radius;class Square:public Shapepublic: Square(double a)this->a=a;void set()cout<<"Please input the value of a:"<<endl;cin>>a; void show()cout<<"a="<<a<<endl; double a
20、rea()return a*a;private:double a;int main()Circle C(5.5);C.show();Square S(9.9);S.show();Shape *s=&C,&S;cout<<"total="<<total(s,2)<<endl;return 0;2、(10分) 已知復(fù)數(shù)類(lèi)Complex的聲明如下:class Complexpublic: Complex(); /無(wú)參構(gòu)造函數(shù) Complex(double ); /轉(zhuǎn)換構(gòu)造函數(shù)Complex(double, double); /有兩個(gè)形參的構(gòu)造函數(shù) friend Complex operator+(Complex&, Complex&); /對(duì)“+”運(yùn)算符進(jìn)行重載 friend ostream& operator<<(ostream&, Complex&); /對(duì)“<<”運(yùn)算符進(jìn)行重載 friend istream& operator>>(istream&, Complex&); /對(duì)“>>”運(yùn)算符進(jìn)行重載private: double real,imag;要求:(1)寫(xiě)出
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版新型食用菌保健品區(qū)域總代銷(xiāo)售與售后服務(wù)合同3篇
- 二零二五年度環(huán)保節(jié)能產(chǎn)品推廣合同4篇
- 2025年陶瓷原料質(zhì)量檢測(cè)與認(rèn)證合同2篇
- 2025年度門(mén)禁系統(tǒng)設(shè)備租賃與運(yùn)營(yíng)維護(hù)協(xié)議4篇
- 二手車(chē)交易市場(chǎng)租賃合同范本2024年適用
- 二零二五年度辦公樓窗簾節(jié)能改造承包合同4篇
- 2025年度智慧停車(chē)場(chǎng)設(shè)計(jì)與運(yùn)營(yíng)服務(wù)合同4篇
- 2025年文化中心場(chǎng)地租賃合同終止及合作開(kāi)發(fā)意向書(shū)3篇
- 天津市應(yīng)急保障2025年度專(zhuān)用車(chē)輛租賃合同2篇
- 二零二五年度土地承包經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同流轉(zhuǎn)規(guī)范版
- 2024-2025學(xué)年山東省濰坊市高一上冊(cè)1月期末考試數(shù)學(xué)檢測(cè)試題(附解析)
- 江蘇省揚(yáng)州市蔣王小學(xué)2023~2024年五年級(jí)上學(xué)期英語(yǔ)期末試卷(含答案無(wú)聽(tīng)力原文無(wú)音頻)
- 數(shù)學(xué)-湖南省新高考教學(xué)教研聯(lián)盟(長(zhǎng)郡二十校聯(lián)盟)2024-2025學(xué)年2025屆高三上學(xué)期第一次預(yù)熱演練試題和答案
- 決勝中層:中層管理者的九項(xiàng)修煉-記錄
- 幼兒園人民幣啟蒙教育方案
- 單位就業(yè)人員登記表
- 衛(wèi)生監(jiān)督協(xié)管-醫(yī)療機(jī)構(gòu)監(jiān)督
- 記錄片21世紀(jì)禁愛(ài)指南
- 腰椎間盤(pán)的診斷證明書(shū)
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)七 裂變傳播
- 單級(jí)倒立擺系統(tǒng)建模與控制器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論