《面向?qū)ο蟪绦蛟O(shè)計(jì)》C綜合練習(xí)(學(xué)生版)-含答案.doc
《《面向?qū)ο蟪绦蛟O(shè)計(jì)》C綜合練習(xí)(學(xué)生版)-含答案.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《《面向?qū)ο蟪绦蛟O(shè)計(jì)》C綜合練習(xí)(學(xué)生版)-含答案.doc(46頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
C+面向?qū)ο蟪绦蛟O(shè)計(jì)習(xí)題冊(cè)姓名 學(xué)號(hào) 學(xué)院 班級(jí) 第三章 類和對(duì)象考核題型:(1)填空題 (2)選擇題 (3)簡(jiǎn)答題(4)程序閱讀題(5)程序設(shè)計(jì)題(其中,基礎(chǔ)知識(shí)題占70左右,中等難度的題占20左右,難題占10左右)一、選擇題1. 在一個(gè)類的定義中,包含有(C )成員的定義。 A. 數(shù)據(jù) B. 函數(shù) C. 數(shù)據(jù)和函數(shù) D. 數(shù)據(jù)或函數(shù)2. 在類作用域中能夠通過(guò)直接使用該類的(D )成員名進(jìn)行訪問(wèn)。 A. 私有 B. 公用 C. 保護(hù) D. 任何3. 假定AA為一個(gè)類,a為該類公有的數(shù)據(jù)成員,x為該類的一個(gè)對(duì)象,則訪問(wèn)x對(duì)象中數(shù)據(jù)成員a的格式為(D )。 A. x(a) B. xa C. x-a D. x.a4. 假定AA為一個(gè)類,a()為該類公有的函數(shù)成員,x為該類的一個(gè)對(duì)象,則訪問(wèn)x對(duì)象中函數(shù)成員a()的格式為(B )。 A. x.a B. x.a() C. x-a D. x-a()5. 假定AA為一個(gè)類,a為該類公有的數(shù)據(jù)成員,px為指向該類對(duì)象的一個(gè)指針,則訪問(wèn)px所指對(duì)象中數(shù)據(jù)成員a的格式為(C )。 A. px(a) B. pxa C. px-a D. px.a6. 假定AA為一個(gè)類,a為該類私有的數(shù)據(jù)成員,GetValue()為該類公有函數(shù)成員,它返回a的值,x為該類的一個(gè)對(duì)象,則訪問(wèn)x對(duì)象中數(shù)據(jù)成員a的格式為( D)。 A. x.a B. x.a() C. x-GetValue() D. x.GetValue()7. 假定AA為一個(gè)類,int a()為該類的一個(gè)成員函數(shù),若該成員函數(shù)在類定義體外定義,則函數(shù)頭為(A )。 A. int AA:a() B. int AA:a() C. AA:a() D. AA:int a()8. 假定AA為一個(gè)類,a為該類公有的數(shù)據(jù)成員,若要在該類的一個(gè)成員函數(shù)中訪問(wèn)它,則書寫格式為(A)。 A. a B. AA:a C. a() D. AA:a()9. 若需要把一個(gè)類外定義的成員函數(shù)指明為內(nèi)聯(lián)函數(shù),則必須把關(guān)鍵字(B )放在函數(shù)原型或函數(shù)頭的前面。 A. in B. inline C. inLine D. InLiner10. 在多文件結(jié)構(gòu)的程序中,通常把類的定義單獨(dú)存放于(D )中。 A. 主文件 B. 實(shí)現(xiàn)文件 C. 庫(kù)文件 D. 頭文件11. 在多文件結(jié)構(gòu)的程序中,通常把類中所有非內(nèi)聯(lián)函數(shù)的定義單獨(dú)存放于( B)中。 A. 主文件 B. 實(shí)現(xiàn)文件 C. 庫(kù)文件 D. 頭文件12. 在多文件結(jié)構(gòu)的程序中,通常把含有main()函數(shù)的文件稱為(A )。 A. 主文件 B. 實(shí)現(xiàn)文件 C. 程序文件 D. 頭文件13. 在C+程序中使用的cin標(biāo)識(shí)符是系統(tǒng)類庫(kù)中定義的(A )類中的一個(gè)對(duì)象。 A. istream B. ostream C. iostream D. fstream14. 在C+程序中使用的cout標(biāo)識(shí)符是系統(tǒng)類庫(kù)中定義的(B )類中的一個(gè)對(duì)象。 A. istream B. ostream C. iostream D. fstream15. 假定AA是一個(gè)類,abc是該類的一個(gè)成員函數(shù),則參數(shù)表中隱含的第一個(gè)參數(shù)的類型為(D )。 A. int B. char C. AA D. AA*16. 假定AA是一個(gè)類,abc是該類的一個(gè)成員函數(shù),則參數(shù)表中隱含的第一個(gè)參數(shù)為( C)。 A. abc B. *this C. this D. this&17. 假定AA是一個(gè)類,“AA& abc();”是該類中一個(gè)成員函數(shù)的原型,若該函數(shù)存在對(duì)*this賦值的語(yǔ)句,當(dāng)用x.abc()調(diào)用該成員函數(shù)后,x的值(A )。 A. 已經(jīng)被改變 B. 可能被改變 C. 不變 D.不受函數(shù)調(diào)用的影響 18. 假定AA是一個(gè)類,“AA* abc()const;”是該類中一個(gè)成員函數(shù)的原型,若該函數(shù)返回this值,當(dāng)用x.abc()調(diào)用該成員函數(shù)后,x的值(C )。 A. 已經(jīng)被改變 B. 可能被改變 C. 不變 D. 受到函數(shù)調(diào)用的影響 19. 類中定義的成員默認(rèn)為(B )訪問(wèn)屬性。 A. public B. private C. protected D. friend 20. 結(jié)構(gòu)中定義的成員默認(rèn)為( A)訪問(wèn)屬性。 A. public B. private C. protected D. friend 21. 當(dāng)類中一個(gè)字符指針成員指向具有n個(gè)字節(jié)的存儲(chǔ)空間時(shí),它所能存儲(chǔ)字符串的最大長(zhǎng)度為( C )。 A. n B. n+1 C. n-1 D. n-2 22. 對(duì)于一個(gè)類的構(gòu)造函數(shù),其函數(shù)名與類名(A )。 A. 完全相同 B. 基本相同 C. 不相同 D. 無(wú)關(guān)系 23. 對(duì)于一個(gè)類的析構(gòu)函數(shù),其函數(shù)名與類名(C )。 A. 完全相同 B. 完全不同 C. 只相差一個(gè)字符 D. 無(wú)關(guān)系 24. 類的構(gòu)造函數(shù)是在定義該類的一個(gè)( C)時(shí)被自動(dòng)調(diào)用執(zhí)行的。 A. 成員函數(shù) B. 數(shù)據(jù)成員 C. 對(duì)象 D. 友元函數(shù) 25. 類的析構(gòu)函數(shù)是一個(gè)對(duì)象被( B)時(shí)自動(dòng)調(diào)用的。 A. 建立 B. 撤消 C. 賦值 D. 引用 26. 一個(gè)類的構(gòu)造函數(shù)通常被定義為該類的(A )成員。 A. 公用 B. 保護(hù) C. 私有 D. 友元 27. 一個(gè)類的析構(gòu)函數(shù)通常被定義為該類的(C )成員。 A. 私有 B. 保護(hù) C. 公用 D. 友元 28. 假定AB為一個(gè)類,則執(zhí)行 “AB x;”語(yǔ)句時(shí)將自動(dòng)調(diào)用該類的(B )。 A. 帶參構(gòu)造函數(shù) B. 無(wú)參構(gòu)造函數(shù) C. 拷貝構(gòu)造函數(shù) D. 賦值重載函數(shù) 29. 假定AB為一個(gè)類,則執(zhí)行 “AB x(a,5);”語(yǔ)句時(shí)將自動(dòng)調(diào)用該類的(A )。 A. 帶參構(gòu)造函數(shù) B. 無(wú)參構(gòu)造函數(shù) C. 拷貝構(gòu)造函數(shù) D. 賦值重載函數(shù) 30. 假定AB為一個(gè)類,則執(zhí)行 “AB *s=new AB(a,5);”語(yǔ)句時(shí)得到的一個(gè)動(dòng)態(tài)對(duì)象為_D_。 A. s B. s-a C. s.a D. *s 31. 假定AB為一個(gè)類,則執(zhí)行 “AB r1=r2;”語(yǔ)句時(shí)將自動(dòng)調(diào)用該類的(D )。 A. 無(wú)參構(gòu)造函數(shù) B. 帶參構(gòu)造函數(shù) C. 賦值重載函數(shù) D. 拷貝構(gòu)造函數(shù) 32. 若需要使類中的一個(gè)指針成員指向一塊動(dòng)態(tài)存儲(chǔ)空間,則通常在(B )函數(shù)中完成。 A. 析構(gòu) B. 構(gòu)造 C. 任一成員 D. 友元 33. 當(dāng)類中的一個(gè)整型指針成員指向一塊具有n*sizeof(int)大小的存儲(chǔ)空間時(shí),它最多能夠存儲(chǔ)(A )個(gè)整數(shù)。 A. n B. n+1 C. n-1 D. 1 34. 假定一個(gè)類的構(gòu)造函數(shù)為 “A(int aa, int bb) a=aa; b=aa*bb;”,則執(zhí)行 “A x(4,5);”語(yǔ)句后,x.a和x.b的值分別為(C )。 A. 4和5 B. 5和4 C. 4和20 D. 20和5 35. 假定一個(gè)類的構(gòu)造函數(shù)為 “A(int aa=1, int bb=0) a=aa; b=bb;”,則執(zhí)行 “A x(4);”語(yǔ)句后,x.a和x.b的值分別為(D )。 A. 1和0 B. 1和4 C. 4和1 D. 4和0 36. 假定AB為一個(gè)類,則(B )為該類的拷貝構(gòu)造函數(shù)的原型說(shuō)明。 A. AB(AB x); B. AB(AB& x); C. void AB(AB& x); D. AB(int x); 37. 假定一個(gè)類的構(gòu)造函數(shù)為 “B(int ax, int bx): a(ax), b(bx) ”,執(zhí)行 “B x(1,2),y(3,4);x=y;”語(yǔ)句序列后x.a的值為(C )。 A. 1 B. 2 C. 3 D. 4 38. 假定一個(gè)類AB只含有一個(gè)整型數(shù)據(jù)成員a,當(dāng)用戶不定義任何構(gòu)造函數(shù)時(shí),系統(tǒng)為該類定義的無(wú)參構(gòu)造函數(shù)為(D )。 A. AB() a=0; B. AB(int aa=0): a(aa) C. AB(int aa): a(aa) D. AB() 39. 假定一個(gè)類AB只含有一個(gè)整型數(shù)據(jù)成員a,用戶為該類定義的帶參構(gòu)造函數(shù)可以為(C )。 A. AB() B. AB(): a(0) C. AB(int aa=0) a=aa; D. AB(int aa) 40. 對(duì)于任一個(gè)類,用戶所能定義的構(gòu)造函數(shù)的個(gè)數(shù)至多為(D )。 A. 0 B. 1 C. 2 D. 任意個(gè) 41. 對(duì)于任一個(gè)類,用戶所能定義的析構(gòu)函數(shù)的個(gè)數(shù)至多為(B )。 A. 0 B. 1 C. 2 D. 任意個(gè) 42. 假定AB為一個(gè)類,則執(zhí)行 “AB *px=new ABn;”語(yǔ)句時(shí)將(A )。 A. 動(dòng)態(tài)分配一個(gè)數(shù)組 B. 動(dòng)態(tài)分配一個(gè)對(duì)象 C. 靜態(tài)分配一個(gè)數(shù)組 D. 靜態(tài)分配一個(gè)對(duì)象 43. 設(shè)px是指向一個(gè)類對(duì)象的指針變量,則執(zhí)行 “delete px;”語(yǔ)句時(shí),將自動(dòng)調(diào)用該類的(C )。 A. 無(wú)參構(gòu)造函數(shù) B. 帶參構(gòu)造函數(shù) C. 析構(gòu)函數(shù) D. 拷貝構(gòu)造函數(shù) 44. 當(dāng)一個(gè)類對(duì)象離開它的作用域時(shí),系統(tǒng)自動(dòng)調(diào)用該類的(D )。 A. 無(wú)參構(gòu)造函數(shù) B. 帶參構(gòu)造函數(shù) C. 拷貝構(gòu)造函數(shù) D. 析構(gòu)函數(shù) 45. 假定一個(gè)類對(duì)象數(shù)組為An,當(dāng)離開它定義的作用域時(shí),系統(tǒng)自動(dòng)調(diào)用該類析構(gòu)函數(shù)的次數(shù)為(C )。 A. 0 B. 1 C. n D. n-1 46. 假定AB為一個(gè)類,則執(zhí)行 “AB a10;”語(yǔ)句時(shí)調(diào)用該類無(wú)參構(gòu)造函數(shù)的次數(shù)為(D )。 A. 0 B. 1 C. 9 D. 10 47. 假定AB為一個(gè)類,則執(zhí)行 “AB *px=new ABn;”語(yǔ)句時(shí)調(diào)用該類無(wú)參構(gòu)造函數(shù)的次數(shù)為(A )。 A. n B. n-1 C. 1 D. 0 48. 假定AB為一個(gè)類,則執(zhí)行 “AB a, b(3), *p;”語(yǔ)句時(shí)共調(diào)用該類構(gòu)造函數(shù)的次數(shù)為(A )。 A. 2 B. 3 C. 4 D. 5 49. 假定AB為一個(gè)類,則執(zhí)行 “AB a(2), b3, *p4;”語(yǔ)句時(shí)共調(diào)用該類構(gòu)造函數(shù)的次數(shù)為(B )。 A. 3 B. 4 C. 5 D. 9 50. 假定AB為一個(gè)類,則執(zhí)行“AB a, b(2), c3, *p=&a;”語(yǔ)句時(shí)共調(diào)用該類無(wú)參構(gòu)造函數(shù)的次數(shù)為(D )。 A. 5 B. 6 C. 3 D. 4 51. 假定AB為一個(gè)類,則執(zhí)行“AB *p=new AB(1,2);”語(yǔ)句時(shí)共調(diào)用該類構(gòu)造函數(shù)的次數(shù)為(B )。 A. 0 B. 1 C. 2 D. 3 52. 假定AB為一個(gè)類,px為指向該類的一個(gè)含有n個(gè)對(duì)象的動(dòng)態(tài)數(shù)組的指針,則執(zhí)行“delete px;”語(yǔ)句時(shí)共調(diào)用該類析構(gòu)函數(shù)的次數(shù)為(C )。 A. 0 B. 1 C. n D. n+1 53. 對(duì)類對(duì)象成員的初始化是通過(guò)構(gòu)造函數(shù)中給出的(D )實(shí)現(xiàn)的。 A. 函數(shù)體 B. 初始化表 C. 參數(shù)表 D. 初始化表或函數(shù)體 54. 對(duì)類中常量成員的初始化是通過(guò)構(gòu)造函數(shù)中給出的(C )實(shí)現(xiàn)的。 A. 函數(shù)體 B. 參數(shù)表 C. 初始化表 D. 初始化表或函數(shù)體 55. 對(duì)類中引用成員的初始化是通過(guò)構(gòu)造函數(shù)中給出的(C )實(shí)現(xiàn)的。 A. 函數(shù)體 B. 參數(shù)表 C. 初始化表 D. 初始化表或函數(shù)體 56. 一個(gè)類的靜態(tài)數(shù)據(jù)成員所表示屬性 (C )。 A. 是類的或?qū)ο蟮膶傩?B. 只是對(duì)象的屬性 C. 只是類的屬性 D. 類和友元的屬性 57. 類的靜態(tài)成員的訪問(wèn)控制(D )。 A. 只允許被定義為private B. 只允許被定義為private或protected C. 只允許被定義為public D. 可允許被定義為private、protected或public 58. 靜態(tài)成員函數(shù)對(duì)類的數(shù)據(jù)成員訪問(wèn)(B )。 A. 是不允許的 B. 只允許是靜態(tài)數(shù)據(jù)成員 C. 只允許是非靜態(tài)數(shù)據(jù)成員 D. 可允許是靜態(tài)數(shù)據(jù)成員或非靜態(tài)數(shù)據(jù)成員 59. 被非靜態(tài)成員函數(shù)訪問(wèn)的類的數(shù)據(jù)成員(A )。 A. 可以是非靜態(tài)數(shù)據(jù)成員或靜態(tài)數(shù)據(jù)成員 B. 不可能是類的靜態(tài)數(shù)據(jù)成員 C. 只能是類的非靜態(tài)數(shù)據(jù)成員 D. 只能是類的靜態(tài)數(shù)據(jù)成員 60. 靜態(tài)數(shù)據(jù)成員的初始化是在(D )中進(jìn)行的。 A. 構(gòu)造函數(shù) B. 任何成員函數(shù) C. 所屬類 D. 全局區(qū) 61. 當(dāng)將一個(gè)類A或函數(shù)f()說(shuō)明為另一個(gè)類B的友元后,類A或函數(shù)f()能夠直接訪問(wèn)類B的(D )。 A. 只能是公有成員 B. 只能是保護(hù)成員 C. 只能是除私有成員之外的任何成員 D. 具有任何權(quán)限的成員 62. 引入友元的主要目的是為了(C )。 A. 增強(qiáng)數(shù)據(jù)安全性 B. 提高程序的可靠性 C. 提高程序的效率和靈活性 D. 保證類的封裝性 63. 一個(gè)類的成員函數(shù)也可以成為另一個(gè)類的友元函數(shù),這時(shí)的友元說(shuō)明(A )。 A. 需加上類域的限定 B. 不需加上類域的限定 C. 類域的限定可加可不加 D. 不需要任何限定 64. 一個(gè)類的友元不是該類的成員,與該類的關(guān)系密切,所以它(D )。 A. 有this指針,有默認(rèn)操作的對(duì)象 B. 沒(méi)有this指針,可以有默認(rèn)操作的對(duì)象 C. 有this指針,不能執(zhí)行默認(rèn)操作 D. 沒(méi)有this指針,也就沒(méi)有默認(rèn)操作的對(duì)象二、程序填充題1. 已知一個(gè)類的定義如下:#includeclass AA int a10;int n;public:void SetA(int aa, int nn); /用數(shù)組aa初始化數(shù)據(jù)成員a,用nn初始化數(shù)據(jù)成員nint MaxA(); /從數(shù)組a中前n個(gè)元素中查找最大值void SortA(); /采用選擇排序的方法對(duì)數(shù)組a中前n個(gè)元素,進(jìn)行從小到大排序 void InsertA();/采用插入排序的方法對(duì)數(shù)組a中前n個(gè)元素進(jìn)行從小到大排序void PrintA(); /依次輸出數(shù)組a中的前n個(gè)元素; 該類中MaxA()函數(shù)的實(shí)現(xiàn)如下,請(qǐng)?jiān)跇?biāo)號(hào)位置補(bǔ)充適當(dāng)?shù)膬?nèi)容。int _(1)_AA:Max()_ int x=a0;for(int i=1; ix) _(2) x=a i _;_(3)_return x_;2. 已知一個(gè)類的定義如下:#includeclass AA int a10;int n;public:void SetA(int aa, int nn); /用數(shù)組aa初始化數(shù)據(jù)成員a,用nn初始化數(shù)據(jù)成員nint MaxA(); /從數(shù)組a中前n個(gè)元素中查找最大值void SortA(); /采用選擇排序的方法對(duì)數(shù)組a中前n個(gè)元素,進(jìn)行從小到大排序 void InsertA();/采用插入排序的方法對(duì)數(shù)組a中前n個(gè)元素進(jìn)行從小到大排序void PrintA(); /依次輸出數(shù)組a中的前n個(gè)元素;void AA:SortA()int i,j;for(i=0; _(1)in-1或i=n-2_; i+) int x=ai, k=i;for(j=i+1; jn; j+)if(ajx) _(2)_x=aj;k=j_ak=ai;_(3)ai=x_;3. 已知一個(gè)類的定義如下:#includeclass AA int a10;int n;public:void SetA(int aa, int nn); /用數(shù)組aa初始化數(shù)據(jù)成員a,用nn初始化數(shù)據(jù)成員nint MaxA(); /從數(shù)組a中前n個(gè)元素中查找最大值void SortA(); /采用選擇排序的方法對(duì)數(shù)組a中前n個(gè)元素,進(jìn)行從小到大排序 void InsertA();/采用插入排序的方法對(duì)數(shù)組a中前n個(gè)元素進(jìn)行從小到大排序void PrintA(); /依次輸出數(shù)組a中的前n個(gè)元素;void _(1)_AA:Insert()_ int i,j;for(i=1; i=0; j-)if(xaj) _(2)_aj+1=aj_;else _(3)break_;aj+1=x;4. 已知一個(gè)類的定義如下:#includeclass AA int a10;int n;public:void SetA(int aa, int nn); /用數(shù)組aa初始化數(shù)據(jù)成員a,用nn初始化數(shù)據(jù)成員nint MaxA(); /從數(shù)組a中前n個(gè)元素中查找最大值void SortA(); /采用選擇排序的方法對(duì)數(shù)組a中前n個(gè)元素,進(jìn)行從小到大排序 void InsertA();/采用插入排序的方法對(duì)數(shù)組a中前n個(gè)元素進(jìn)行從小到大排序void PrintA(); /依次輸出數(shù)組a中的前n個(gè)元素,最后輸出一個(gè)換行; 使用該類的主函數(shù)如下:void main()int a10=23,78,46,55,62,76,90,25,38,42;AA x; _(1)_x.SetA(a,6)_;int m=_(2)_x.MaxA()_;_(3)_x.PrintA()_;coutmendl; 該程序運(yùn)行結(jié)果為:23 78 46 55 62 76785. 已知一個(gè)類的定義如下:#includeclass AA int a10;int n;public:void SetA(int aa, int nn); /用數(shù)組aa初始化數(shù)據(jù)成員a,用nn初始化數(shù)據(jù)成員nint MaxA(); /從數(shù)組a中前n個(gè)元素中查找最大值void SortA(); /采用選擇排序的方法對(duì)數(shù)組a中前n個(gè)元素,進(jìn)行從小到大排序void PrintA(); /依次輸出數(shù)組a中的前n個(gè)元素,最后輸出一個(gè)換行; 使用該類的主函數(shù)如下:void main()int a10=23,78,46,55,62,76,90,25,38,42;_(1)_AA x_; x.SetA(a,8);int _(2)_m=x.MaxA( )_;_(3)_x.Sort( )_;x.PrintA(); coutmendl; 該程序運(yùn)行結(jié)果為:23 25 46 55 62 76 78 90906. 已知一個(gè)利用數(shù)組實(shí)現(xiàn)棧的類定義如下:const int ARRAY_SIZE=10;class Stack public:void Init() top=-1; /初始化棧為空 void Push(int newElem); /向棧中壓入一個(gè)元素int Pop(); /從棧頂彈出一個(gè)元素bool Empty() /判棧空 if(top=-1) return true;else return false;int Depth() return top+1; /返回棧的深度void Print(); /按照后進(jìn)先出原則依次輸出棧中每個(gè)元素,直到??諡橹筽rivate:int elemARRAY_SIZE; /用于保存棧元素的數(shù)組int top; /指明棧頂元素位置的指針;void Stack:Push(int newElem) if(_(1)_top=ARRAY_SIZE-1_) cout棧滿!endl;exit(1); /中止運(yùn)行_(2) top+或(+top)_;elemtop=_(3)_newElem_;7. 已知一個(gè)利用數(shù)組實(shí)現(xiàn)棧的類定義如下:const int ARRAY_SIZE=10;class Stack public:void Init() top=-1; /初始化棧為空 void Push(int newElem); /向棧中壓入一個(gè)元素int Pop(); /從棧頂彈出一個(gè)元素bool Empty() /判???if(top=-1) return true;else return false;int Depth() return top+1; /返回棧的深度void Print(); /按照后進(jìn)先出原則依次輸出棧中每個(gè)元素,直到??諡橹筽rivate:int elemARRAY_SIZE; /用于保存堆棧元素的數(shù)組int top; /指明棧頂元素位置的指針; 該類的Pop和Print函數(shù)的實(shí)現(xiàn)分別如下:_(1)_int Stack:Pop_ if(top=-1) cout???endl;exit(1); /中止運(yùn)行return _(2)_elemtop_;void Stack:Print() while(!Empty() cout_(3)_Pop( )_ ;8class A int a; public: A() a=0; _(1)A(int aa):a(aa)_ /定義構(gòu)造函數(shù),用參數(shù)aa初始化數(shù)據(jù)成員a ; main() _(2)_A *p_; /定義類A的指針對(duì)象p _(3) p=new A(5)_; /用p指向動(dòng)態(tài)對(duì)象并初始化為整數(shù)5 9class A char *a; public: _(1)_A( ) a=0;_ /定義無(wú)參構(gòu)造函數(shù),使a的值為空 A(char *aa) a=_(2)_new char strlen(aa)+1_; strcpy(a,aa); /用aa所指字符串初始化a所指向的動(dòng)態(tài)存儲(chǔ)空間 _(3)_A( )delete a_ /定義析構(gòu)函數(shù),刪除a所指向的動(dòng)態(tài)存儲(chǔ)空間 ;10class A int a,b; public: A(int aa=0, int bb=0) :a(aa),b(bb)_(1)_ /分別用aa和bb對(duì)應(yīng)初始化a和b ;main() _(2)A x(5) , y(x)_ ; /定義類A的對(duì)象x并用5初始化,同時(shí)定義y并用x初始化 _(3)_A *p=x_ ; /定義p指針,使之指向?qū)ο髕11class A int a,b; public: _(1)_A(int aa=0,int bb=0)a=aa;b=bb;_ /定義構(gòu)造函數(shù),使參數(shù)aa和bb的默認(rèn)值為0, /在函數(shù)體中用aa初始化a,用bb初始化b ;main() A *p1, *p2; _(2)_p1=new A_ ; /調(diào)用無(wú)參構(gòu)造函數(shù)生成由p1指向的動(dòng)態(tài)對(duì)象 _(3)_p2=new A (4,5)_ ; /調(diào)用帶參構(gòu)造函數(shù)生成由p2指向的動(dòng)態(tài)對(duì)象, /使a和b成員分別被初始化為4和512. #include #include class A int *a; int n; int MaxLen; public: A(): a(0), n(0), MaxLen(0) A(int *aa, int nn, int MM) n=nn; MaxLen=MM; if(nMaxLen) exit(1); _(1)a=new int Maxlen_; /由a指向長(zhǎng)度為MaxLen的動(dòng)態(tài)數(shù)組 for(int i=0; in; i+) ai=aai; A() delete a; int GetValue(int i) _(2)_return ai;_ /函數(shù)體返回ai的值 ; void main() int b10=1,2,3,4,5,6,7,8,9,10; A r(b,10,10); int i,s=0; for(i=0; i10; i+)_(3) s+=r.GetValue(i);_ /把r對(duì)象的a數(shù)據(jù)成員中的每個(gè) /元素值依次累加到s中 couts=sendl; 13. #include #include class A int *a; int n; int MaxLen; public: A(): a(0), n(0), MaxLen(0) A(int *aa, int nn, int MM) n=nn; MaxLen=MM; if(nMaxLen) exit(1); a=new intMaxLen; _(1)for(int i=0;in;i+) ai=aai_; /以i為循環(huán)變量把a(bǔ)a數(shù)組中每個(gè)元素值 /傳送給a數(shù)組的對(duì)應(yīng)元素中 A(); int GetValue(int i) return ai; /函數(shù)體返回ai的值;_(2)AA:A( ) delete a;_ /析構(gòu)函數(shù)的類外定義 void main() int b10=1,2,3,4,5,6,7,8,9,10; A r(b,10,10); int i,s=0; _(3) for(i=0; i10; i+) s+=r.GetValue(i);_ ; /以i為循環(huán)變量,把r對(duì)象的a數(shù)據(jù)成員中的 /每個(gè)元素值依次累加到s中 couts=sendl; 14. 一種類定義如下:class Goods private: char gd_name20; /商品名稱 int weight; /商品重量 static int totalweight; /同類商品總重量 public:Goods (char*str,int w) /構(gòu)造函數(shù) strcpy(gd_name,str); weight=w; totalweight+=weight; Goods ()totalweight -= weight; char* GetN()_(1) return gd_name _; /返回商品名稱 int GetW()return weight;_(2)_static int _ GetTotal_Weight() /定義靜態(tài)成員函數(shù)返回總重量 _(3)_ return totalweight _;三、寫出下列程序的運(yùn)行結(jié)果1. #include #include class CD char* a; int b; public: void Init(char* aa, int bb) a=new charstrlen(aa)+1; strcpy(a,aa); b=bb; char* Geta() return a; int Getb() return b; void Output() couta bendl; dx;第1題運(yùn)行結(jié)果:void main()CD dy;dx.Init(abcdef,30);dy.Init(shenyafen,3*dx.Getb()+5);dx.Output();dy.Output();2#include #include class CD char* a; int b; public: void Init(char* aa, int bb) a=new charstrlen(aa)+1; strcpy(a,aa); b=bb; char* Geta() return a; int Getb() return b; void Output() couta bendl; ;第2題運(yùn)行結(jié)果:void main()CD dx,dy;char a20;dx.Init(abcdef,30);strcpy(a,dx.Geta();strcat(a,xyz);dy.Init(a,dx.Getb()+20);dx.Output();dy.Output();3. #include class CE private: int a,b; int getmax() return (ab? a:b); public: int c;第3題運(yùn)行結(jié)果: void SetValue(int x1,int x2, int x3) a=x1; b=x2; c=x3; int GetMax(); ;int CE:GetMax() int d=getmax();return (dc? d:c);void main()int x=5,y=12,z=8;CE ex, *ep=&ex;ex.SetValue(x,y,z);coutex.GetMax()SetValue(x+y,y-z,20);coutGetMax()endl;4. #include class CE private: int a,b; int getmin() return (ab? a:b); public: int c; void SetValue(int x1,int x2, int x3) a=x1; b=x2; c=x3;第4題運(yùn)行結(jié)果: int GetMin(); ;int CE:GetMin() int d=getmin();return (dSetValue(x+y,y-z,10);coutGetMin()endl;CE a=*ep;couta.GetMin()*3+15endl;5. #include class Franction /定義分?jǐn)?shù)類 int nume; /定義分子 int deno; /定義分母 public: /把*this化簡(jiǎn)為最簡(jiǎn)分?jǐn)?shù),具體定義在另外文件中實(shí)現(xiàn)void FranSimp(); /返回兩個(gè)分?jǐn)?shù)*this和x之和,具體定義在另外文件中實(shí)現(xiàn)Franction FranAdd(const Franction& x); /置分?jǐn)?shù)的分子和分母分別0和1 void InitFranction() nume=0; deno=1; /置分?jǐn)?shù)的分子和分母分別n和d void InitFranction(int n, int d) nume=n; deno=d; /輸出一個(gè)分?jǐn)?shù)void FranOutput() coutnume/denoendl; ;void main() Franction a,b,c,d; a.InitFranction(7,12); b.InitFranction(-3,8); c.InitFranction(); c=a.FranAdd(b); d=c.FranAdd(a);couta: ; a.FranOutput(); coutb: ; b.FranOutput(); coutc: ; c.FranOutput(); coutd: ; d.FranOutput(); 第5題答案:a:7/12b:-3/8c:5/24d:19/24 6. #include class Franction /定義分?jǐn)?shù)類 int nume; /定義分子 int deno; /定義分母 public: /把*this化簡(jiǎn)為最簡(jiǎn)分?jǐn)?shù),具體定義在另外文件中實(shí)現(xiàn)void FranSimp(); /返回兩個(gè)分?jǐn)?shù)*this和x之和,具體定義在另外文件中實(shí)現(xiàn)Franction FranAdd(const Franction& x); /置分?jǐn)?shù)的分子和分母分別0和1 void InitFranction() nume=0; deno=1; /置分?jǐn)?shù)的分子和分母分別n和d void InitFranction(int n, int d) nume=n; deno=d; /輸出一個(gè)分?jǐn)?shù)void FranOutput() coutnume/denoendl; ;void main() Franction a,b,c,d; a.InitFranction(6,15); b.InitFranction(3,10); c.InitFranction(); c=a.FranAdd(b); d=c.FranAdd(a); 第6題答案:couta: ; a.FranOutput(); a:6/15 coutb: ; b.FranOutput(); b:3/10 coutc: ; c.FranOutput(); c:7/10 coutd: ; d.FranOutput(); d:11/10 7. #include#includeclass A char *a;public: A(char *s) 第7題運(yùn)行結(jié)果: a=new charstrlen(s)+1; strcpy(a,s); coutaendl; A() delete a; coutDestructor!endl; ;void main() A x(xuxiaokai); A *y=new A(weirong); delete y;8. #includeclass A int *a;public: A(int x=0):a(new int(x) A() delete a; int getA() return *a; void setA(int x) *a=x;void main() A x1,x2(3); 第8題運(yùn)行結(jié)果: A *p=&x2;p-setA(x2.getA()+5); x1.setA(15+x1.getA();coutx1.getA() x2.getA()endl;9. #includeclass A int a;public: A(int aa=0): a(aa) couta ; A() coutXxk;void main() 第9題運(yùn)行結(jié)果: A *p; A x3=1,2,3,y=4;coutendl;p=new A3;coutendl;delete p;coutendl;10. #includeclass A int a,b;public: A() a=b=0; A(int aa, int bb) a=aa; b- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 面向?qū)ο蟪绦蛟O(shè)計(jì) 面向 對(duì)象 程序設(shè)計(jì) 綜合 練習(xí) 學(xué)生 答案
鏈接地址:http://m.italysoccerbets.com/p-8866669.html