面向?qū)ο蟪绦蛟O(shè)計(jì)題庫(kù)(C++)

上傳人:max****ui 文檔編號(hào):17778193 上傳時(shí)間:2020-12-05 格式:DOC 頁(yè)數(shù):25 大小:106.41KB
收藏 版權(quán)申訴 舉報(bào) 下載
面向?qū)ο蟪绦蛟O(shè)計(jì)題庫(kù)(C++)_第1頁(yè)
第1頁(yè) / 共25頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)題庫(kù)(C++)_第2頁(yè)
第2頁(yè) / 共25頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)題庫(kù)(C++)_第3頁(yè)
第3頁(yè) / 共25頁(yè)

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

9.9 積分

下載資源

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

資源描述:

《面向?qū)ο蟪绦蛟O(shè)計(jì)題庫(kù)(C++)》由會(huì)員分享,可在線閱讀,更多相關(guān)《面向?qū)ο蟪绦蛟O(shè)計(jì)題庫(kù)(C++)(25頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、一、單項(xiàng)選擇題 1. 在C++語(yǔ)言中,對(duì)函數(shù)參數(shù)默認(rèn)值描述正確的是:( D ) A) 函數(shù)參數(shù)的默認(rèn)值只能設(shè)定一個(gè) B) 一個(gè)函數(shù)的參數(shù)若有多個(gè),則參數(shù)默認(rèn)值的設(shè)定可以不連續(xù) C) 函數(shù)參數(shù)必須設(shè)定默認(rèn)值 D) 在設(shè)定了參數(shù)的默認(rèn)值后,該參數(shù)后面定義的所有參數(shù)都必須設(shè)定默認(rèn)值 2. 假定 AB 為一個(gè)類,則執(zhí)行 AB x ;語(yǔ)句時(shí)將自動(dòng)調(diào)用該類的( B ) 。 A) 有參構(gòu)造函數(shù) B) 無參構(gòu)造函數(shù) C) 拷貝構(gòu)造函數(shù) D) 賦值構(gòu)造函數(shù) 3. 下述關(guān)于開關(guān)語(yǔ)句的描述中,( )是正確的。 A) 開關(guān)語(yǔ)句中default子句可以

2、沒有,也可以有一個(gè); B) 開關(guān)語(yǔ)句中每個(gè)語(yǔ)句序列中必須有break語(yǔ)句; C) 開關(guān)語(yǔ)句中default子句只能放在最后; D) 開關(guān)語(yǔ)句中case子句后面的表達(dá)式可以是整形表達(dá)式。 4. 關(guān)于對(duì)象概念的描述中,( ) 是錯(cuò)誤的。 A) 對(duì)象就是C語(yǔ)言中的結(jié)構(gòu)變量; B) 對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體; C) 對(duì)象是一個(gè)狀態(tài)和操作(或方法)的封裝體; D) 對(duì)象之間的信息傳遞是通過消息進(jìn)行的; 5. 下列給字符數(shù)組進(jìn)行初始化中,( )是正確的。 A) char s1[ ]="12345abcd"; B) char s2[3]

3、="xyz"; C) char s3[][3]={ a, x, y}; D) char s4[2[3]={"xyz","mnp"}; 6. 在int a[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是 ( ) 。 A) 3 B) 2 C) 6 D) 4 7. 聲明類test的拷貝構(gòu)造函數(shù)的正確形式是 ( D ) 。 A) int test B) void test C) test(void) D) test(test&) 8. 關(guān)于new運(yùn)算符的下列描述中,( ) 是

4、錯(cuò)的。 A) 它可以用來動(dòng)態(tài)創(chuàng)建對(duì)象和對(duì)象數(shù)組; B) 使用它創(chuàng)建的對(duì)象或?qū)ο髷?shù)組可以使用運(yùn)算符delete刪除; C) 使用它創(chuàng)建對(duì)象時(shí)要調(diào)用構(gòu)造函數(shù); D) 使用它創(chuàng)建對(duì)象數(shù)組時(shí)必須指定初始值。 9. 在 C++ 中有以下 4 條語(yǔ)句: static int hot=200;int &rad=hot; hot=hot+100;cout<

