C++復習題(2015)_第1頁
C++復習題(2015)_第2頁
C++復習題(2015)_第3頁
C++復習題(2015)_第4頁
C++復習題(2015)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C+練習題一、選擇題1. C+語言是從早期的C語言逐漸發展演變而來的。與C語言相比,它在求解問題方法上進行的最大改進是( B )。 A面向過程 B面向對象 C安全性 D復用性2. C+對C語言作了很多改進,即從面向過程變成為面向對象的主要原因是 ( D )。A. 增加了一些新的運算符 B. 允許函數重載,并允許設置缺省參數C. 規定函數說明符必須用原型 D. 引進了類和對象的概念3. 對C+語言和C語言的兼容性,描述正確的是( A )。 AC+兼容C BC+部分兼容C CC+不兼容C DC兼容C+4. 在C+中,頭文件擴展名為( B )。A. .cpp B. .h C. .1ib D. .ob

2、j5. C+源程序文件擴展名為( A ) 。A. .cpp B. .h C. .1ib D. .obj6. 由C+源程序文件編譯而成的目標代碼文件的缺省擴展名為( C )。A. .cpp B. .exe C. .obj D. .lik 7. 布爾類型標識符是( D )。A.void B.short C.long D.bool8. 下列不是C+語言的基本數據類型的是( D )。A.字符類型 B.整數類型 C.邏輯類型 D.枚舉類型9. 用于標識十六進制前綴或后綴是( D )。 A. 后綴L B.后綴e C.前綴零 D.前綴0x10. 設x和y均為bool量,則x&&y為真的條件是

3、( A )。A. 它們均為真 B. 其中一個為真 C. 它們均為假 D. 其中一個為假11. 在下列成對的表達式中,運算結果類型相同的一對是( D )。 A.72和7.02.0 B.72.0和72 C.7.02和72 D.7.02.0和7.02 12. 如果a=1,b=2,c=3,d=4,則條件表達式a<b?a:c<d?c:d的值為( A )。A1         B2      C3      

4、;   D413在預編譯指令中,宏定義使用哪個指令( B )。 A#include B#define C#if D#else14. 包含自定義頭文件file.h的預處理指令是( D )。 A.#define<file.h> B.#include file.h C.#define file.h D.#include"file.h" 15. 可替換#define PI 3.1415926的語句是( B )。A.float PI 3.1415926; B.const float PI=3.1415926;C.const PI(3.1415926);

5、 D.const 3.1415926; 16. 在C+中使用流進行輸入輸出,其中專用于從鍵盤進行輸入的流是( B )。 A.cerr B.cin C.cout D.cfile17在C+中使用流進行輸入輸出,其中用于屏幕輸出的對象是( C )。 Acerr Bcin Ccout Dcfile 18. 下列給字符數組進行的初始化中,正確的是 ( A )。A. char s1="abcd"           B.char s23="xyz"C. char s3

6、='a','x','y'  D.char s423="xyz","mnp"19. 在int b3=1,3,2,4,5,6,0中,a22的值是( C )。A. 0        B. 5        C.6         D.2 20. int a=3;int *p=&a

7、;中,*p的值是( D ) 。A.變量a的地址值 B.無意義 C.變量p的地址值 D. 321. 對于int *pa5;的描述,正確的是 ( D )。A. pa是一個指向數組的指針,所指向的數組是5個int型元素B. pa是一個指向某數組中第5個元素的指針,該元素是int型變量C. pa5表示某個數組中的第5個元素的值D. pa是一個具有5個元素的指針數組,每個元素是一個int型指針22. 已知:int a,&ra=a;關于ra的描述中正確的是 ( C )。A. ra是int型變量a的地址值       B.a是int型變量r

8、a的地址值C. ra是int型變量a的引用         D. ra是int型變量a的指針23. 假定變量x定義為“int x=5;”,要使rx成為x的引用(別名),rx應定義為( D )。A. int rx=x; B. int rx=&x; C. int *rx=&x; D. int &rx=x;24. 設存在整型變量int x,則下列語句中與其它三項含義不同的是( A ) 。A.int* p=&x; B.int& p=x; C.int & p=x; D.int

