《C++面向對象程序設計》

上傳人:xinsh****encai 文檔編號:26915473 上傳時間:2021-08-14 格式:DOC 頁數:11 大?。?0KB
收藏 版權申訴 舉報 下載
《C++面向對象程序設計》_第1頁
第1頁 / 共11頁
《C++面向對象程序設計》_第2頁
第2頁 / 共11頁
《C++面向對象程序設計》_第3頁
第3頁 / 共11頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《C++面向對象程序設計》》由會員分享,可在線閱讀,更多相關《《C++面向對象程序設計》(11頁珍藏版)》請在裝配圖網上搜索。

1、《C++面向對象程序設計》 一、選擇題(每小題2分,共20分) 1.一個C++類( )。 A. 只能有一個構造函數和一個析構函數 B. 可以有一個構造函數和多個析構函數 C. 可以有多個構造函數和一個析構函數 D. 可以有多個構造函數和多個析構函數 2. 關于類概念的描述中,(   )是錯誤的。 A.類是抽象數據類型的實現; B.類是具有共同行為的若干對象的統(tǒng)一描述體; C.類是創(chuàng)建對象的樣板;   D.類不是C++中的一種數據類型; 3. 下述靜態(tài)數據成員的特征中,( )是錯誤的。 A.說明靜態(tài)數據成員時前邊要加修飾符static; B.靜態(tài)

2、數據成員要在類外進行初始化; C.引用靜態(tài)數據成員時,要在靜態(tài)數據成員名前加<類名>和作用域運算符; D.靜態(tài)數據成員不是所有對象所共用的。 4.下面有關重載函數的說法中正確的是( ) A.重載函數必須具有不同的返回值類型;   B.重載函數形參個數必須不同;   C.重載函數必須有不同的形參列表   D.重載函數名可以不同; 5.下列各類函數中,( )不是類的成員函數 A.構造函數 B. 析構函數 C. 友元函數 D. 復制構造函數 6.下面描述中,表達錯誤的是( ) A.公有繼承時

3、基類中的public成員在派生類中仍是public的   B.公有繼承是基類中的private成員在派生類中仍是private的   C.公有繼承時基類中的protected成員在派生類中仍是protected的   D.私有繼承時基類中的public成員在派生類中是private的 7. 在C++中,關于下列設置參數默認的描述中,( )是正確的。 A.不允許設置參數的默認值; B.設置參數默認值只能在定義函數時設置; C.設置參數默認值時,應該是先設置右邊的再設置左邊的; D.設置參數默認值時,應該全部參數都設置; 8. 下列存儲類標識符中,要求通過函數來實現

4、一種不太復雜的功能,并且要求加快執(zhí)行速度,選用( )合適。 A. 內聯函數 B. 重載函數 C. 遞歸調用 D. 嵌套調用 9. 下列(   )是引用調用。 A.形參是指針,實參是地址值; B.形參和實參都是變量; C.形參是數組名,實參是數組名; D.形參是引用,實參是變量。 10.有如下程序: #include classBASE { charc; public: BASE(charn):c(n){} virtual~BASE(){cout<