5、 B ) 。 A) 構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù); B) 構(gòu)造函數(shù)在聲明對(duì)象時(shí)自動(dòng)執(zhí)行; C) 構(gòu)造函數(shù)可以對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初始化; D) 構(gòu)造函數(shù)可以重載; 11. 下面關(guān)于重載函數(shù)的說明中正確的是( )。 A) 重載函數(shù)必須具有不同的返回類型。 B) 重載函數(shù)形參的個(gè)數(shù)必須不同 C) 重載函數(shù)必須具有不同的形式參數(shù)表 D) 重載函數(shù)名可以不同 12. 下列關(guān)于C++函數(shù)的說明中,正確的是( )。 A) 內(nèi)聯(lián)函數(shù)就是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù) B) 函數(shù)體的最后一條語(yǔ)句必須是 return 語(yǔ)句 C)

6、C++要求在調(diào)用一個(gè)函數(shù)前必須先聲明其原型 D) 編譯器會(huì)根據(jù)函數(shù)的返回值類型和參數(shù)表來區(qū)分函數(shù)的不同重載形式 13. 已知函數(shù)原型為: void foo(int*, long &b); 實(shí)參定義為: int i; long f; 則正確的調(diào)用語(yǔ)句是( ). A) foo(i, &f); B) foo(i, f); C) foo(&i, f); D) foo(&i, &f); 14. C++中對(duì)于結(jié)構(gòu)中定義的成員,其默認(rèn)的訪問權(quán)限為( )。 A) public B

7、) protected C) private D) static 15. 下列關(guān)于類與對(duì)象的說法中,不正確的是( )。 A) 對(duì)象是類的一個(gè)實(shí)例 B) 任何對(duì)象只能屬于一個(gè)具體的類 C) 一個(gè)類只能有一個(gè)對(duì)象 D) 類與對(duì)象的關(guān)系和數(shù)據(jù)類型與變量的關(guān)系相似 16. 下列關(guān)于構(gòu)造函數(shù)的描述中錯(cuò)誤的是( ) A) 構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù) B) 構(gòu)造函數(shù)在定義類對(duì)象時(shí)自動(dòng)執(zhí)行 C) 構(gòu)造函數(shù)可以對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初始化 D) 構(gòu)造函數(shù)不可以重載 17. 類的析構(gòu)函數(shù)的作用是( )。

8、 A) 作為類的一般成員函數(shù) B) 類的初始化 C) 對(duì)象的初始化 D) 對(duì)象的刪除 18. 以下關(guān)于靜態(tài)數(shù)據(jù)成員的描述正確的是( )。 A) 靜態(tài)數(shù)據(jù)成員可以在類體中進(jìn)行初始化 B) 靜態(tài)數(shù)據(jù)成員不可以被類的實(shí)例調(diào)用 C) 靜態(tài)數(shù)據(jù)成員不能受protected控制符的作用 D) 靜態(tài)數(shù)據(jù)成員可以直接用類名調(diào)用 19. 下面關(guān)于友元函數(shù)的描述中正確的是( )。 A) 友元函數(shù)的實(shí)現(xiàn)必須在類的內(nèi)部定義 B) 友元函數(shù)是類的成員函數(shù) C) 友元函數(shù)破壞了類的封裝性和隱藏性 C) 友元函數(shù)不能訪問

9、類的私有成員 20. 下面關(guān)于友元函數(shù)的描述中錯(cuò)誤的是( )。 A) 如果類A是類B的友元,那么類B也是類A的友元 B) 如果函數(shù)fun()被說明為類A的友元,那么在fun()中可以訪問類A的私有成員 C) 友元關(guān)系不能被繼承 D) 如果類A是類B的友元,那么類A的所有成員函數(shù)都是類B的友元函數(shù) 21. 下列屬于C++語(yǔ)句的是 。 A) ; B) a=17 C) a+5 D) cout<<’\n’ 22. 執(zhí)行語(yǔ)句k=30;j=k++;后k和j的值分別為

