《面向對象程序設計C--》期末試卷及標準答案(B)_第1頁
《面向對象程序設計C--》期末試卷及標準答案(B)_第2頁
免費預覽已結束,剩余10頁可下載查看

下載本文檔

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

文檔簡介

1、面向對象程序設計C+ 期末考試試卷 (B)題號一二三四總分得分班級:姓名:學號:分數(shù):試卷說明 : 本套試題共四個大題,全部題目都答在答題紙上,寫在其他地方均無效。(答題紙在本套試卷的第 8頁上) 一、單項選擇題 (每小題 2分,共 40分)1、關于 C+與C語言關系的描述中, (D )是錯誤的。A C語言是 C+ 語言的一個子集B C語言與 C+語言是兼容的C C+ 語言對C語言進行了一些改進D C+ 語言和C語言都是面向對象的2、已知: int m=10;下列表示引用的方法中 ,(A ) 是正確的。A int &x=m;Bint &y=10 ;Cint &z ;Df

2、loatt=&m ; 3、考慮下面的函數(shù)原型聲明:void testDefaulParam(int a,int b=7, char z='* ); 下面函數(shù)調(diào)用中,不合法的是(C )。A testDefaulParam(5 );BtestDefaulParam(5 , 8);C testDefaulParam (5, );DtestDefaulParam ( 0,0, ;*') 4、系統(tǒng)在調(diào)用重載函數(shù)時往往根據(jù)一些條件確定哪個重載函數(shù)被調(diào)用,在下列選項中,不能作為依據(jù)的是( A)。A函數(shù)的返回值類型B參數(shù)的類型C函數(shù)名稱D參數(shù)個數(shù)5、下列有關 C+ 類的說法中,不正確的

3、是 (D)。A類是一種用戶自定義的數(shù)據(jù)類型 B只有類中的成員函數(shù)或類的友元函數(shù)才能存取類中的私有成員C在類中,如果不做特別說明,所有成員的訪問權限均為私有的D在類中,如果不做特別說明,所有成員的訪問權限均為公用的6、已知X類,則當程序執(zhí)行到語句 X array 3; 時,調(diào)用了(D)次構造函數(shù)。第 12頁A 0B 1C2D 37、有關析構函數(shù)的說法,不正確的是(B)。A析構函數(shù)有且僅有一個 B析構函數(shù)和構造函數(shù)一樣可以有形參 C析構函數(shù)的功能是在系統(tǒng)釋放對象之前作一些內(nèi)存清理工作D析構函數(shù)無任何函數(shù)類型8、類定義的內(nèi)容允許被其對象無限制地存取的是(C)。A private部分B protect

4、ed 部分C public部分D以上都不對9、關于常數(shù)據(jù)成員的說法,不正確的是(D)。A. 常數(shù)據(jù)成員的定義形式與一般常變量的定義形式相同,只不過常數(shù)據(jù)成員的定義必須出現(xiàn)在類體中B. 常數(shù)據(jù)成員必須進行初始化,并且不能被更新 C常數(shù)據(jù)成員通過構造函數(shù)的成員初始化列表進行初始化D常數(shù)據(jù)成員可以在定義時直接初始化10、運用運算符 delete刪除一個動態(tài)對象時(C)。A系統(tǒng)首先為該動態(tài)對象調(diào)用構造函數(shù),再釋放其占用的內(nèi)存B系統(tǒng)首先釋放該動態(tài)對象占用的內(nèi)存,再為其調(diào)用構造函數(shù)C系統(tǒng)首先為該動態(tài)對象調(diào)用析構函數(shù),再釋放其占用的內(nèi)存D系統(tǒng)首先釋放動態(tài)對象占用的內(nèi)存,再為其調(diào)用析構函數(shù)11、可以在類外用

5、p.a的形式訪問派生類對象 p的基類成員 a,其中 a是( D )。A私有繼承的公用成員 B公用繼承的私有成員C公用繼承的保護成員 D公用繼承的公用成員12、在公用繼承方式下,有關派生類對象和基類對象的關系,不正確的敘述是( C )。A派生類的對象可以賦給基類的對象 B派生類的對象可以初始化基類的引用 C派生類的對象可以直接訪問基類中的成員D派生類的對象的地址可以賦給指向基類的指針13、設置虛基類的目的是(B ).A簡化程序B消除二義性C提高運行效率D減少目標代碼14、在 C+中,用于實現(xiàn)動態(tài)多態(tài)性的是(D ) 。A內(nèi)聯(lián)函數(shù)B重載函數(shù)C模板函數(shù)D虛函數(shù)15、不能說明為虛函數(shù)的是(B).A析構函

6、數(shù)B構造函數(shù)C類的成員函數(shù)D以上都不對16、如果一個類至少有一個純虛函數(shù)A抽象類B派生類,那么就稱該類為 ( C純基類A)。D以上都不對17、下面關于友元的描述中,錯誤的是(D)。A友元函數(shù)可以訪問該類的私有數(shù)據(jù)成員 B一個類的友元類中的成員函數(shù)都是這個類的友元函數(shù)C友元可以提高程序的運行效率 D類與類之間的友元關系可以繼承18、下列運算符中, ( C)運算符在 C+中不能被重載。A & BC:D new 19、模板的使用實際上是將類模板實例化成一個(C).A函數(shù)B對象C類D抽象類20、假定 MyClass 為一個類,則該類的拷貝構造函數(shù)的聲明語句為(C)。A MyClass(MyCl

7、ass x)BMyClass (MyClass x )C MyClass(MyClass x)DMyClass(MyClassx) 二、填空題(前 16個空,每空 1分,后 2個空,每空 2分,共20分)例。2 、在 C+ 中,三 種繼 承方 式的 說明 符號 為public、private和protected,如果不加說明, 則默認的繼承方式為private.3、如果只想保留公共基類的一個復制,就必須使用關鍵字virtual把這個1、類和對象的關系可表述為: 類是對象的抽象,而對象則是類的實公共基類聲明為虛基類 .4 、若要把 voidfun ()定義為類 A 的友元函數(shù),則應在類A 的定義

