C++期末復(fù)習(xí)題庫(kù)_第1頁(yè)
C++期末復(fù)習(xí)題庫(kù)_第2頁(yè)
C++期末復(fù)習(xí)題庫(kù)_第3頁(yè)
C++期末復(fù)習(xí)題庫(kù)_第4頁(yè)
C++期末復(fù)習(xí)題庫(kù)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余22頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、C+程序設(shè)計(jì)試題一、單項(xiàng)選擇題1. 對(duì)C+吾言和C語(yǔ)言的兼容性,描述正確的是(A )A. C+兼容C B. C+部分兼容CC. C+不兼容 CD. C兼容 C+2. 在C+中使用流進(jìn)行輸入輸出,其中用于屏幕輸出的對(duì)象是(C )A. cerr B. cin C. cout D. cfilecerr:標(biāo)準(zhǔn)錯(cuò)誤輸出;cin:標(biāo)準(zhǔn)輸入3. 對(duì)使用關(guān)鍵字new所開(kāi)辟的動(dòng)態(tài)存儲(chǔ)空間,釋放時(shí)必須使 用(C )A. free B. create C. delete D. release4 .如沒(méi)有使用private關(guān)鍵字定義類的數(shù)據(jù)成員,則默認(rèn)為(A )A. Private B. publicC. prote

2、cted D. friend5. 使用值傳遞方式將實(shí)參傳給形參,下列說(shuō)法正確的是(A )A.形參是實(shí)參的備份B.實(shí)參是形參的備份C.形參和實(shí)參是同一對(duì)象D.形參和實(shí)參無(wú)聯(lián)系6. 在函數(shù)調(diào)用時(shí),如某一默認(rèn)參數(shù)要指明一個(gè)特定值,則有(A )A.其之前所有參數(shù)都必須賦值B. 其之后所有參數(shù)都必須賦C. 其前、后所有參數(shù)都必須賦值D.其前、后所有參數(shù)都不必賦值7. 設(shè)存在函數(shù)int max(int , int)返回兩參數(shù)中較大值,若求22,59, 70三者中最大值,下列表達(dá)式不正確的是( C )A. int m = max(22,max(59, 70); B. int m = max(max(22,

3、59),70);C. int m = max(22, 59, 70); D. int m = max(59, max(22, 70);8. 下列哪個(gè)類型函數(shù)不適合聲明為內(nèi)聯(lián)函數(shù)(A )A.函數(shù)體語(yǔ)句較多 B.函數(shù)體語(yǔ)句較少C.函數(shù)執(zhí)行時(shí)間較短D.函數(shù)執(zhí)行時(shí)間過(guò)長(zhǎng)9. i nt Func(int, in t);不可與下列哪個(gè)函數(shù)構(gòu)成重載(B )A. int Func(int, int, int); B. double Func(int, int);C. double Func(double, double); D. double Func(int, double); 說(shuō)明:不能以形參名來(lái)區(qū)分函數(shù)

4、;不能以函數(shù)返回值來(lái)區(qū)分函數(shù)。 必須是形參的個(gè)數(shù)或者類型不同才能構(gòu)成函數(shù)重載。10. 對(duì)類中聲明的變量,下列描述中正確的是(C )A.屬于全局變量B.只屬于該類C.屬于該類,某些情況下也可被該類不同實(shí)例所共享D. 任何情況下都可被該類所有實(shí)例共享11. 類的私有成員可在何處訪問(wèn)(D )A.通過(guò)子類的對(duì)象訪問(wèn)B.本類及子類的成員函數(shù)中C.通過(guò)該類對(duì)象訪問(wèn)D.本類的成員函數(shù)中12. 如果沒(méi)有為一個(gè)類定義任何構(gòu)造函數(shù)的情況下,下列描述正 確的是(A )A. 編譯器總是自動(dòng)創(chuàng)建一個(gè)不帶參數(shù)的構(gòu)造函數(shù)B. 這個(gè)類沒(méi)有構(gòu)造函數(shù)C. 這個(gè)類不需要構(gòu)造函數(shù)D. 該類不能通過(guò)編譯13. 一個(gè)類可包含析構(gòu)函數(shù)的個(gè)

5、數(shù)是( B )A. 0個(gè)B. 1個(gè)C.至少一個(gè)D. 0個(gè)或多個(gè)只有一個(gè),多了編譯器都不知道調(diào)用哪個(gè)好。而構(gòu)造函數(shù)可以有多個(gè),因?yàn)闃?gòu)造函數(shù)調(diào)用時(shí)編譯器可以根據(jù)變量的類型和數(shù)量來(lái) 確定調(diào)用哪個(gè)構(gòu)造函數(shù),而析構(gòu)函數(shù)是系統(tǒng)調(diào)用的,不能做到這種效果。14. this指針存在的目的是( B )A. 保證基類公有成員在子類中可以被訪問(wèn)B. 保證每個(gè)對(duì)象擁有自己的數(shù)據(jù)成員,但共享處理這些數(shù)據(jù)成員的代碼C. 保證基類保護(hù)成員在子類中可以被訪問(wèn)D. 保證基類私有成員在子類中可以被訪問(wèn)15. 下列關(guān)于類的權(quán)限的描述錯(cuò)誤的是(A )A. 類本身的成員函數(shù)只能訪問(wèn)自身的私有成員B. 類的對(duì)象只能訪問(wèn)該類的公有成員C.