10、 。 A) k=30,j=30 B) k=30,j=31 C) k=31,j=30 D) k=31,j=31 23. 若X是一個(gè)bool型變量,則X && 5<3的值 。 A) 為true B) 為false C) 與X的值相同 D) 與X的值相反 24. 如果a=1,b=2,c=3,d=4,則條件表達(dá)式“a>b?a:c

11、; cout<

12、能用作數(shù)組元素 D) 一個(gè)對(duì)象能用作另一個(gè)對(duì)象的成員 28. 在 C++ 中實(shí)現(xiàn)封裝是借助于 。 A) 枚舉 B) 類 C) 數(shù)組 D) 函數(shù) 29. 下列不是描述類的成員函數(shù)的是 。 A) 構(gòu)造函數(shù) B) 析構(gòu)函數(shù) C) 友元函數(shù) D) 拷貝構(gòu)造函數(shù) 30. 不能作為函數(shù)重載判斷依據(jù)的是 。 A) 參數(shù)個(gè)數(shù) B) 參數(shù)類型 C) 函數(shù)名稱 D)返回值類型 31. 假

13、定一個(gè)類的構(gòu)造函數(shù)為 A(int aa,int bb){a=aa++;b=a*bb++;} ,則執(zhí)行 A X(4,5); 語(yǔ)句后, X.a 和 X.b 的值分別為 。 A) 4 和 5 B) 5 和 30 C) 4 和 20 D) 20 和 5 32. 對(duì)于double (*p)[10];的描述, 是正確的。 A) p是一個(gè)指向數(shù)組的指針,所指向的數(shù)組是10個(gè)double型元素; B) p是一個(gè)指向某個(gè)數(shù)組中第10個(gè)元素的指針,該元素是double型變量; C) p[5]表示某個(gè)數(shù)組的第10個(gè)

14、元素的值; D) p是一個(gè)具有10個(gè)元素的指針數(shù)組,每個(gè)元素是一個(gè)double型指針; 33. 下面的函數(shù)聲明中, 哪一個(gè)是” void BC(int a, int b);”的重載函數(shù)? A) int BC(int a, int b) B) void BC(int a, char b) C) float BC(int a, int b, int c = 0) D) void BC(int a, int b=0) 34. 已知 char c; char * const pc="asdf", 是正確的。 A) pc="dfgh

15、" B) *pc=‘b’ C) *pc++=‘y’ D) pc=&c 35. 下列關(guān)于構(gòu)造函數(shù)的敘述,錯(cuò)誤的是 。 A) 構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù); B) 構(gòu)造函數(shù)在說明類變量時(shí)自動(dòng)調(diào)用; C) 構(gòu)造函數(shù)可以對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初始化; D) 構(gòu)造函數(shù)可以重載; 36. 下列關(guān)于構(gòu)造函數(shù)的描述中錯(cuò)誤的是( ) A) 構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù) B) 構(gòu)造函數(shù)在定義類對(duì)象時(shí)自動(dòng)執(zhí)行 C) 構(gòu)造函數(shù)可以對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初始化 D) 構(gòu)造函數(shù)不可以重載 37. 類的析

16、構(gòu)函數(shù)的作用是( )。 A) 作為類的一般成員函數(shù) B) 類的初始化 C) 對(duì)象的初始化 D) 對(duì)象的刪除 38. 以下關(guān)于靜態(tài)數(shù)據(jù)成員的描述正確的是( )。 A) 靜態(tài)數(shù)據(jù)成員可以在類體中進(jìn)行初始化 B) 靜態(tài)數(shù)據(jù)成員不可以被類的實(shí)例調(diào)用 C) 靜態(tài)數(shù)據(jù)成員不能受protected控制符的作用 D) 靜態(tài)數(shù)據(jù)成員可以直接用類名調(diào)用 39. 下面關(guān)于友元函數(shù)的描述中正確的是( )。 A) 友元函數(shù)的實(shí)現(xiàn)必須在類的內(nèi)部定義 B) 友元函數(shù)是類的成員函數(shù) C) 友元函數(shù)破壞了類的封裝性和隱藏性

