C期末考試試題_第1頁
C期末考試試題_第2頁
C期末考試試題_第3頁
C期末考試試題_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、一、 單項(xiàng)選擇題(12題,每題5分)1. 已定義了一個類A并有語句 A* pa=new A(5); 那么以下說法正確的是:DA. 該語句會創(chuàng)建A類的一個對象,并將此對象的地址賦給指針pa;B. 該語句會創(chuàng)建A類的5個對象,且它們的地址是連續(xù)的;C. 當(dāng)指針變量pa超出其作用域時,pa和為對象分配的空間都將被自動釋放;D. 類A中一定有一個顯式定義的構(gòu)造函數(shù)和一個顯式定義的虛析構(gòu)函數(shù);2. 定義類A的非靜態(tài)成員函數(shù)A& f(A& one)時,需有語句return exp;則exp不能是:DA.類A中類型為A的靜態(tài)數(shù)據(jù)成員 B. f中用語句 A a = one; 定義的量aC. o

2、ne D. *this3. 在一個類中,下列哪些成員可以是多個?DA. 無參構(gòu)造函數(shù) B. 析構(gòu)函數(shù)C. 原型相同的非靜態(tài)成員函數(shù) D. 靜態(tài)成員函數(shù)4. 對于通過公有繼承定義的派生類,若其成員函數(shù)可以直接訪問基類的某個成員,說明該基類成員的訪問權(quán)限是:DA. 公有或私有 B. 私有 C. 保護(hù)或私有 D. 公有或保護(hù)5. 在下列關(guān)鍵字中,不能用來表示繼承方式的是:BA. private B. static C. public D. protected6. 下列有關(guān)運(yùn)算符重載的敘述中,正確的是:AA. 運(yùn)算符重載是多態(tài)的一種表現(xiàn)B. C+中可以通過運(yùn)算符重載創(chuàng)造新的運(yùn)算符C. C+中所有運(yùn)算符

3、都可以作為非成員函數(shù)重載D. 重載運(yùn)算符時可以改變其結(jié)合性A7. 下列關(guān)于類定義的說法中,正確的是:A. 類定義中包括數(shù)據(jù)成員與函數(shù)成員的聲明B. 類成員的缺省訪問權(quán)限是保護(hù)的C. 數(shù)據(jù)成員必須被聲明為私有的D. 成員函數(shù)只能在類體外進(jìn)行定義8. 建立一個有成員對象的派生類對象時,各構(gòu)造函數(shù)體的執(zhí)行順序?yàn)椋篊A. 派生類 成員對象類 基類 B. 成員對象類 基類 派生類C. 基類 成員對象類 派生類 D. 基類 派生類 成員對象類9. C+中解決命名沖突的機(jī)制是:AA. 虛基類 B. 虛函數(shù) C. 函數(shù)重載 D. 名字空間10. 任意一個類,析構(gòu)函數(shù)的個數(shù)最多是:BA. 不限個數(shù) B. 1 C

4、. 2 D. 311. 在類定義中,為說明成員的訪問權(quán)限,private, protected, public 可以出現(xiàn)次數(shù)為:AA. 次數(shù)沒有具體限定 B. 每種至多一次C. public 至少一次 D. 每種至少一次12. 下面關(guān)于訪問類A的私有數(shù)據(jù)成員的說法,錯誤的是:CA.類A的友元函數(shù)可以訪問類A的私有成員。 B.類A的友元類中的非靜態(tài)成員函數(shù)可以訪問類A的私有成員。C.類A的嵌套類中的非靜態(tài)成員函數(shù)可以訪問類A的私有成員。D.類A中的非靜態(tài)成員函數(shù)可以訪問類A的私有成員。 二、 寫出下面程序的運(yùn)行結(jié)果(2題,每題10分)1. #include <iostream.h>c

5、lass A public: A( ) cout<<"<1> A:A( ) "<<endl;virtual A( ) cout<<"<2> A:A( )"<<endl;virtual void g( ) cout<<"<3> A:g( )"<<endl;void h( ) cout<<"<4> A:h( )"<<endl;virtual void f( ) g( ); h(

6、 ); ;class B:public Apublic: B( ) cout<<"<5> B:B( ) "<<endl; virtual B( ) cout<<"<6> B:B( )"<<endl;virtual void g( ) cout<<"<7> B:g( )"<<endl; void h( ) cout<<"<8> B:h( )"<<endl; virtual v

7、oid k( ) f( ); g( ); h( ); ;void main( ) B b;b.k( );2. #include <iostream.h>class A public:A( ) cout<<1<<endl; virtual A( ) cout<<2<<endl;virtual int Add(int n) return 0; ;class B : public A public:B(int n):num(n) virtual B( ) virtual int Add(int n) num+=n; return num;p

8、rivate:int num;class C : public Apublic:C(A& obj,int n) : a(obj), num(n) cout<<3<<endl; virtual C( ) cout<<4<<endl; virtual int Add(int n) return a.Add(n+num); private:A& a;int num;Int main ( ) B b(100);C c1(b,1), c2(c1,2);cout<<c2.Add(50)<<endl;return0;三、

9、 編程題(20分)已知某程序中類MyString是自定義的一個用來描述字符串的類,它在main函數(shù)中使用情況如下:void main( ) MyString s1("Hello ");MyString s2("World!"); cout << s1.getString() << s2.getString( ) << endl; MyString s3(s1); cout << s3.getString( ) << endl; s3 = s1 + s2; cout << s3.get

10、String( ) << endl; 程序執(zhí)行時,輸出結(jié)果如下:Hello World!HelloHello World!根據(jù)以下已知條件,完成對MyString類的定義和實(shí)現(xiàn)。(1) 可以使用iostream.h中定義的類及相關(guān)內(nèi)容。(2) 可以使用string.h中定義的如下函數(shù):int strlen(const char* ); 用于計算標(biāo)準(zhǔn)表示的字符串長度;char* strcpy( char *strDestination, const char *strSource );用于將strSource串拷貝給strDestination。返回的是strDestination串,一般不用。char* strcat( char

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論