8、中加入語句friend void fun ( A &a)。5、類的靜態(tài)成員分為靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。6、運算符重載要求保持其原來的操作數(shù)個數(shù)、結合性、優(yōu)先級和語法結構 .7、通過關鍵字Template可以聲明模板,通過關鍵字class指定函數(shù)模板的類型參數(shù) ,有幾個類型參數(shù)就有幾個類型關鍵字。8、列出 C+中兩種用戶自定義的數(shù)據(jù)類型:類、結構體。9 、 構 造 函 數(shù) 的 作 用 是在 創(chuàng) 建 對 象 時 初 始 化 對 象 的 數(shù) 據(jù) 成員。10、后置自增運算符“ +”重載為類的成員函數(shù)(設類名為 A)的形式為A operator+(int).三、閱讀下面 3個程序 ,寫出程序

9、運行時輸出的結果:(共13分) 1、 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( ab)fun (a,b); if(a c)fun( a,c); if(b<c ) fun(b ,c);int main ()int a=12 , b=89,c=56; exchange( a, b, c);cout< ” a=”<a<<&quo

10、t; ,b=" b<<" ,c="<<c <endl ;return 0 ;2、#include <iostream using namespace std; class Date public :Date( int , int ,int) ; Date(int , int ); Date( int ); Date();void display(); private :int month, day , year;;Date: :Date(int m,int d,int y):month ( m),day(d),year(y) D

11、ate: :Date(int m,int d ):month ( m),day(d ) year=2009 ; Date:Date (int m) :month (m)day=1; year=2010 ; Date: :Date() month=1 ; day=1;year=2010; void Date : display( )cout<<month<< ”/”day< ”/ ” <<year<<en;dl int main()Date d1(12,31,2009); Date d2(12,31) ;Date d3(1); Date d4

12、;d1。display( ); d2.display ( ); d3 。 display(); d4.display (); return 0;3、 include iostream> using namespace std; class A public:A()cout <” constructing A " endl; A()cout< ” destructing A class B: public A public :<”endl; ;B() cout<"constructing B”<endl ;B()cout< ” des

13、tructing B class C : public B public :C()cout<<"constructing C ”endl; ;”e<ndl; C() cout "destructing C " endl; ; int main ()C c1;return 0;四、編程題 (共27分)1、(10分) 已知復數(shù)類 Complex 的聲明如下 : class Complex public:Complex( );/無參構造函數(shù) Complex(double);/轉換構造函數(shù) Complex(double, double );/ 有兩個形參

14、的構造函數(shù)friend Complex operator+(Complex, Complex );/對“+" 運算符進行重載friendostream&operator <(ostream& , Complex& );/對“”運算符進行重載friend istream& operator>(istream , Complex );/對“ >”運算符進行重載private:double real ,imag ;要求:( 1)寫出該類的所有構造函數(shù)的類外定義代碼。( 2)寫出對運算符“ +”、“<" 、“>"

15、; 進行重載的運算符重載函數(shù)的定義。 2 、( 17 分)下列 Shape類是一個表示形狀的抽象類,area( ) 為求圖形面積的函數(shù),total( ) 則是一個通用的用以求不同形狀的圖形面積總和的函數(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 類派生圓類 (Circle) 、正方形類( Square),圓類新增數(shù)據(jù)成

16、員半徑 (radius ),正方形類新增數(shù)據(jù)成員邊長( a),圓類和正方形類都有構造函數(shù),修改、顯示數(shù)據(jù)成員值的函數(shù),求面積函數(shù)。( 2)寫出main() 函數(shù),計算半徑為 5.5的圓和邊長為 9。9的正方形的面積和 (必須通過調(diào)用 total 函數(shù)計算)。面向對象程序設計C+ 期末考試試卷( B)標準答案題號一二三四總分得分一、單項選擇題(每小題 2 分,共 40 分)1-5 D A C A D6-10 D B C D C11-15 D C B D B16-20 A D C C C二、填空題(前116 個空,每空 1 分,后 2 個空,每空抽象、2 分,共 20 分)實例2public、pr

17、ivate_、protected、private _ 3 virtual 4 friendvoidfun(A a)_5 靜態(tài)數(shù)據(jù)成員、 靜態(tài)成員函數(shù)6結合性、優(yōu)先級_ 7 Template、 class (或 typename)8類、結構體 9 在創(chuàng)建對象時初始化對象的數(shù)據(jù)成員10A operator+ (int )班級:姓名:學號:分數(shù):三、閱讀程序(共 13 分) 1、a=89,b=56,c=122、12/31/200912/31/20091/1/20101/1/20103、constructing A constructing Bconstructing C destructing C

18、destructing Bdestructing A四、編程題(共 27分) 1、( 10分)Complex ::Complex () real=0; imag=0; Complex: :Complex(double r)real=r; Complex:Complex(double r,double i) real=r ;imag=i; Complex operator+ (Complexc1,Complex &c2 )Complex c;c。real=c1.real+c2 。real; c.imag=c1.imag+c2.imag ;return c ;ostream& op

19、erator< (ostream output,Complex c)output <"( ” c.real<<” +"<c。imag "i )” <<end;l return output;istream operator> (istream& input,Complex c)cout<< ” input real and imaginary part of complex number:;”input c.real c。imag ; return input ;2、( 17分)class Circle:public

溫馨提示

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

評論

0/150

提交評論