17、 C) 友元函數(shù)不能訪問類的私有成員 40. 下面關(guān)于友元函數(shù)的描述中錯(cuò)誤的是( )。 A) 如果類A是類B的友元,那么類B也是類A的友元 B) 如果函數(shù)fun()被說明為類A的友元,那么在fun()中可以訪問類A的私有成員 C) 友元關(guān)系不能被繼承 D) 如果類A是類B的友元,那么類A的所有成員函數(shù)都是類B的友元函數(shù) 41. 重載函數(shù)在調(diào)用時(shí)選擇的依據(jù)中,錯(cuò)誤的是 (   ) A. 函數(shù)的參數(shù) B. 參數(shù)的類型 C. 函數(shù)的名字 D. 函數(shù)的類型 42. 一個(gè)函數(shù)功能不太復(fù)雜,但要求被

18、頻繁調(diào)用,選用 (  . ) A. 內(nèi)聯(lián)函數(shù) B. 重載函數(shù) C. 遞歸函數(shù) D. 嵌套函數(shù) 43. 下列不是描述類的成員函數(shù)的是 (   ) A. 構(gòu)造函數(shù) B. 析構(gòu)函數(shù) C. 友元函數(shù) D. 拷貝構(gòu)造函數(shù) 44. 構(gòu)造函數(shù)不具備的特征的是 (   ) A. 構(gòu)造函數(shù)的函數(shù)名與類名相同 B. 構(gòu)造函數(shù)可以重載 C. 構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù) D. 構(gòu)造函數(shù)可以指定返回類型 45. 通常,拷貝構(gòu)造函數(shù)的參數(shù)是 (  

19、 ) A. 某個(gè)對(duì)象名 B. 某個(gè)對(duì)象的成員名 C. 某個(gè)對(duì)象的引用名 D. 某個(gè)對(duì)象的指針名 46. 繼承機(jī)制的作用是 (   ) A. 信息隱藏 B. 數(shù)據(jù)封裝 C. 代碼重用 D. 數(shù)據(jù)抽象 47. 類的析構(gòu)函數(shù)的作用是 (   ) A.一般成員函數(shù) B.類的初始化 C.對(duì)象的初始化 D.刪除對(duì)象創(chuàng)建的所有對(duì)象 48. 類的析構(gòu)函數(shù)是在 (   ) 調(diào)用的。 A. 類創(chuàng)建時(shí) B. 創(chuàng)建對(duì)象時(shí) C. 刪除對(duì)象時(shí) D. 不自動(dòng)調(diào)用 49. 已知print ()

20、函數(shù)是一個(gè)類無返回值的常成員函數(shù),下列表示中正確的是( )。 A.void print()const B.const void print() C.void const print ; D.void print (const ); 50. 如果類 A 被說明成類 B 的友元,則 ( ) A. 類 A 的成員即類 B 的成員 B. 類 B 的成員即類 A 的成員 C. 類 A 的成員函數(shù)不得訪問類 B 的成員 D. 類 B 不一定是類 A 的友元 51. 通過一個(gè)對(duì)象調(diào)用虛函數(shù)時(shí),C++系統(tǒng)對(duì)該調(diào)用采用( )。 A.動(dòng)態(tài)聯(lián)編

21、 B.靜態(tài)聯(lián)編 C.不確定是哪種聯(lián)編 D.函數(shù)重載 52. 在公有繼承的情況下,基類成員在派生類中的訪問權(quán)限 ( ) A. 受限制 B. 保持不變 C. 受保護(hù) D. 不受保護(hù) 53. 在C++中,當(dāng)一個(gè)對(duì)象被創(chuàng)建后,它的每一個(gè)成員函數(shù)都含有一個(gè)系統(tǒng)自動(dòng)生成的隱含的指針,稱之為( )指針。 A.對(duì)象 B.派生 C基類 D.this 54. 假定 AB 為一個(gè)類,則執(zhí)行 AB x ;語(yǔ)句時(shí)將自動(dòng)調(diào)用該類的 ( ) A. 有參構(gòu)造函數(shù) B. 無參構(gòu)造函數(shù)