6、普通函數(shù)不能直接訪問(wèn)類的公有成員,必須通過(guò)對(duì)象訪問(wèn)D. 個(gè)類可以將另一個(gè)類的對(duì)象作為成員16. 在編譯指令中,宏定義使用哪個(gè)指令(B )A. #includeB. #define C. #if D. #else17. 設(shè)類A將其它類對(duì)象作為成員,則建立A類對(duì)象時(shí),下列描 述正確的是(B )A. A類構(gòu)造函數(shù)先執(zhí)行B.成員構(gòu)造函數(shù)先執(zhí)行C.兩者并行執(zhí)行D.不能確定類的組合,描述的是一個(gè)類內(nèi)嵌其他類的對(duì)象作為成員的情況,它們之間的關(guān)系是一種包含與被包含的關(guān)系。在聲明一個(gè)組合類的對(duì)象時(shí),不僅它自身的構(gòu)造函數(shù)將被調(diào)用, 而且還將調(diào)用其內(nèi)嵌對(duì)象的構(gòu)造函數(shù)。這時(shí)構(gòu)造函數(shù)的調(diào)用順序是:(1)按照內(nèi)嵌對(duì)象在組

7、合類的聲明中出現(xiàn)的次序,依次調(diào)用內(nèi)嵌對(duì)象的構(gòu)造函數(shù);(2)執(zhí)行本類構(gòu)造函數(shù)的函數(shù)體,析構(gòu)函數(shù)的調(diào)用執(zhí)行順序與構(gòu)造函數(shù)剛好相反。18. 下列描述錯(cuò)誤的是(A )A.在創(chuàng)建對(duì)象前,靜態(tài)成員不存在B.靜態(tài)成員是類的成員C.靜態(tài)成員不能是虛函數(shù)D.靜態(tài)成員函數(shù)不能直接訪問(wèn)非靜態(tài)成員說(shuō)明:靜態(tài)成員函數(shù)可以直接訪問(wèn)該類的靜態(tài)數(shù)據(jù)和函數(shù)成員, 而訪問(wèn)非靜態(tài)成員,必須通過(guò)參數(shù)傳遞方式得到對(duì)象名,然后通過(guò)對(duì)象名來(lái)訪問(wèn)。19. 對(duì)于友元描述正確的是( B )A.友元是本類的成員函數(shù)B.友元不是本類的成員函數(shù)C.友元不是函數(shù)D.友元不能訪問(wèn)本類私有成員20. 在哪種派生方式中,派生類可以訪問(wèn)基類中的protecte