5、{ charc; public: DERIVED(charn):BASE(n+1),c(n){} ~DERIVED(){cout<

6、友元類中的所有成員函數可以存取或修改該類中的私有成員。(  ) 4.私有繼承中,基類中所有成員對派生類的對象都是不可見的。( ?。? 5.對象數組的元素可以是不同類的對象。(  ) 6.多繼承情況下,派生類的構造函數的執(zhí)行順序并不取決于定義派生類時所指定的各基類的順序。( ) 7.返回值類型、參數個數和類型都相同的函數也可以重載。(  ) 8.C++中使用了新的注釋符(//),C語言中注釋符(/*…*/)不能在C++中使用。(  ) 9.友元函數是類的成員函數,所以可以存取或修改該類中的私有成員。(  ) 10.在一個被調用函數中,一個return語句不可返回多個值給調用

7、函數。( ?。? 三、填空題(每空1分,共10分) 1.在一個派生類中,對基類成員、類對象成員和非類對象成員的初始化次序是先 ,后 ,最后為 。 2.若需要定義一個標識符常量,并且使C++能夠進行類型檢查,則應在定義語句的開始使用保留字 。 3.若需要把一個函數"void F();”定義為一個類AB的友元函數,則應在類AB的定義中加入一條語句 。 4.當一個類對象離開它的作用域時,系統(tǒng)將自動調用該類的 。 5.假定AB為一個類,則執(zhí)行"AB a[8];”語句時,

8、系統(tǒng)自動調用該類構造函數的次數為 。 6.動態(tài)多態(tài)性是在程序運行時通過改變具有虛函數定義的基類 ,使其指向不同派生類 從而調用不同版本的 ,動態(tài)地實現對同一消息的不同響應。 四、讀程并寫出程序的運行結果(每小題5分,共20分) 1、#include void swap(int x,int &y); void main() { int a(10),b; b=a/5; cout<<"a="<

9、a,b); cout<<"a="< class AA { public: AA(int i,int j) {A=i;B=j;cout<<"Constructor\n";} AA(AA &obj) {A=obj.A+10;B=obj.B+20;cout<<"Copy_Constructor\n";} ~AA() {cout<

10、<"Destructor\n";} void print() {cout<<"A="<print(); delete pa; } 3、#include class B { public: B();

11、 B(int i); ~B(); void Print() ; private: int b; }; B::B() { b=0; cout<<"Bs default constructor called."<

12、 cout<

13、cout<<"Cs destructor called."< class CSample { public: CSample(); void Display(); private: int i; static int k; }; Csmaple::CSample

14、() {i=0; k++; } void CSample::Display() { cout<<”i=”< class A{ public: A(int i){m=i;} void sho

15、w(){cout<

16、之后添加適當的語句。 (2) 完成默認構造函數Date的定義,使Date對象的默認值為:year=1,month=1,day=1,請在注釋"http://* *2**"之后添加適當的語句。 (3) 完成重載構造函數Date(inty,intm,intd)的定義,把數據成員year,month和day分別初始化為參數y,m,d的值,請在注釋"//**3* *"之后添加適當的語句。 (4) 完成成員函數print的類外定義,使其以"年-月-日"的格式將Date對象的值輸出到屏幕上。請在注釋"//**4 **"之后添加適當的語句。 注意:除在指定位置添加語句之外,請不要改動程序中的其他內源程序

17、文件main.cpp清單如下: //main.cpp #include classDate { public: //**2** Date(inty,intm,intd) {  //**3** } voidprint()const; private: //datemembers //**1** }; voidDate::print()const { //**4** } intmain() { Datenational_day(1949,10,1); national_day

18、.print(); return0; } 3、用C++語言定義MyString(包括成員函數的實現代碼),使之能符合下面程序及在注釋中描述的運行結果的要求: main() { MyString s1 = "0123456789", s2(5), s3; s1.display(); // 此時顯示出: <0123456789> s2.display(); // 此時顯示出(<>之間是五個空格): < > s3.display(); // 此時顯示出: <> s3 = s1; s

19、3.display(); // 此時顯示出: <0123456789> s2 = s1[2]; s2.display(); // 此時顯示出: <23456789> s1.display(); // 此時顯示出: <0123456789> s3 = s2++; s2.display(); // 此時顯示出: <3456789> s3.display(); // 此時顯示出: <23456789> } 參考答案及評分標準 一. 選擇題(每

20、小題2分,共20分) 1、C 2、A 3、D 4、C 5、C 6、B 7、C 8、A 9、D 10、A 二.判斷題(每小題1分,共10分) 1、   2、√   3、√    4、    5、 6、   7、   8、    9、    10、√ 三.填空題(每空1分,共10分) 1、 基類成員、類對象成員、非類對象成員 2、const 3、friend void F(); 4、析構函數 5、8 6、指針、對象、虛函數 四.讀程序并寫出程序的運行結果(每題5分,共20分) 1、a=10,b=2

21、 a=10,b=10 2、Constructor Copy_ Constructor A=12,B=23 Constructor A=5,B=6 Destructor Destructor Destructor 3、B’constructor called. C’constructor called. 5 6 C’destructor called. B’destructor called. 4、i=0,k=2 i=0,k=2 五.編程題(第1題9分,第2題16分,第3題15分,共40分) 1、

22、void ~A(){}:析構函數沒有返回值,可改為~A(){}; A a;:沒有定義無參構造函數,可改為A a(10);(括號中可以是任意整數。) a.m+=10;:不能在類外訪問類的私有成員,將數據成員m的訪問權限改為public。 2、 //**1** int year; int month; int day; //**2** Date() { year=1;month=1;day=1; } //**3** year=y;month=m;day=d; //**4** cout<

23、ndl; 3、 class MyString { char cpBody[81]; public: MyString(const char* p = NULL); MyString(int i); MyString& operator=(const MyString& s) { strncpy(cpBody, s.cpBody, 80); return *this; } MyString& operator[](int i); MyString& operator++(int i) { static

24、MyString s; s = *this; *this = (cpBody[0] == ‘\0‘) ? *this : (*this)[1]; return s; } void display() { printf("<%s>\n", cpBody); } }; MyString::MyString(const char* p) { if (p == NULL) cpBody[0] = ‘\0‘; else strncpy(cpBody, p, 80); } MyString::MyString(int i)

25、 { int j; for (j = 0; j < i && j < 80; j++) cpBody[j] = ‘ ‘; cpBody[j] = ‘\0‘; } MyString& MyString::operator[](int i) { static MyString s; int j; s = *this; for (j = i; cpBody[j] != ‘\0‘; j++) s.cpBody[j-i] = s.cpBody[j]; s.cpBody[j-i] = ‘\0‘; return s; } 第 11 頁 共 11 頁

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!