22、 C. 拷貝構(gòu)造函數(shù) D. 賦值構(gòu)造函數(shù) 55. C++ 語(yǔ)言建立類族是通過 ( ) A. 類的嵌套 B. 類的繼承 C. 虛函數(shù) D. 抽象類 二、判斷題 1、C++中,數(shù)組下標(biāo)從1開始。( 錯(cuò) ) 2、C++允許對(duì)字符串進(jìn)行整體操作。( ) 3、break語(yǔ)句也可以用于if體內(nèi),它可退出if語(yǔ)句。( ?。? 4、在說明語(yǔ)句 char a(‘A’),&b=a,*pa=&a;中,b的值與*pa的值相等。( ) 5、對(duì)象數(shù)組的元素可以是不同類的對(duì)象。( ?。? 6、私有繼承中,基類中所有成員對(duì)派生類的對(duì)象都是不可見的。(  ) 7、類中所提

23、供的成員函數(shù)可以直接訪問私有成員。(  ) 8、按照標(biāo)識(shí)符的要求,下劃線是不能組成正確標(biāo)識(shí)符的。( ?。? 9、函數(shù)的默認(rèn)參數(shù)沒有順序要求,可以隨意定義。( ) 10、在 C++ 語(yǔ)言中,”A”占兩個(gè)字節(jié),而 ’A’占一個(gè)字節(jié)。( ) 11、C++語(yǔ)言支持封裝性和繼承性,不支持多態(tài)性。[ 錯(cuò) ] 12、關(guān)系運(yùn)算符可以用來比較兩個(gè)字符的大小,也可用來比較兩個(gè)字符串的大小。)[ ] 13、字符串"sdfgh"的長(zhǎng)度是5。[ ] 14、引用和指針都可作函數(shù)參數(shù)。[ ] 15、友元函數(shù)說明在類體內(nèi),它是一種成員函數(shù)。[ ] 16、友元類必須被說明為公有成員。

24、[ ] 17、純虛函數(shù)是在基類中說明的虛函數(shù),它在該基類中沒有定義具體的操作內(nèi)容。[ ] 18、析構(gòu)函數(shù)不能被繼承。[ ] 19、運(yùn)算符重載以后,其優(yōu)先級(jí)和結(jié)合性都不能改變。[ ] 20、在C++中,函數(shù)名實(shí)際上是一個(gè)指針,它指向函數(shù)的入口。[ ] 21、構(gòu)造函數(shù)可以被繼承。(   ) 22、析構(gòu)函數(shù)不能被繼承。(   ) 23、多繼承情況下,派生類的構(gòu)造函數(shù)的執(zhí)行順序取決于定義派生時(shí)所指定的各基類的順序。(   ) 24、解決多繼承情況下出現(xiàn)的二義性的方法之一是使用成員名限定法。(   ) 25、函數(shù)的參數(shù)個(gè)

25、數(shù)和類型都相同,只是返回值不同,這不是重載函數(shù)。(   ) 26、多數(shù)運(yùn)算符可以重載,個(gè)別運(yùn)算符不能重載,運(yùn)算符重載是通過函數(shù)定義實(shí)現(xiàn)的。(   ) 27、對(duì)每個(gè)可重載的運(yùn)算符來講,它既可以重載為友元函數(shù),又可以重載為成員函數(shù),還可以重載為非成員函數(shù)。(   ) 28、對(duì)單目運(yùn)算符重載為友元函數(shù)時(shí),說明一個(gè)形參;重載為成員函數(shù)時(shí),不能顯式說明形參。(   ) 29、重載運(yùn)算符保持原運(yùn)算符的優(yōu)先級(jí)和結(jié)合性不變。(   ) 30、構(gòu)造函數(shù)說明為純虛函數(shù)是沒有意義的。(   ) 三、簡(jiǎn)答題 1. 簡(jiǎn)述C++的

26、異常處理機(jī)制? 2.C++的預(yù)定義的流對(duì)象有哪些? 3. 試以客觀世界為例,說明抽象、封裝、繼承性和多態(tài)性等概念。 4. 多繼承的情況下為什么會(huì)產(chǎn)生二義性?如何消除二義性? 5. 試說明 void F(const T &t); 和 inf f() const; 中關(guān)鍵字 const 作用。 6.有如下程序 #include #include using namespace std; class B; class A{ friend B; public: A(){ cout<<"in A()"<

27、 } A(const A &a){ cout<<"in A(const A &a)<

28、 B &b){ cout<<"In ff(B &b)"< using namespace std; template class HisClass { Type data; public: HisClass(Type a, Type b, Type c); Type getData

29、(); }; template HisClass::HisClass(Type a, Type b, Type c){ if(a>b&&a>c) data=a; else if(b>c) data=b; else data=c; } template Type HisClass::getData() { return data; } int main() { HisClass x1(3,4,5), x2(5,3,4),

30、 x3(4,5,3), x4(7,8,9), x5(8,7,9); cout< #include class sample{ priv

31、ate: char *string; public: sample(const char *s){ string = new char[strlen(s)+1]; strcpy(string s); } ~sample(){ delete string; }; }; sample f(char *arg){ sample tmp(arg); return tmp; } int main() { sample local=f("abcd"); return 0; } 9.有如下程序 #i

32、nclude using namespace std; class P { char *name; int age; char *add; public: P(){ cout<<"P"; } ~P(){ cout<<"!P"; } }; class S:public P { char *department; int level; public: S(){ cout<<"S"; } ~S(){ cout<<"!S"; } }; class T: p

33、ublic P { char *major; float s; public: T(){ cout<<"T"; } ~T(){ cout<<"!T"; } }; int main() { S s; T t; system("pause"); return 0; } 程序運(yùn)行的結(jié)果是_________________________ 10.有如下程序 #include using namespace std; class B { public: B( ) { co

34、ut << "B::B( )" << endl; num++; } virtual void f( ) = 0; virtual void g( ) = 0; void k( ){ f( ); cout << "B::k( )" << endl; g( ); } virtual ~B( ){ cout << "B::~B( )" << endl; num--; } static int getNum( ){ return num; } private: static int num; }; class

