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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

3、類的非靜態成員D. 使用類名可以直接調用其靜態成員函數8. 以下敘述正確的是( )A.派生類中不可以定義與基類中同名的成員變量B.派生類中不可以重載成員函數C.派生類中不能調用基類中的同名函數D.以上三項均不正確9. 設有以下類和對象的定義: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. 類的成員按訪問權限可分為三類: 、 、 。2. 在C+中定義類時,通常是利用 描述對象的“特征”; 利用 描述對象的“行為”。3. int * p = new int20; /動態分配數組 /釋放數組4. 為了提高代碼通用性,自動適應數據類型的變化,C+中采用 5. 要求通過函數來實現一種不太復雜的功能,并且要求加快執行速度,可將該函數定義為 6. 在私有繼承關系下,基類的公有成員和保護成員將成為派生類中的 成員,它們只能由 來訪問。三、讀程并寫出程序的運行結果(40分)(注:以下程序都省略了相關頭文件)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,在此基礎上派生出類Rectangle(矩形)和Circle(圓),二者都有計算面積的函數GetArea(),計算周長的函數GetPerim(),并畫出類圖。(10分)。主函數中,動態分配內存生成2個圓,3矩形,將其地址放入Shape指針數組,并將所有對象的面積和周長以文本方式保存到文件shape.dat中。(10分)參考答案一DABCC ABDAA二1 共有,私有,保護2 成員屬性,成員函數3 delete p4 模板5 內聯6 私有,派生類成員三1i=4 j=

溫馨提示

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

評論

0/150

提交評論