9、&p=x;25. 設函數void swap(int&,int&)將交換兩形參的值,如兩整型變量int a=10;int b=15;則執行swap(a,b)后,a、b值分別為( C ) 。A.10,10 B.10,15 C.15,10 D.15,1526. 設存在函數int min(int,int)返回兩參數中較小值,若求15,26,47三者中最小值,下列表達式中錯誤的是( B ) 。A.int m=min(min(15,26),min(15,47);B.int m=min(15,26,47);C.int m=min(15,min(47,26); D.int m =min

10、(min(47,26),16);27設存在函數int max(int,int)返回兩參數中較大值,若求22,59,70三者中最大值,下列表達式不正確的是( C )。 Aint m = max(22,max(59,70); Bint m = max(max(22,59),70); Cint m = max(22,59,70); Dint m = max(59,max(22,70);28. 以下正確的函數原型語句是( C )。 A. double fun(int x,int y) B. double fun(int x;int y)C. double fun(int,int); D. double

11、 fun(int x,y);29. 在函數聲明中,下面哪項不是必要的( D )。A.函數參數的類型和參數名B.函數名C.函數的類型D.函數體30. 使用值傳遞方式將實參傳給形參,下列說法正確的是( A )。 A形參是實參的備份 B實參是形參的備份 C形參和實參是同一對象 D形參和實參無聯系31. 在每個C+程序中都必須包含有這樣一個函數,該函數的函數名為( A ) A. main B. MAIN C. name D. function32. 包含哪種語句的函數不能聲明為內聯函數( A )。A.循環 B.變量自增自減 C.if.else D.變量聲明33. 在( C)情況下適宜采用inline定

12、義內聯函數。 A.函數體含有循環語句 B.函數體含有遞歸語句C.函數代碼少、頻繁調用 D.函數代碼多、不常調用量34. 一個函數功能不太復雜,但要求被頻繁調用,選用(A )。 A.內聯函數 B.重載函數C.遞歸函數D.嵌套函數35. 在C+中,關于下列設置參數默認值的描述中,正確的是 ( C )。A不允許設置參數的默認值B設置參數默認值只能在定義函數時設置C設置參數默認值時,應該是先設置右邊的再設置左邊的D設置參數默認值時,應該全部參數都設置36. 函數默認參數在函數原型中說明,默認參數必須放在參數序列的( C )。 A.前部 B.中部 C.后部 D.兩端37. 下列哪種默認參數的聲明是不正確

13、的( C )。A. int max(int a,int b,int c,int d=0);B. int max(int a,int b,int c=0,int d=0);C. int max(int a=0,int b,int c=0,int d=0); D. int max(int a,int b=0,int c=0,int d=0);38.下列函數不能和函數void print(char)構成重載的是( C ) 。A.int print(int); B.void print(char,char);C.int print(char); D.void print(int,int);39int

14、Func(int,int);不可與下列哪個函數構成重載( B )。 Aint Func(int,int,int); Bdouble Func(int,int); Cdouble Func(double,double); Ddouble Func(int,double);40. 定義函數模板中使用的參數類型標識符需使用下列哪組符號括起來( A )。A.<> B.“” C.() D.41. 設有函數T Sum(T x,T y)return x+y;,其中T為模板類型,則下列語句中對該函數錯誤的使用是( D ) 。A.Sum(1,2); B.Sum(3.0,2.2);C.Sum(A,C)

15、; D. Sum("A","C");42. 對于結構中定義的成員,其隱含訪問權限為( C )。A. public B. protected C. private D. static 43. C+允許在結構中定義函數,這些函數稱為( D )。A.靜態函數 B.構造函數 C.析構函數 D.成員函數44對使用關鍵字new所開辟的動態存儲空間,釋放時必須使用( C )。 Afree Bcreate Cdelete Drealse45. 假定指針變量p定義為“int *p=new int30;”,要釋放p所指向的動態內存,應使用語句(D )。A. delete p

16、; B. delete *p; C. delete &p; D. delete p;46. 要使語句“p=new int1020;”能夠正常執行,p應被事先定義為( D )。A. int *p; B. int *p; C. int *p20; D. int(*p)20;47. 使用delete刪除對象數組時,描述正確的是( A )。A.數組中各元素都調用析構函數 B.數組中各元素都調用構造函數C.不調用析構函數 D.只有首元素調用析構函數48. 有關類的說法不正確的是 ( D )。A類是一種用戶自定義的數據類型B. 類中的成員函數可以存取類中的私有數據C. 在類中,如果不作特別說明,所

17、有的數據均為私有類型D. 在類中,如果不作特別說明,所有的成員函數均為公有類型49. 在下列關鍵字中,用以說明類中公有成員的是 ( A )。Apublic       Bprivate  Cprotected      Dfriend50. 下列哪個不是面向對象的關鍵要素( B )。A.抽象性 B.結構性 C.封裝性 D.多態性51. 下列可以不是類的成員函數的是 ( C )。 A.構造函數 B.析構函數C.友元函數 D.復制構造函數52. print()函數是一個類的常成員

18、函數,它無返回值,下列表示中,正確的是 ( A )。Avoid print() const       Bconst void print()Cvoid const print()       Dvoid print(const)53. 在定義類成員時,為產生封裝性,則需使用哪個關鍵字( D ) 。A.public B.publish C.protected D.private54. 如沒有使用private關鍵字定義類的數據成員,則默認為( A )。 Aprivate Bpublic

19、 Cprotected Dfriend55. 類的私有成員可在何處被訪問( A ) 。A.本類的成員函數中 B.本類及子類的成員函數中C.通過對象名在任何位置 D.不可訪問56this指針存在的目的是( B )。 A保證基類公有成員在子類中可以被訪問 B保證每個對象擁有自己的數據成員,但共享處理這些數據成員的代碼 C保證基類保護成員在子類中可以被訪問D保證基類私有成員在子類中可以被訪問57. 有關構造函數的說法不正確的是 ( D )。A.構造函數名字和類的名字一樣    B.構造函數在定義對象時自動執行C.構造函數無任何函數類型    

20、;    D.構造函數有且只有一個58. 為對象進行初始化的是 ( C )。A析構函數      B數據成員 C構造函數     D靜態成員函數59. 類的構造函數在以下什么情況下會被自動調用( B ) 。A.定義成員函數時 B.定義對象時 C.定義數據成員時 D.定義友元函數時60. 構造函數不具備的特征的是 ( D ) 。 A.構造函數的函數名與類名相同 B.構造函數可以重載C.構造函數可以設置默認參數 D.構造函數必須指定類型說明61. 一個類擁有多個構造函數,則這些構造函數間為( A )

21、。A.重載關系 B.重復關系 C.拷貝關系 D.無關系62如果沒有為一個類定義任何構造函數的情況下,下列描述正確的是( A )。 A編譯器總是自動創建一個不帶參數的構造函數 B這個類沒有構造函數 C這個類不需要構造函數 D該類不能通過編譯 63. 對于拷貝構造函數point:point(point& p),下列說明正確的是( C )。A.該函數只能訪問P的私有成員 B.該函數不能訪問P的公有成員C.該函數可以訪問P的私有和公有成員 D.該函數不能訪問P的成員64. 通常,拷貝構造函數的參數是 ( C ) 。 A.某個對象名B.某個對象的成員名 C.某個對象的引用名 D.某個對象的指針名

22、65. 假定AB為一個類,則執行“AB a(4) , b3 , * p2 ;”語句時,自動調用該類構造函數的次數為( B ) 。A. 3 B. 4 C. 6 D. 966. 下列關于析構函數描述正確的是( D ) 。A.可以重載 B.函數體中必須有delete語句C.返回類型必須是void類型 D.不能指定返回類型 67. 類的析構函數是在( C )調用的。 A.類創建時 B.創建對象時C.刪除對象時D.不自動調用68. 類的析構函數的作用是 ( D )。A.一般成員函數 B.類的初始化 C.對象的初始化 D.撤消對象時做清理工作69. 下述靜態數據成員的特性中,錯誤的是 ( D )。A說明靜

23、態數據成員時前邊要加修飾符staticB靜態數據成員要在類體外進行初始化C引用靜態數據成員時,要在靜態數據成員前加類名和作用域運算符D靜態數據成員不是所有對象所共有的70. 設類Test中存在成員static int x,則下列哪種初始化方式是正確的( C )。A.Test:int x=25; B.int x=25;C.int Test:x=25; D.int Test x=25;71.下列關于友元的描述錯誤的是( A )。A.成員函數不可作友元 B.類可以作友元C.普通函數可以作友元 D.靜態函數可以作友元72對于友元描述正確的是( B )。 A友元是本類的成員函數 B友元不是本類的成員函數

24、 C友元不是函數 D友元不能訪問本類私有成員73. 如果類A被說明成類B的友元,則( D )。 A. 類A的成員即類B的成員 B. 類B的成員即類A的成員C. 類A的成員函數不得訪問類B的成員 D. 類B不一定是類A的友元74. 下列運算符中,在C+中不能重載運算符是 ( A )。A?:       B+       C-         D=75. 假定要對類AB定義“+”號操作符重載

25、成員函數,實現兩個AB類對象的加法,并返回相加結果,則該成員函數的聲明語句為( B )。A. AB operator+(AB&a,AB&b) B. AB operator+(AB& a)C. operator+(AB a) D. AB & operator+( )76. 繼承的機制是 ( C ) 。A.信息隱藏 B.數據封裝C.定義新類 D.數據抽象77. 關于私有繼承,下列說法錯誤的是( B )。 A.基類的公有成員和保護成員被繼承后作為派生類的私有成員,派生類的其他成員可以直接訪問他們。 B.基類的公有成員和保護成員被繼承后作為派生類的私有成員,派生類的其他

26、成員不能直接訪問他們。 C.派生類的成員和派生類的對象都無法訪問基類的私有成員。 D.派生類的對象無法訪問基類的所有成員。78. 在公有繼承中,基類中的保護成員作為派生類的( C )。A. 公有成員B. 私有成員C. 保護成員D. 私有成員函數79. C+類體系中,不能被派生類繼承的有( A )。 A.構造函數 B. 虛函數 C. 靜態成員函數 D. 賦值操作函數80. C+類體系中,能被派生類繼承的是( B )。A. 構造函數B. 虛函數 C. 析構函數D. 友元函數81. 基類中的( C )不允許外界訪問,但允許派生類的成員訪問,這樣既有一定的隱藏能力,又提供了開放的接口。A. 公有成員B

27、. 私有成員 C. 保護成員D. 私有成員函數82設類A將其它類對象作為成員,則建立A類對象時,下列描述正確的是( B )。 AA類構造函數先執行 B成員構造函數先執行 C兩者并行執行 D不能確定83在哪種派生方式中,派生類可以訪問基類中的protected成員( B )。 Apublic和private Bpublic和protected Cprotected和private D僅protected84. 派生類的對象可以訪問以下那種情況繼承的基類成員( D )。A.私有繼承的私有成員 B.公有繼承的私有成員C.私有繼承的保護成員 D.公有繼承的公有成員85. 在繼承中,派生類擁有的基類個數

28、為( D )。A.0個 B.1個 C.多個 D.至少1個86. 基類中的protected成員,通過public派生,其在派生類中的可見性為( C )。A.不可訪問 B.private C.protected D.public87下面關于C+中類的繼承與派生的說法錯誤的是: ( C )。A基類的protected成員在公有派生類的成員函數中可以直接使用B基類的protected成員在私有派生類的成員函數中可以直接使用C私有派生時,基類的所有成員訪問權限在派生類中保持不變D繼承可以分為單一繼承與多重繼承88. 下列關于繼承的描述中,正確的是( D )。A.繼承不是類之間的一種關系  &

29、#160;    B.C+語言僅支持單一繼承C.繼承會增加程序的冗余性         D.繼承是面向對象方法中一個很重要的特性89. 下列關于派生類構造函數的描述中,錯誤的是 ( A )。 A派生類構造函數應包含直接基類和所有間接基類的構造函數B派生類構造函數僅包含直接基類構造函數和其他(如子對象)類構造函數等C派生類構造函數通常帶有成員初始化表D派生類默認構造函數中隱含包括直接基類的默認構造函數90. 如果一個類至少有一個純虛函數,那么就稱該類為( A )。 A抽象類  

30、   B虛基類  C派生類     D以上都不對二、填空題 1. 在C+中,聲明布爾類型變量所用的關鍵字是 ( BOOL ) 。2. 執行下列代碼 int b=100; cout<<"Hex:"<<hex<<b; 程序的輸出結果是( Hex:64 )。3. 執行下列代碼cout <<Hex:<< hex << 255;程序的輸出結果為 ( Hex:ff ) 。4. 執行“cout <<char('A'+2)

31、<<endl;”語句后得到的輸出結果為( C )。5. C+語言中可以實現輸出一個換行符并刷新流功能的操控符是( endl )。 6. cout實際上是C+系統定義的對象名,稱為( 輸出流對象 )。7. 若使用標準輸出流把整型變量a的值輸出到屏幕上,實現此操作的C+語句是( cout<<a; ) 。8. C+將數據從一個對象流向另一個對象的流動抽象為“流”,從流中獲取數據的操作稱為( 提取 ) 操作。9. 使用cin和cout進行輸入輸出操作的程序必須包含頭文件( iostream或iostream.h ),其指令格式為( #include<iostream>

32、; ) 。10. 若要使用C+標準類庫,需要指定相應的命名空間,所用的語句是( using namespace std; )。10. C+的注釋行以( / )開頭。11. 一般編譯系統給出的出錯信息分為兩種:一種是( 錯誤或error );一種是( 警告或warning )。12. 轉義字符t在內存中占( 1 )個字節。13. 將一個字符常量存放到內存單元時,實際上并不是把該字符本身放到內存單元中去,而是將該字符相應的( ASCII )代碼放到存儲單元中。14. 變量必須先( 定義 ),后( 使用 )。15. 在定義變量時,如果加上關鍵字( const ),則變量的值在程序運行期間不能改變,這

33、種變量稱為( 常 )變量。16. 數學式子0<x<5,在C+中表示為( x>0&&x<5 )。17. 循環結構中,要提前結束本次循環的語句是( continue )。18. 如果被調用的函數的定義出現在主調函數之后,需要對被調用的函數進行( 聲明 )。19. 定義內聯函數所用的關鍵字是( inline ),定義友元所用的關鍵字為( friend )。20. 重載函數的參數( 個數 )、參數( 類型 )或參數( 參數順序 )三者中必須至少有一種不同。21. 字符串的結束標志是( 0 )。22. C+提供了一種用于處理字符串的數據類型,叫( 字符串類型或st

34、ring類型 )。23. C+語言的函數參數傳遞方式有傳值和( 傳地址 )兩種方式。24. C+語言中的,每條復合語句以( )作為結束符。25. 變量分為全局和局部兩種,( 局部 )變量沒有賦初值時,其值是不確定的。26. C+程序必須有且只有一個主函數,其函數名為( main )。27. 若有函數定義為: int add(int ml=0,int m2=2,int m3=4) return ml+m2+m3; 在主函數中有int s=add(1)+add(0,1)+add(0,1,2);則執行此語句后s的值為( 15 )。28. 在源程序中有宏定義:#define PI 3.14,則若不想使

35、該宏定義影響到程序的其它地方,可以使用 刪除該宏定義。(#undef PI)29. 設在程序中使用如下語句建立了一個對象數組:Point * ptr = new Point2;則在需要釋放ptr指向的動態數組對象時,所使用的語句是( deleteptr; ) 。30. 聲明一個名為a的整型引用變量所使用的語句是( int &a ; )。31. C+支持面向對象程序設計的四個要素是:封裝性、( 抽象 )、繼承和派生和( 多態性 )。32. 在用class定義一個類時,數據成員和成員函數的默認訪問權限是 ( private ) 。33類A有如下成員函數int A:fun(doub

36、le x)return (int) x2;int A:fun(int x)return x*2;設a為類A的對象,在主函數中有int s=a.fun(6.0)+a.fun(2),則執行該語句后,s的值為( 7 ) 。34. 使用( 對象引用 )作為函數參數,實參對象和形參對象代表同一對象,改變形參對象的值就是改變實參對象的值。35. C+類的構造函數名與( 類 )同名,且沒有返回值。36. C+規定,當一個成員函數被調用時,系統自動向它傳遞一個隱含的參數,該參數是一個指向調用該函數的對象的指針,該指針被稱為( this )指針。37. 聲明一個常成員函數Fun,其返回類型為char,第一個參數

37、類型為int,第二個參數類型為double,函數Fun的聲明原型是( char Fun(int ,double) const ; )。38. 當一個成員函數被調用時,該成員函數的( this指針 )指向調用它的對象。39. 在C+中,可以在定義對象時加關鍵字const,指定對象為( 常 )對象。40. const成員函數可以訪問常對象中的數據成員,但不能 ( 修改 ) 數據成員的值 。41. 一個const對象只能訪問( const )成員函數。42. 假定AB為一個類,則執行“AB a10;”語句時,系統自動調用該類的構造函數的次數為( 10 )。43. 類和其它數據類型不同的是,組成這種類

38、型的不僅可以有數據,還可以有對數據進行操作的( 成員函數 )。44. 對于類Point而言,其析構函數的定義原型為( Point() )。45. 調用構造函數和析構函數的順序是:先構造的( 后 )析構,后構造的( 先 )析構。46. 拷貝構造函數使用( 引用 )作為參數初始化創建中的對象。47運算符 只能用 ( 成員 ) 函數來重載,不能用友元函數來重載。 48. C+中用于動態創建對象,并返回該對象的指針的關鍵字是( new )。49. 重載賦值操作符時,運算符重載函數應聲明為( 成員 )函數。50. 重載的運算符仍保留原有的優先級、( 結合性 )和語法結構。51. C+重載“=”運算符的函

39、數名是( operator= ) 。52. 從一個或多個以前定義的類產生新類的過程稱為( 派生 )。53類的繼承是指子類繼承基類的( 數據成員 ) 和成員函數。54. 派生類的構造函數的一般形式中,通常應包含( 基類 )構造函數和( 派生類 )構造函數。55. 在公有繼承的情況下,基類的( 公用 )成員和( 保護 )成員在派生類中的訪問權限不變。65. 派生類對基類繼承方式有三種( 公用的 )、( 保護的 )、( 私有的 )。57. 派生類繼承的基類成員的初始化,需要由派生類的構造函數調用基類的( 構造函數 )來完成。58在保護派生中,基類權限為private的成員在派生類中 ( 不可訪問 )

40、 。59. 在C+類中,有一種不能定義對象的類,這樣的類只能被繼承,稱之為 ( 抽象類 ) ,定義該類至少具有一個 ( 純虛 )函數 。60. 用( class virtual )聲明的基類稱為虛基類。61. 用( virtual )聲明的函數稱為虛函數。62定義虛函數所用的關鍵字是( virtual ) 。 63. 帶有純虛函數的類稱為抽象類,它只能作為( 基類 )來使用。64不同對象可以調用相同名稱的函數,但可導致完全不同的行為的現象稱為( 多態性 ) 。65. C+語言支持兩種多態性,分別是( 靜態多態性 )和( 動態多態性 ) 。66. 靜態關聯所支持的多態性稱為( 編譯時 )的多態性

41、。67. 動態關聯要滿足兩個條件,它們是( 用指針或引用調用的成員函數 )、( 成員函數為虛函數) 。68. 動態關聯是程序運行到需要的語句處才動態確定的,這稱為( 運行時 )多態性。69. 用來標識變量、符號常量、函數、數組、類型等實體名字的有效字符序列稱為( 標識符 )。70任何一個對象都應當具有兩個要素:即( 屬性 )和( 行為 )。71可以對一個對象進行( 封裝 )處理,把它的一部分屬性和功能對外界屏蔽,也就是說從外界是看不到的、甚至是不可知的。72類是對象的( 抽象 ),而對象則是類的( 具體化 )。73一個對象所占有的存儲空間大小只取決于該對象中( 數據成員 )所占的空間。74C+

42、專門設立了一個名為( this )的指針,用來指向不同的對象。75訪問對象中的成員可以有3種方法:通過對象名和成員運算符訪問、通過指向對象的指針訪問、通過對象的( 引用 )訪問。76通過成員函數對數據成員進行操作稱為類的功能的( 實現 )。77類中被操作的數據是私有的,類的功能的實現細節對用戶是隱蔽的,這種實現稱為(私有實現)。78類的( 公用接口 )和私有實現的分離形成了信息隱蔽。79運算符重載的方法是定義一個重載運算符的( 函數 )。80一個派生類只從一個基類派生,這稱為( 單 )繼承。 三、 寫出以下程序運行結果 1. #include "iostream" usin

43、g namespace std;class test private:int num;float f1; public:test();int getint()return num;float getfloat()return f1;test();test:test()cout<<"Initalizing default."<<endl;num=0;f1=0.0;test:test()cout<<"Destructor is active."<<endl;void main()test array2;cout

44、<<array1.getint()<<" "<<array1.getfloat()<<endl;答:Initalizing default.Initalizing default.0 0Destructor is active.Destructor is active.Press any key to continue2.#include <iostream>#include <string.h>using namespace std;class Personpublic: Person(char* p

45、N); Person(Person& p); Person();protected: char* pName;Person:Person(char* pN) cout <<"Constructing " <<pN <<endl; pName=new charstrlen(pN)+1; if(pName!=0) strcpy(pName, pN);Person:Person(Person & p) cout <<"Copying " <<p.pName <<"

46、 into its own blockn" pName=new charstrlen(p.pName)+1; if(pName!=0) strcpy(pName, p. pName);Person:Person() cout <<"Destructing " <<pName <<endl; pName0='0' delete pName;void main() Person p1("Randy"); Person p2=p1; /即Person p2(p1);答:Constructing Ra

47、ndyCopying Randy into its own blockDestructing RandyDestructing RandyPress any key to continue3. #include<iostream.h> int a=5; void main() int b=a+20; int a=10; cout<<a<<' '<<b<<endl; int a=0,b=0; for(int i=1; i<6; i+) a+=i; b+=a; cout<<a<<' &

48、#39;<<b<<endl; cout<<a<<' '<<b<<endl; 答:10 2515 3510 25Press any key to continue4.#include<iostream.h>class Basepublic: virtual void fn() cout <<"In Base classn" ;class SubClass :public Basepublic: virtual void fn() cout <<"

49、;In SubClassn" ;void test(Base& b) b.fn(); void main() Base bc; SubClass sc; cout <<"Calling test(bc)n" test(bc); cout <<"Calling test(sc)n" test(sc);答:Calling test(bc)In Base classCalling test(sc)In SubClassPress any key to continue5.#include<iostream>

50、 using namespace std; void main() int num=300; int &ref=num; cout<<ref; ref=ref-100; cout<<" "<<num; num=num-50; cout<<" "<<ref<<endl;答: 300 200 150Press any key to continue6. #include < iostream.h >class Classpublic:static int var;Cl

51、ass()var+; ;int Class:var = 0;void main()cout <<"Class:var ="<< Class:var << endl;Class cl;cout <<"cl. var="<<cl. var <<endl;Class c2, c3 ;cout <<"c2. var =" << c2. var <<endl;答:Class:var =0cl. var=1c2. var =3Press a

52、ny key to continue7. #include <iostream.h >class Apublic:A();void Show();A();private:static int c;int A:c=0;A:A() cout << "constructor." << endl; c+=10;void A:Show()cout<<"c=" <<c<<endl; A:A()cout <<"destructor. "<< endl;v

53、oid main() A a,b;a.Show();b.Show();答:constructor.constructor.c=20c=20destructor.destructor.Press any key to continue一、另外,熟悉以下教材內容:1、例題第1章:1.4包含類(Student)的C+程序(寫程序運行結果)第4章:4.9(max函數的重載)(寫程序運行結果) 4.11(max函數帶默認參數) (寫程序運行結果)4.12(靜態局部變量)(寫程序運行結果)第5章:5.11(寫程序運行結果)第6章:6.18 交換兩變量的值,引用作形參 (寫程序運行結果)第8章:8.3 Ti

54、me類(編程題)第9章:9.3構造函數重載(無參和有參)(寫程序運行結果)9.4(默認參數的構造函數) (寫程序運行結果) 第10章:10.2 (編程題) 10.3 (編程題)10.5(寫程序運算結果) 10.7 (編程題)10.8(編程題) 10.10(編程題)第11章 11.5 (寫程序運算結果) 11.6 (寫程序運算結果)11.7(寫程序運算結果) 11.9(寫程序運算結果)第12章 12.2 display()為非虛函數和虛函數的情況 (寫程序運行結果) 12.4 虛函數和抽象基類的應用(寫程序運行結果)2、課后習題第1章:5 6 7 10 (寫程序運行結果)第6章:11 (10個字符串排序,用string數組方法做)。(寫程序運行結果)第8章:6 求長方體體積。(編程題)第9章: 6(寫程序運行結果)8 對象引用作形參(編程題, 寫程序運行結果)第10章:2(編程題) 3(編程題) 第11章 7(寫程序運算結果) 8(寫程序運算結果)第12章 4虛函數和抽象基類的應用(編程題) 5 虛函數和抽象基類的應用(編程題)二、布置的任務1設計一個三角形類,類名Triangle,數據成員:三條邊a、b、c,數據類型為doub

溫馨提示

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

評論

0/150

提交評論