35、D1: public B { public: D1( ) { cout << "D1::D1( )" << endl; } void f( ) { cout << "D1::f( )" << endl; } void g( ){ cout << "D1::g( )" << endl; } ~D1( ) { cout << "D1::~D1( )" << endl; } }; class D2: public B { public: D2( ) { cout << "D2::D2( )" << endl;

36、 } void f( ){ cout << "D2::f( )" << endl; } void g( ){ cout << "D2::g( )" << endl; } ~D2( ){ cout << "D2::~D2( )" << endl; } }; int B::num = 0; int main( ) { B* buf[3]; buf[0] = new D1; buf[1] = new D2; buf[2] = new D1; int i; cout << B::getNum( )

37、 << endl; for ( i = 0; i<3; i++) buf[i]->k( ); for (i = 0; i<3; i++) delete buf[i]; cout << B::getNum( ) << endl; system("pause"); return 0; } 程序運(yùn)行的結(jié)果是_________________________ 11.有如下程序 #include using namespace std; class R { public: R(int r1, int r2): R1

38、(r1), R2(r2){}; void print(); void print() const; private: int R1, R2; }; void R::print(){ cout<

39、________________________ 12.有如下程序 #include using namespace std; class demo{ public: static int constructor, copy_constructor; demo(){ cout<<"default constructor"<

40、tor++; } }; int demo::constructor=0; int demo::copy_constructor=0; demo usercode(demo b){ demo c(b); return c; } int main() { demo a, d; cout<<"calling usercode"<

41、; } 程序運(yùn)行的結(jié)果是_________________________ 13.有如下程序 #include using namespace std; class A{ static int m; int n; public: A(int m, int n){ m=this->m; n=this->n; } Show(){ cout<

42、w(); a2.Show(); } 程序運(yùn)行的結(jié)果是_________________________ 14.有如下程序 #include using namespace std; class P { char *name; int age; char *add; public: P(){ cout<<"P"; } ~P(){ cout<<"!P"; } }; class S:public P { char *department; int level; public: S