8、d成 員(B )A. public 和 privateB. public 和 protectedC. protected 和 private D .僅 protected二、填空題(本大題共20小題,每小題1分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。21. 設(shè)要把一個(gè)文件輸出流對(duì)象myFile與文件“ f : myText.txt相關(guān)聯(lián),所用的C+語(yǔ)句是:my( “f:myText.txt ” );。22. C+中 ostream類的直接基類是 ios類。23. 運(yùn)算符只能用成員 _運(yùn)算符來(lái)重載,不能用友元運(yùn)算符來(lái)重載。24. 定義虛函數(shù)所用的關(guān)鍵字是 virtual。2

9、5. vector類中用于返回向量中第1個(gè)對(duì)象的方法是 _ front()。26. 在C+中,利用向量類模板定義一個(gè)具有20個(gè)char的向量 E,其元素均被置為字符 t實(shí)現(xiàn)此操作的語(yǔ)句是vectorE(20, t )。27. 類的繼承是指子類繼承基類的_據(jù)成員和成員函數(shù)。28. 不同對(duì)象可以調(diào)用相同名稱的函數(shù),但可導(dǎo)致完全不同的行 為的現(xiàn)象稱為 多態(tài)性或(類的多態(tài)性)。29. #include指令指示編譯器將一個(gè)源文件嵌入到帶該指令的源文件之中。30. 設(shè)類A有成員函數(shù)void Fun( void);若要定義一個(gè)指向類成員函數(shù)的指針變量pafn來(lái)指向Fun,該指針變量的聲明語(yǔ)句是:void(A

10、:*pafn)(void);。31. 設(shè)在程序中使用如下語(yǔ)句申請(qǐng)了一個(gè)對(duì)象數(shù)組:Point * ptr = new Point2;則在需要釋放 ptr指向的動(dòng)態(tài)數(shù)組對(duì)象時(shí),所使用的語(yǔ)句是_delete ptr; 。32. 在保護(hù)派生中,基類權(quán)限為Private的成員在派生類中 不可訪問(wèn)。33. 類A有如下成員函數(shù)int A:fun(double x)return (int) x /2; int A:fun(int x)return x*2 ; 設(shè)a為類A的對(duì)象,在主函數(shù)中有int s=a. fun(6.0)+a.fun(2),則執(zhí)行該語(yǔ)句后,s的值為7_。34. 對(duì)象傳送的消息一般由3部分組成

11、:接收對(duì)象名、調(diào)用操作名和必要的參數(shù)。35. 將指向?qū)ο蟮闹羔樧鳛楹瘮?shù)參數(shù),形參是對(duì)象指針,實(shí)參是對(duì)象的地址值 。36. 在使用string類的find成員函數(shù)來(lái)檢索主串中是否含有指定的子串時(shí),若在主串中不含指定的子串,find函數(shù)的返回值是-1。37. 在C+中,聲明布爾類型變量所用的關(guān)鍵字是 bool。38. 執(zhí)行下列代碼int a=29, b=100;cout vvsetw (3) a b end程序的輸出結(jié)果是: 29100_。(2前面有個(gè)空格)39. 執(zhí)行下列代碼cout vv Hex: hex void main( ) int x=5, y=6;const int * p= & x

12、;*p=y ;coutv*pvclass fprivate : int x, y ;public: f1( )x=0; y=0; print( )coutvvxvv vvywendl; ;void mai n( )f a;a.f1(1,1);a.print(); a.f1(1,1); f1()調(diào)用時(shí)實(shí)參與形參數(shù)量不一致43. #includeviostream.hclass fprivate : int x=0, y=0;public: void f1(int a , int b)x=a ; y=b; void get( )coutvvxvv vvyvvendl; ;void mai n( )

13、f a;a.f1(1,3);a.get (); private:int x=0,y=0;數(shù)據(jù)成員聲明時(shí)不允許直接賦值44. #includeclass pointprivate: float x ;public: void f(float a)x=a;void f( )x=0;friend float max(point& a , point& b);float max(point& a , point& b)return(a.xb.x)? a.x: b.x; void mai n( )point a, b ;a.f(2.2); b.f(3.3);couta.max(a,b); couta.m

14、ax(a,b); max()不是類的成員函數(shù),不能用 a.max()方式調(diào)用45. #includetemplatevclass T class fprivate : T x, y;public: void f1(T a, T b)x=a; y=b; T max( )retum(xy)?x:y;;voidmai n( )f a;a.f1(1.5,3.8);coutva.xvva.yvva.max( )e ndl coutvva.xvva.yvva.max()vvendl; x,y 是私有類型,不能在主函數(shù)中直接使用四、完成程序題(本大題共5小題,每小題4分,共20分)46. 完成下面類中的成員

15、函數(shù)的定義。class pointprivate:int m , n ;public:point(int , int);point(point&);point:point(int a , int b)m=a;n _=b;point:point(point&t)m=t.m ;n=t.n ;47. 下面是一個(gè)輸入半徑,輸出其面積和周長(zhǎng)的C+程序,在下劃線處填上正確的語(yǔ)句。#in cludeusing n amespace std;const doublepi=3.14159;void mai n()double r ;coutr;double l=2.0*pi*r ;double s=pi*r*r

