C期末復習卷2_第1頁
C期末復習卷2_第2頁
C期末復習卷2_第3頁
C期末復習卷2_第4頁
全文預覽已結(jié)束

下載本文檔

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

文檔簡介

1、班級學號姓名一、選擇題(每題2分,共10×2=20分)1. 以下有關(guān)構(gòu)造函數(shù)的敘述不正確的是( )。A. 構(gòu)造函數(shù)名必須和類名一致 B. 構(gòu)造函數(shù)在定義對象是自動執(zhí)行C構(gòu)造函數(shù)無任何函數(shù)類型 D. 在一個類中構(gòu)造函數(shù)有且僅有一個2. 下列運算符中,( )運算符在C+中不能重載。A.?:B.C.newD.&&3. 有以下類的定義,其中出錯的位置是( )class Csample Csample(); / Apublic: int a=10; / B Csample(int a0); / C Csample(); / D;4. 以下敘述中不正確的是( )A.某類的友元類中

2、的所有成員函數(shù)可以存取或修改該類中的私有成員。B.類的一個成員只能具有一種訪問控制屬性C.構(gòu)造函數(shù)和析構(gòu)函數(shù)是特殊的成員函數(shù),因此不允許重載D.通過對象只能訪問類的公有成員5. 設(shè)A為test類的對象且賦有初值,則語句test B=A;表示( )A. 語法錯誤 B. 為對象A定義一個別名C. 將對象A復制給對象B D. 僅說明B和A屬于同一個類6. 友元函數(shù)的作用是( )A.提高程序的效率 B.加強類的封裝性C.實現(xiàn)數(shù)據(jù)的隱蔽性 D.增加成員函數(shù)的種類7. 以下關(guān)于靜態(tài)成員函數(shù)的敘述不正確的是( )A.靜態(tài)成員函數(shù)屬于整個類B.對靜態(tài)成員函數(shù)的引用允許使用對象名C.在靜態(tài)成員函數(shù)中不能直接引用

3、類的非靜態(tài)成員D. 使用類名可以直接調(diào)用其靜態(tài)成員函數(shù)8. 以下敘述正確的是( )A.派生類中不可以定義與基類中同名的成員變量B.派生類中不可以重載成員函數(shù)C.派生類中不能調(diào)用基類中的同名函數(shù)D.以上三項均不正確9. 設(shè)有以下類和對象的定義:class Apublic: int m;A k1,k2,*p1,*p2;則下面針對成員變量m的引用,正確的是( )A. k1.m=1; B. k2->m=2; C. p1.m=3; D. (*p2)->m=4;10. 派生類的對象對它的哪一類基類成員是可以訪問的?( )A公有繼承的基類的公有成員 B. 公有繼承的基類的保護成員C. 公有繼承的

4、基類的私有成員 D. 保護繼承的基類的公有成員二、填空題(2*10分)1. 類的成員按訪問權(quán)限可分為三類: 、 、 。2. 在C+中定義類時,通常是利用 描述對象的“特征”; 利用 描述對象的“行為”。3. int * p = new int20; /動態(tài)分配數(shù)組 /釋放數(shù)組4. 為了提高代碼通用性,自動適應數(shù)據(jù)類型的變化,C+中采用 5. 要求通過函數(shù)來實現(xiàn)一種不太復雜的功能,并且要求加快執(zhí)行速度,可將該函數(shù)定義為 6. 在私有繼承關(guān)系下,基類的公有成員和保護成員將成為派生類中的 成員,它們只能由 來訪問。三、讀程并寫出程序的運行結(jié)果(40分)(注:以下程序都省略了相關(guān)頭文件)1 (6分)v

5、oid main() int j=0,s=0;for (int i=8;i<=20;i+)if (i%4=0) j+;else s+;cout<<"j="<<j<<'t'<<"s="<<s;2 (6分)int Div(int x,int y);int main()try cout<<"5/2="<<Div(5,2)<<endl; cout<<"8/0="<<Div(8,0)&

6、lt;<endl; cout<<"7/1="<<Div(7,1)<<endl; catch(int) cout<<"except of deviding zero.n" cout<<"that is ok.n"int Div(int x,int y)if(y=0) throw y;return x/y;3 (7分)class Croot public: int small; Croot( ) small=2; Croot(int n) small=n; void sho

7、wsmall() cout<<"small="<<small<<endl; ;class Cder1: public Croot public: Cder1(int m) :Croot(m);class Cder2: public Croot public: int small; Cder2(int n=0) small=n; ;void main() Croot A; Cder1 bb(3); Cder2 cc; A.showsmall(); bb.showsmall(); cc.showsmall();4 (7分)class Anim

8、alpublic:virtual void voice() = 0;void display() cout<<"Animal!"<<endl;class Dog: public Animal public:void voice() cout<<"Wang!"<<endl;void display() cout<<"Dog!"<<endl; ;class Cat: public Animal public:void voice() cout<<"

9、;Miao!"<<endl;void display() cout<<"Cat!"<<endl; ;void fun(Animal *ptr) ptr->voice();ptr->display(); void main()Anima* pa2=new Dog(), new Cat();fun(pa0); fun(pa1);5 (7分)class B int b;public: B(int i) : b(i) cout<<"B's constructor called." &l

10、t;<endl; private:;class C:public B B b; int c;public: C(int i,int j);C:C(int i,int j):B(i),b(i+1)c=j;cout<<"C's constructor called."<<endl;int main()C obj(1,6);return 0;6 (7分)class count static int n;public: count() n+; void show() cout<<n<<endl; count() n-;i

11、nt count:n=0;void main() count a; a.show(); count b4; b3.show(); a.show();四、綜合編程題(20分)1.編寫一個抽象類Shape,在此基礎(chǔ)上派生出類Rectangle(矩形)和Circle(圓),二者都有計算面積的函數(shù)GetArea(),計算周長的函數(shù)GetPerim(),并畫出類圖。(10分)。主函數(shù)中,動態(tài)分配內(nèi)存生成2個圓,3矩形,將其地址放入Shape指針數(shù)組,并將所有對象的面積和周長以文本方式保存到文件shape.dat中。(10分)參考答案一DABCC ABDAA二1 共有,私有,保護2 成員屬性,成員函數(shù)3 delete p4 模板5 內(nèi)聯(lián)6 私有,派生類成員三1i=4 j=

溫馨提示

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

評論

0/150

提交評論