43、(){ cout<<"S"; } ~S(){ cout<<"!S"; } }; class T: public P { char *major; float s; public: T(){ cout<<"T"; } ~T(){ cout<<"!T"; } }; int main() { S s; T t; system("pause"); return 0; } 程序運(yùn)行的結(jié)果是: 15. 為什么要定義虛析構(gòu)函數(shù)? 16.有如下程序 #include

44、tream> using namespace std; class B { public: B( ) { cout << "B::B( )" << endl; num++; } virtual void f( ) = 0; virtual void g( ) = 0; void k( ){ f( ); cout << "B::k( )" << endl; g( ); } virtual ~B( ){ cout << "B::~B( )" << endl; num--; } static int getNum

45、( ){ return num; } private: static int num; }; class D1: public B { public: D1( ) { cout << "D1::D1( )" << endl; } void f( ) { cout << "D1::f( )" << endl; } void g( ){ cout << "D1::g( )" << endl; } ~D1( ) { cout << "D1::~D1( )" << endl; } }; class D2:

46、 public B { public: D2( ) { cout << "D2::D2( )" << endl; } void f( ){ cout << "D2::f( )" << endl; } void g( ){ cout << "D2::g( )" << endl; } ~D2( ){ cout << "D2::~D2( )" << endl; } }; int B::num = 0; int main( ) { B* buf[3]; buf[0] = new D1; buf

47、[1] = new D2; buf[2] = new D1; int i; cout << B::getNum( ) << endl; for ( i = 0; i<3; i++) buf[i]->k( ); for (i = 0; i<3; i++) delete buf[i]; cout << B::getNum( ) << endl; system("pause"); return 0; } 程序運(yùn)行的結(jié)果是_________________________ 17.有如下程序 #include us

48、ing namespace std; class R { public: R(int r1, int r2): R1(r1), R2(r2){}; void print(); void print() const; private: int R1, R2; }; void R::print(){ cout<

49、20,52); b.print(); system("pause"); return 1; } 程序運(yùn)行的結(jié)果是: 18.有如下程序 #include using namespace std; class B; class A{ friend B; public: A(){ cout<<"in A()"<