16、 ;cout n The long is: lendl;cout The area is: sendl;48. 在下劃線處填上缺少的部分。#in clude#i ncludeusing n amespace std;class complexpublic:int real ;int imag ;complex(int r=0 , int i=0)real=r;imag=i;,complex& b);complex operator+(complex&aint r=a.real+b.real ;int i=a.imag+b.imag ;returncomplex(r,i);void mai n(

17、)complex x(1, 2), y(3, 4), z;z=x+y;coutvvz.realvv + vvz.imagv i using n amespace std;class baseprivate :int m ;public:base( ) ;base(i nt a):m(a)int get( )return m;void set(i nt a)m=a;void mai n()base*ptr =new base2;ptr- set(30);ptr=ptr+1;ptr- set(50);base a2=1, 9;couta0.get( )vv, a1.get( )get( )get(

18、 )using n amespace std;void mai n()float a, b ;float cha(float,float);/函數(shù) cha 的原型聲明a=12.5;b=6.5;float c=cha(a,b);/調(diào)用函數(shù)coutvvcvve ndl;float cha(float x , float y)float w ;w=x-y;return w ;五、程序分析題(本大題共4小題,每小題5分,51. 給出下面程序的輸出結(jié)果。#include viostream . htemplate vclass Tclass SampleT n;public:Sample(T i) n=

19、i;int operator=(Sample &) ;template vclass Tcha共20分)int SamplevT:operator=(Sample & s)if(n=s.n) retur n 1 ;else return 0 ; void mai n()Samplevintsl(2), s2(3);coutvv si與s2的數(shù)據(jù)成員(sl =s2 ?相等:不相 等 )endl;Samples3(2.5), s4(2.5);coutvv s3與s4的數(shù)據(jù)成員 using n amespace std;templatevclass TT max(T m, T m2)return(m

20、1m2)?ml:m2:void mai n( )coutvvmax(1, 7)vv t vvmax(2.0, 5.0)vvendl;coutvvmax( y, b vvt vvmax( A, a )vvendl;53. 給出下面程序的輸出結(jié)果#i nclude using n amespace std;class A public:int x ;A( ) A(i nt a)x=a;int get(i nt a)return x+a;;void mai n( )A a(8);int(A:*p)(int);p=A:get;coutv(a.*p)(5)vendl;A*pi= & a;cout*P”7

21、)endl; 131554. 給出下面程序的輸出結(jié)果。in clude#in cludevstri ngusing n amespace std;class Book char*title ;char*author;int numsold ;public:Book( ) Book(const char*strl, const char*str2 , const int num) int len=strlen(strl);title=new charlen+1;strcpy(title , str1);len=strlen(str2);author=new charlen+1;strcpy(au

22、thor, str2);numsold=num ;void setbook(const char*str1 , const char*str2 , const int num)int len=strlen(str1);title=new charlen+1;strcpy(title , strl);len=strlen(str2);author=new charlen+1;strcpy(author, str2);numsold=num ;Book( ) delete title ;delete author ;void prin t(ostrea m&o utput)outputvv 書(shū)名:

23、vvtitlevvendl;outputvv 作者: vvauthorvvendl;outputvv 月 銷售量:vvnumsoldvvendl;;void mai n( )Book obj1( 數(shù)據(jù)結(jié)構(gòu),嚴(yán)蔚敏,200), obj2 ;objl.print(cout);obj2.setbook( C+語(yǔ)言程序設(shè)計(jì),李春葆,210);obj2.print(cout);月銷售量:200書(shū)名:C+程序設(shè)計(jì)作者:李春葆月銷售量:210六、程序設(shè)計(jì)題(本大題共1小題,共10分)55. 在三角形類TRI實(shí)現(xiàn)兩個(gè)函數(shù),功能是輸入三個(gè)頂點(diǎn)坐標(biāo)判 斷是否構(gòu)成三角形#i nclude#in cludeclass pointprivate : float x, y;public: point(float a , float b)x=a;y=b;point( )x=0 ; y=0; ,void set(float a , float b)x=a;y=b;float getx( )retur n x;float gety( )retur n y;;class

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論