50、 } }; class B: public A{ public: B(){ cout<<"In B()"<

51、 19.有如下程序 #include using namespace std; class demo{ public: static int constructor, copy_constructor; demo(){ cout<<"default constructor"<

52、 int demo::constructor=0; int demo::copy_constructor=0; demo usercode(demo b){ demo c(b); return c; } int main() { demo a, d; cout<<"calling usercode"<

53、 20. 請(qǐng)分析下面的程序并給出該程序的執(zhí)行結(jié)果。 #include class AA{ int a; public : AA( ){cout<<"Initualizing AA!\n";} ~AA( ){cout<<"Destroying AA!\n";} }; class BB{ int b; AA p; public : BB( ){cout<<"Initualizing BB!\n";} ~BB( ){cout<<"Destroying BB!\n";} }; void main( ) {BB X; cout<

54、<"Ending main!\n"; } 執(zhí)行該程序后,輸出結(jié)果為: 21. 寫出下列程序的運(yùn)行結(jié)果。 #include using namespace std; class AA{ int a; public : AA(int i){a=i;cout<<"AA="<

55、n";} ~BB( ){cout<<"~BB="< class Test{ private: static int val; int a; public:

56、static int func(); static void sfunc(Test &r); }; int Test::val=20; int Test::func() { val--; return val; } void Test::sfunc(Test &r) { r.a=25; cout<<" Result3="<

57、 cout<<"Resultl="<

58、 public: virtual void func(){cout<<"func in class B"<< endl;} }; class C:public A, public B { public: void func(){cout<<"func in class C"<

59、程序后,輸出結(jié)果為: 24. 寫出下面程序的輸出結(jié)果。 # include class Location{ public: int X,Y; void init(int initX,int initY); int GetX(); int GetY(); }; void Location::init (int initX,int initY){ X=initX;

60、 Y=initY; } int Location::GetX() { return X; } int Location::GetY() { return Y; } void display(Location& rL) { cout<

61、t(5,3); rA->init(7,8); for (int i=0;i<5;i++) display(*(rA++)); } 執(zhí)行該程序后,輸出結(jié)果為: 四、程序設(shè)計(jì)題 1. 以下是一個(gè)整數(shù)棧類的定義: const unsigned in SIZE=100; class stack{ public: stack(); ~stack(); void push(int); void pop(); int pop() const; private: int stack[SI

62、ZE]; int tos; } 試編寫一個(gè)棧的類模板(包括其成員函數(shù)定義),以便為任何類型的對(duì)象提供棧結(jié)構(gòu)數(shù)據(jù)的操作。 2. 編程從鍵盤輸入x和y的值,計(jì)算y=ln(2x-y)的值,要求設(shè)計(jì)一個(gè)“負(fù)數(shù)求對(duì)數(shù)”的異常類,并寫出測(cè)試程序。(對(duì)數(shù)函數(shù)log()在math.h中定義) 3. 寫一個(gè)函數(shù),找出給定字符串中具有最大ASCII碼的字符。如字符串"world"中字符w具有最大的ASCII碼。函數(shù)的原型為: char MaxCharacter(char * str); 函數(shù)參數(shù):指向所要處理的字符串; 函數(shù)返回值:如果不空,則返回具有最大ASCII碼的字符,否則返回空字符

63、0x0或\0。 4. 它的公有派生類其中包含載人數(shù)passenger_load。卡車類truck是vehicle的公有派生類其中包含載人數(shù)passenger_load和載重量payload,每個(gè)類都有相關(guān)數(shù)據(jù)的輸出方法。要求用UML圖來表示各個(gè)類及其相互的關(guān)系。 5. 根據(jù)下面類中Uion函數(shù)的原型和注釋寫出它的類外定義。 classStrings{ char*s; //指向動(dòng)態(tài)分配的字符串?dāng)?shù)組空間 int n: //記錄字符串長(zhǎng)度 public: Strings(char-*str); //構(gòu)造函數(shù),利用str字符串長(zhǎng)度初始化n,

64、 //利用str字符串初始化s所指的字符串空間 Strings(Strings&str); //拷貝構(gòu)造函數(shù) Strings& Give(Strings& str); //實(shí)現(xiàn)str賦值給*this的功能并返回*this Strings Uion(Strings& str); //實(shí)現(xiàn)8this和str中的字符串連接的功能, //把連接結(jié)果存人臨時(shí)對(duì)象并返回 intLenth(){returnn;} //返回字符串長(zhǎng)度 voidPrint(){eout<

65、的鏈接類CFileLink,通過該類的使用,可以實(shí)現(xiàn)一個(gè)文件鏈接到另一個(gè)文件的的功能。將2個(gè)現(xiàn)有文件 的內(nèi)容復(fù)制到一個(gè)新文件中。為了實(shí)現(xiàn)文件的復(fù)制需要使用get()函數(shù)讀取字符,用put()函數(shù)寫入字符,從而實(shí)現(xiàn)逐個(gè)字符的復(fù)制。 class CFileLink{ fstream file1, file2, file3; char fn1[20], fn2[20], fn3[20]; public: CFileLink(); ~CFileLink(); void linkfile(); // 打開file1, file2,將file1

66、, file2的內(nèi)容寫到file3 void printfile(); // 輸出file3的內(nèi)容 } 7. 設(shè)計(jì)一個(gè)文本文件的復(fù)制類CFileCopy,通過該類的使用,可以實(shí)現(xiàn)一個(gè)文件復(fù)制到另一個(gè)文件的的功能。為了實(shí)現(xiàn)文件的復(fù)制需要使用get()函數(shù)讀取字符,用put()函數(shù)寫入字符,從而實(shí)現(xiàn)逐個(gè)字符的復(fù)制。 class CFileCopy{ fstream file1, file2; char fn1[20], fn2[20]; public: CFileCopy(); ~CFileCopy(); void copyfile(); // 打開file1, fil

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


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