C++面向?qū)ο蟪绦蛟O(shè)計教程課后習題答案(游洪躍)_第1頁
C++面向?qū)ο蟪绦蛟O(shè)計教程課后習題答案(游洪躍)_第2頁
C++面向?qū)ο蟪绦蛟O(shè)計教程課后習題答案(游洪躍)_第3頁
C++面向?qū)ο蟪绦蛟O(shè)計教程課后習題答案(游洪躍)_第4頁
C++面向?qū)ο蟪绦蛟O(shè)計教程課后習題答案(游洪躍)_第5頁
已閱讀5頁,還剩171頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第1 1章章 C+C+程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)習題解答習題解答 一、選擇題一、選擇題1下列語句中,錯誤的是下列語句中,錯誤的是 。A)const int buffer = 256;B)const int temp;C)const double *point;D)double * const pt = new double(5.5);解析:解析:修飾符修飾符const聲明的常量只能被讀取,該常量必須在聲聲明的常量只能被讀取,該常量必須在聲明時進行初始化,并且它的值在程序中不能改變。選項明時進行初始化,并且它的值在程序中不能改變。選項B)沒)沒有初始化,錯誤。選項有初始化,錯誤。選項C)定義了一

2、個指向)定義了一個指向const double的指的指針,其意義為指針針,其意義為指針 point指向的變量不能通過指針指向的變量不能通過指針point來改變,來改變,D)中表示指針)中表示指針pt是常量指針,已在聲明時進行了初始化。是常量指針,已在聲明時進行了初始化。答案:答案:B2關(guān)于函數(shù)重載,下列敘述中錯誤的是關(guān)于函數(shù)重載,下列敘述中錯誤的是 。A)重載函數(shù)的函數(shù)名必須相同)重載函數(shù)的函數(shù)名必須相同B)重載函數(shù)必須在參數(shù)個數(shù)或類型上有所不同)重載函數(shù)必須在參數(shù)個數(shù)或類型上有所不同C)重載函數(shù)的返回值類型必須相同)重載函數(shù)的返回值類型必須相同D)重載函數(shù)的函數(shù)體可以有所不同)重載函數(shù)的函數(shù)

3、體可以有所不同解析:解析:函數(shù)重載是用同一個函數(shù)名字在不同的參數(shù)類型或參函數(shù)重載是用同一個函數(shù)名字在不同的參數(shù)類型或參數(shù)個數(shù)上做類似的操作方作,它們的實現(xiàn)方法可以不同。所數(shù)個數(shù)上做類似的操作方作,它們的實現(xiàn)方法可以不同。所以說,重載函數(shù)的函數(shù)名必須相同,函數(shù)體可以有所不同。以說,重載函數(shù)的函數(shù)名必須相同,函數(shù)體可以有所不同。函數(shù)重載必須在參數(shù)類型或參數(shù)個數(shù)上不一樣,不能依靠返函數(shù)重載必須在參數(shù)類型或參數(shù)個數(shù)上不一樣,不能依靠返回值不一樣來區(qū)分重載函數(shù)。回值不一樣來區(qū)分重載函數(shù)。答案:答案:C3有以下程序:有以下程序:void Fun(int i, int j)cout i + j endl;/

4、 輸出輸出i+jvoid Fun(int i)cout i+ endl;/ 輸出輸出i+int main()/ 主函數(shù)主函數(shù)main()int a = 1;/ 定義變量定義變量iFun(a);/ 調(diào)用調(diào)用Fun()return 0; / 返回值返回值0, 返回操作系統(tǒng)返回操作系統(tǒng)該程序執(zhí)行后輸出的結(jié)果是該程序執(zhí)行后輸出的結(jié)果是 。A)1 B)2 C)3 D)4解析:解析:由于主函數(shù)中調(diào)用的由于主函數(shù)中調(diào)用的Fun()函數(shù)只有一個參數(shù),故執(zhí)行的是函數(shù)只有一個參數(shù),故執(zhí)行的是void Fun( int i )的版本,執(zhí)行的版本,執(zhí)行“cout i+ endl;”時,由于是后綴時,由于是后綴“+”,

5、所以先輸出所以先輸出i的值的值1,再使,再使i加加1。答案:答案:A二、編程題二、編程題 1編寫一個編寫一個C+程序,要求輸出程序,要求輸出“歡迎學習歡迎學習C+語言語言!”。參考程序參考程序:#include / 編譯預(yù)處理命令編譯預(yù)處理命令using namespace std;/ 使用命名空間使用命名空間std int main()/ 主函數(shù)主函數(shù)main() cout 歡迎學習歡迎學習C+語言語言! endl;/ 用用C+的方法輸出一行的方法輸出一行system(PAUSE);/ 調(diào)用庫函數(shù)調(diào)用庫函數(shù)system( ),輸出提示信息,輸出提示信息return 0; / 返回值返回值,

6、返回操作系統(tǒng)返回操作系統(tǒng)*2編一個程序,用一個函數(shù)實現(xiàn)求編一個程序,用一個函數(shù)實現(xiàn)求n個整型數(shù)據(jù)的最小值。函數(shù)原型如下:個整型數(shù)據(jù)的最小值。函數(shù)原型如下:int Min(int a, int n)參考程序參考程序:#include / 編譯預(yù)處理命令編譯預(yù)處理命令using namespace std;/ 使用命名空間使用命名空間std int Min(int a, int n)/ 求求n個整型數(shù)據(jù)的最小值個整型數(shù)據(jù)的最小值int m = a0, i;/ 臨時變量臨時變量for (i = 1; i n; i+)/ 依次比較求最小值依次比較求最小值if (ai m) / 如果如果ai更小更小m

7、= ai;/ ai為當前最小值為當前最小值return m;/ 返回最小值返回最小值int main()/ 主函數(shù)主函數(shù)main()int a = 1, 2, 3, 4, 5, 6, 7, 8, 9, -10, n = 10; cout 最小值為最小值為 Min(a, n) endl;/ 輸出最小值輸出最小值system(PAUSE);/ 調(diào)用庫函數(shù)調(diào)用庫函數(shù)system( ),輸出提示信息,輸出提示信息return 0; / 返回值返回值, 返回操作系統(tǒng)返回操作系統(tǒng)3求求2個數(shù)或個數(shù)或3個整數(shù)中的最大數(shù),用兩個同名函數(shù)實現(xiàn),要求編寫測試程序。個整數(shù)中的最大數(shù),用兩個同名函數(shù)實現(xiàn),要求編寫測試

8、程序。 參考程序參考程序:#include / 編譯預(yù)處理命令編譯預(yù)處理命令using namespace std;/ 使用命名空間使用命名空間std int Max(int x, int y)/ 求求x,y的最大值的最大值return x y ? x : y;/ 返回返回x,y的最大值的最大值int Max(int x, int y, int z)/ 求求x,y,z的最大值的最大值int m = x y ? x : y;/ x,y的最大值的最大值m = m z ? m : z;/ m,z的最大值的最大值return m;/ 返回返回x,y,z的最大值的最大值int main()/ 主函數(shù)主函

9、數(shù)main()cout 2,3的最大值為的最大值為 Max(2, 3) endl; cout 1,6,8的最大值為的最大值為 Max(1, 6, 8) endl;system(PAUSE);/ 調(diào)用庫函數(shù)調(diào)用庫函數(shù)system( ),輸出提示信息,輸出提示信息return 0; / 返回值返回值, 返回操作系統(tǒng)返回操作系統(tǒng)4用變量的引用作函數(shù)形參,實現(xiàn)交換兩個整型變量,要求編寫測試程序。用變量的引用作函數(shù)形參,實現(xiàn)交換兩個整型變量,要求編寫測試程序。 參考程序參考程序:#include / 編譯預(yù)處理命令編譯預(yù)處理命令using namespace std;/ 使用命名空間使用命名空間std

10、void Swap(int &x, int &y)/ 交換交換x,y的值的值int t = x; x = y; y = t;/ 循環(huán)賦值交換循環(huán)賦值交換x,y的值的值int main()/ 主函數(shù)主函數(shù)main()int x = 1, y = 6;cout 交換前交換前: x , y endl;Swap(x, y);cout 交換后交換后: x , y endl;system(PAUSE);/ 調(diào)用庫函數(shù)調(diào)用庫函數(shù)system( ),輸出系統(tǒng)提示信息,輸出系統(tǒng)提示信息return 0; / 返回值返回值, 返回操作系統(tǒng)返回操作系統(tǒng)*5編一個程序,用同一個函數(shù)名對編一個程序,用同

11、一個函數(shù)名對n個數(shù)據(jù)進行從小到大排序,數(shù)據(jù)類型可個數(shù)據(jù)進行從小到大排序,數(shù)據(jù)類型可以是整型、單精度實型、雙精度實型,用重載函數(shù)實現(xiàn)。以是整型、單精度實型、雙精度實型,用重載函數(shù)實現(xiàn)。參考程序參考程序:#include / 編譯預(yù)處理命令編譯預(yù)處理命令using namespace std;/ 使用命名空間使用命名空間std void Sort(int a, int n)/ 對對a0.an-1進行排序進行排序int tem, i, j;/ 定義變量定義變量for (i = 0; i n- 1; i+)for (j = i + 1; j aj)/ ai比比aj更大更大tem = ai; ai =

12、aj; aj = tem; *5編一個程序,用同一個函數(shù)名對編一個程序,用同一個函數(shù)名對n個數(shù)據(jù)進行從小到大排序,數(shù)據(jù)類型可個數(shù)據(jù)進行從小到大排序,數(shù)據(jù)類型可以是整型、單精度實型、雙精度實型,用重載函數(shù)實現(xiàn)。以是整型、單精度實型、雙精度實型,用重載函數(shù)實現(xiàn)。參考程序參考程序:void Sort(float a, int n)/ 對對a0.an-1進行排序進行排序float tem;/ 臨時變量臨時變量int i, j;/ 定義變量定義變量for (i = 0; i n- 1; i+)for (j = i + 1; j aj)/ ai比比aj更大更大tem = ai; ai = aj; aj =

13、 tem;*5編一個程序,用同一個函數(shù)名對編一個程序,用同一個函數(shù)名對n個數(shù)據(jù)進行從小到大排序,數(shù)據(jù)類型可個數(shù)據(jù)進行從小到大排序,數(shù)據(jù)類型可以是整型、單精度實型、雙精度實型,用重載函數(shù)實現(xiàn)。以是整型、單精度實型、雙精度實型,用重載函數(shù)實現(xiàn)。參考程序參考程序:void Sort(double a, int n)/ 對對a0.an-1進行排序進行排序double tem;/ 臨時變量臨時變量int i, j;/ 定義變量定義變量for (i = 0; i n- 1; i+)for (j = i + 1; j aj)/ ai比比aj更大更大tem = ai; ai = aj; aj = tem;*5

14、編一個程序,用同一個函數(shù)名對編一個程序,用同一個函數(shù)名對n個數(shù)據(jù)進行從小到大排序,數(shù)據(jù)類型可個數(shù)據(jù)進行從小到大排序,數(shù)據(jù)類型可以是整型、單精度實型、雙精度實型,用重載函數(shù)實現(xiàn)。以是整型、單精度實型、雙精度實型,用重載函數(shù)實現(xiàn)。參考程序參考程序:int main()/ 主函數(shù)主函數(shù)main()int a = 1, 3, 2, 5, 6, 9, 0, 6;/ 定義定義afloat b = 1.6, 3.3, 2.8, 5.6, 6.8, 9.6, 0.6, 6.8; / 定義定義bdouble c = 1.2, 3.1, 2.6, 5.8, 6.8, 9.8, 0.8, 6.2;/ 定義定義cin

15、t i, n = 8;/ 定義變量定義變量Sort(a, n);/ 對對a排序排序cout a:;/ 輸出提示輸出提示for (i = 0; i n; i+)cout ai ;/ 輸出輸出aicout endl;/ 換行換行*5編一個程序,用同一個函數(shù)名對編一個程序,用同一個函數(shù)名對n個數(shù)據(jù)進行從小到大排序,數(shù)據(jù)類型可個數(shù)據(jù)進行從小到大排序,數(shù)據(jù)類型可以是整型、單精度實型、雙精度實型,用重載函數(shù)實現(xiàn)。以是整型、單精度實型、雙精度實型,用重載函數(shù)實現(xiàn)。參考程序參考程序:Sort(b, n);/ 對對b排序排序cout b:;/ 輸出提示輸出提示for (i = 0; i n; i+)cout b

16、i ;/ 輸出輸出bicout endl;/ 換行換行Sort(c, n);/ 對對c排序排序cout c:;/ 輸出提示輸出提示for (i = 0; i n; i+)cout ci ;/ 輸出輸出cicout endl;/ 換行換行system(PAUSE);/ 調(diào)用庫函數(shù)調(diào)用庫函數(shù)system( ),輸出系統(tǒng)提示信息,輸出系統(tǒng)提示信息return 0; / 返回值返回值, 返回操作系統(tǒng)返回操作系統(tǒng)第第2 2章章 類和對象類和對象習題解答習題解答 一、選擇題一、選擇題1下列選項中,不屬于面向?qū)ο蟪绦蛟O(shè)計特征的是下列選項中,不屬于面向?qū)ο蟪绦蛟O(shè)計特征的是 。A)繼承性)繼承性B)多態(tài)性)多態(tài)

17、性C)類比性)類比性D)封裝性)封裝性解析:解析:封裝性、繼承性和多態(tài)性是面向?qū)ο笏枷氲姆庋b性、繼承性和多態(tài)性是面向?qū)ο笏枷氲?個主要特征。個主要特征。封裝性指將數(shù)據(jù)和算法捆綁成一個整體,這個整體就是對象,描封裝性指將數(shù)據(jù)和算法捆綁成一個整體,這個整體就是對象,描述對象的數(shù)據(jù)被封裝在其內(nèi)部。繼承性是指一種事物保留了另一述對象的數(shù)據(jù)被封裝在其內(nèi)部。繼承性是指一種事物保留了另一種事物的全部特征,并且具有自身的獨有特征。多態(tài)性主要指當種事物的全部特征,并且具有自身的獨有特征。多態(tài)性主要指當多個事物繼承自一種事物時,同一操作在它們之間表現(xiàn)出不同的多個事物繼承自一種事物時,同一操作在它們之間表現(xiàn)出不同的

18、行為。行為。答案:答案:C2在面向?qū)ο蠓椒ㄖ校瑢崿F(xiàn)信息隱蔽是依靠在面向?qū)ο蠓椒ㄖ?,實現(xiàn)信息隱蔽是依靠 。A)對象的繼承)對象的繼承B)對象的多態(tài))對象的多態(tài)C)對象的封裝)對象的封裝D)對象的分類)對象的分類解析:解析:在面向?qū)ο蠓椒ㄖ?,封裝性是指將數(shù)據(jù)和算法捆綁成一個在面向?qū)ο蠓椒ㄖ校庋b性是指將數(shù)據(jù)和算法捆綁成一個整體,這個整體就是對象,描述對象的數(shù)據(jù)被封裝在內(nèi)部,只可整體,這個整體就是對象,描述對象的數(shù)據(jù)被封裝在內(nèi)部,只可以通過對象提供的算法來進行操作,從而實現(xiàn)信息隱蔽。以通過對象提供的算法來進行操作,從而實現(xiàn)信息隱蔽。答案:答案:C3下列關(guān)于類和對象的敘述中,錯誤的是下列關(guān)于類和對象的

19、敘述中,錯誤的是 。A)一個類只能有一個對象)一個類只能有一個對象B)對象是類的具體實例)對象是類的具體實例C)類是某一類對象的抽象)類是某一類對象的抽象D)類和對象的關(guān)系就像數(shù)據(jù)類型和變量的關(guān)系)類和對象的關(guān)系就像數(shù)據(jù)類型和變量的關(guān)系解析:解析:在面向?qū)ο笤O(shè)計中,類是同一種對象的抽象,而不只是對在面向?qū)ο笤O(shè)計中,類是同一種對象的抽象,而不只是對一個對象的抽象,一個類具有多個對象。對象是類的具體實例。一個對象的抽象,一個類具有多個對象。對象是類的具體實例。就像數(shù)據(jù)類型和變量的關(guān)系,一種數(shù)據(jù)類型可以定義多個變量,就像數(shù)據(jù)類型和變量的關(guān)系,一種數(shù)據(jù)類型可以定義多個變量,一個變量卻只能是一種數(shù)據(jù)類型

20、。一個變量卻只能是一種數(shù)據(jù)類型。答案:答案:A4有以下類聲明:有以下類聲明:class MyClass int num; ;則則MyClass類的成員類的成員num是是 。A)公有數(shù)據(jù)成員)公有數(shù)據(jù)成員B)公有成員函數(shù))公有成員函數(shù)C)私有數(shù)據(jù)成員)私有數(shù)據(jù)成員D)私有成員函數(shù))私有成員函數(shù)解析:解析:函數(shù)聲明時,函數(shù)名后必須帶函數(shù)聲明時,函數(shù)名后必須帶“”,所以,所以num是數(shù)據(jù)是數(shù)據(jù)成員。在類中,當沒有用訪問權(quán)限標識符標識時,默認為私有權(quán)成員。在類中,當沒有用訪問權(quán)限標識符標識時,默認為私有權(quán)限。限。答案:答案:C5在下列函數(shù)原型中,可以作為類在下列函數(shù)原型中,可以作為類AA構(gòu)造函數(shù)的是構(gòu)

21、造函數(shù)的是 。A)void AA(int);B)int AA();C)AA(int) const D)AA(int);解析:解析:構(gòu)造函數(shù)用于初始綸對象的數(shù)據(jù)成員,沒有返回類型,而構(gòu)造函數(shù)用于初始綸對象的數(shù)據(jù)成員,沒有返回類型,而且由于常成員函數(shù)不能更新對象的數(shù)據(jù)成員,所以常成員函數(shù)也且由于常成員函數(shù)不能更新對象的數(shù)據(jù)成員,所以常成員函數(shù)也不可能作為構(gòu)造函數(shù)。不可能作為構(gòu)造函數(shù)。答案:答案:D6下列關(guān)于下列關(guān)于this指針的敘述中,正確的是指針的敘述中,正確的是 。A)任何與類相關(guān)的函數(shù)都有)任何與類相關(guān)的函數(shù)都有this指針指針B)類的成員函數(shù)都有)類的成員函數(shù)都有this指針指針C)類的友

22、元函數(shù)都有)類的友元函數(shù)都有this指針指針D)類的非靜態(tài)成員函數(shù)才有)類的非靜態(tài)成員函數(shù)才有this指針指針解析:解析:this指針只能在類的成員函數(shù)中使用,它指向該成員函數(shù)指針只能在類的成員函數(shù)中使用,它指向該成員函數(shù)被調(diào)用的對象。但是有兩種與類相關(guān)的函數(shù)都沒有被調(diào)用的對象。但是有兩種與類相關(guān)的函數(shù)都沒有this指針,即指針,即靜態(tài)成員函數(shù)和友元函數(shù)。靜態(tài)成員函數(shù)和友元函數(shù)。答案:答案:D7有以下程序:有以下程序:class Testprivate:static int n;/ 靜態(tài)成員靜態(tài)成員public:Test() n += 2; / 構(gòu)造函數(shù)構(gòu)造函數(shù)Test() n -= 3; /

23、 析構(gòu)函數(shù)析構(gòu)函數(shù)static int GetNum() return n; / 返回返回n; int Test:n = 1;/ 初始化初始化nint main()/ 主函數(shù)主函數(shù)main()Test *p = new Test;/ 定義指針定義指針pdelete p;/ 釋放釋放p指向的動太對象指向的動太對象cout n= Test:GetNum() endl;/ 輸出輸出nreturn 0; / 返回值返回值0, 返回操作系統(tǒng)返回操作系統(tǒng)執(zhí)行后的輸出結(jié)果是執(zhí)行后的輸出結(jié)果是 。A)n=0 B)n=1 C)n=2 D)n=3解析:解析:靜態(tài)數(shù)據(jù)成員初始化的值為靜態(tài)數(shù)據(jù)成員初始化的值為1,執(zhí)行

24、,執(zhí)行“Test *p = new Test”將調(diào)用構(gòu)將調(diào)用構(gòu)造函數(shù),執(zhí)行造函數(shù),執(zhí)行“n += 2;”,n的值變?yōu)榈闹底優(yōu)?,執(zhí)行,執(zhí)行“delete p;”時將調(diào)用析構(gòu)函時將調(diào)用析構(gòu)函數(shù),執(zhí)行數(shù),執(zhí)行“n -= 3;”,n的值減的值減3,變?yōu)?,變?yōu)?。答案:答案:A8有以下程序:有以下程序:class MyClassprivate:int n;/ 數(shù)據(jù)成員數(shù)據(jù)成員public:MyClass(int k): n(k)/ 構(gòu)造函數(shù)構(gòu)造函數(shù)int Get() return n; / 返回返回nint Get() const return n + 1; / 返回返回n+1;int main()/

25、 主函數(shù)主函數(shù)main()MyClass a(5);/ 定義對象定義對象aconst MyClass b(6);/ 定義對象定義對象bcout a.Get() b.Get() endl;/ 輸出信息輸出信息return 0; / 返回值返回值0, 返回操作系統(tǒng)返回操作系統(tǒng)運行后的輸出結(jié)果是運行后的輸出結(jié)果是 。A)55 B)57 C)75 D)77解析:解析:const是一個判斷重載的標志,是一個判斷重載的標志,a.Get調(diào)用調(diào)用“int Get() return n; ”,故得到故得到5,而常對象,而常對象b執(zhí)行執(zhí)行 b.Get”時,調(diào)用常成員函數(shù)時,調(diào)用常成員函數(shù)“int Get() co

26、nst return n + 1; ”,故得到,故得到6+1=7。答案:答案:B9由于常對象不能被更新,因此由于常對象不能被更新,因此 。A)通過常對象只能調(diào)用它的常成員函數(shù))通過常對象只能調(diào)用它的常成員函數(shù)B)通過常對象只能調(diào)用靜態(tài)成員函數(shù))通過常對象只能調(diào)用靜態(tài)成員函數(shù)C)常對象的成員都是常成員)常對象的成員都是常成員D)通過常對象可以調(diào)用任何不改變對象值的成員函數(shù))通過常對象可以調(diào)用任何不改變對象值的成員函數(shù)解析:解析:通過常對象只能調(diào)用類中的常成員函數(shù),而不能調(diào)用類中的其他成員通過常對象只能調(diào)用類中的常成員函數(shù),而不能調(diào)用類中的其他成員函數(shù)。函數(shù)。答案:答案:A10下列情況中,不會調(diào)用

27、復(fù)制構(gòu)造函數(shù)的是下列情況中,不會調(diào)用復(fù)制構(gòu)造函數(shù)的是 。A)用一個對象去初始化同一類的另一個新對象時)用一個對象去初始化同一類的另一個新對象時B)將類的一個對象賦予該類的另一個對象時)將類的一個對象賦予該類的另一個對象時C)函數(shù)的形參是類的對象,調(diào)用函數(shù)進行形參和實參結(jié)合時)函數(shù)的形參是類的對象,調(diào)用函數(shù)進行形參和實參結(jié)合時D)函數(shù)的返回值是類的對象的引用,函數(shù)執(zhí)行返回調(diào)用時)函數(shù)的返回值是類的對象的引用,函數(shù)執(zhí)行返回調(diào)用時解析:解析:只要在程序的執(zhí)行中,需要用一個對象來初始化另一個對象,都要調(diào)只要在程序的執(zhí)行中,需要用一個對象來初始化另一個對象,都要調(diào)用復(fù)制構(gòu)造函數(shù),包括用復(fù)制構(gòu)造函數(shù),包括

28、A、B、C三種情況。三種情況。答案:答案:D11以下關(guān)鍵字不能用來聲明類的訪問權(quán)限的是以下關(guān)鍵字不能用來聲明類的訪問權(quán)限的是 。A)public B)static C)protected D)private解析:解析:類的訪問權(quán)限有三種:公有、私有、保護,關(guān)鍵字分別是類的訪問權(quán)限有三種:公有、私有、保護,關(guān)鍵字分別是public,private,protected,。static用于靜態(tài)成員的聲明。用于靜態(tài)成員的聲明。答案:答案:B12有以下程序:有以下程序:class MyClasspublic:MyClass() cout A; / 無參構(gòu)造函數(shù)無參構(gòu)造函數(shù)MyClass(char c)

29、cout c; / 帶參構(gòu)造函數(shù)帶參構(gòu)造函數(shù)MyClass() cout B; / 析構(gòu)函數(shù)析構(gòu)函數(shù);int main()/ 主函數(shù)主函數(shù)main()MyClass a, *p;/ 定義變量定義變量p = new MyClass(X);/ 分配動態(tài)空間分配動態(tài)空間delete p;/ 釋放動態(tài)空間釋放動態(tài)空間cout endl;/ 換行換行return 0; / 返回值返回值0, 返回操作系統(tǒng)返回操作系統(tǒng)執(zhí)行這個程序,屏幕上將顯示輸出執(zhí)行這個程序,屏幕上將顯示輸出 。A)ABX B)ABXB C)ABXB D)AXBB解析:解析:定義對象定義對象a時,調(diào)用一次構(gòu)造函數(shù)時,調(diào)用一次構(gòu)造函數(shù)“My

30、Class() cout A; ”,但,但定義對象指針定義對象指針p時不調(diào)用構(gòu)造函數(shù);使用時不調(diào)用構(gòu)造函數(shù);使用new動態(tài)創(chuàng)建對象時,根據(jù)參數(shù)情動態(tài)創(chuàng)建對象時,根據(jù)參數(shù)情況調(diào)用況調(diào)用“MyClass(char c) cout c; ”,輸出,輸出X;執(zhí)行;執(zhí)行“delete p;”時,時,需要調(diào)用一次析構(gòu)函數(shù),輸出需要調(diào)用一次析構(gòu)函數(shù),輸出B;最后主函數(shù)結(jié)束時,對象最后主函數(shù)結(jié)束時,對象a調(diào)用一次析構(gòu)函調(diào)用一次析構(gòu)函數(shù),輸出數(shù),輸出B。答案:答案:D13有以下程序:有以下程序:class Testpublic:static int a;/ 靜態(tài)成員靜態(tài)成員void Init() a = 1;

31、/ 初始化函數(shù)初始化函數(shù)Test(int a = 6) Init(); a+;/ 構(gòu)造函數(shù)構(gòu)造函數(shù);int Test:a = 0;/ 初始化初始化aTest obj;/ 定義全局對象定義全局對象int main()/ 主函數(shù)主函數(shù)main()cout obj.a endl;/ 輸出輸出areturn 0; / 返回值返回值0, 返回操作系統(tǒng)返回操作系統(tǒng)運行時輸出的結(jié)果是運行時輸出的結(jié)果是 。A)0 B)1 C)2 D)3解析:解析:首先初始化靜態(tài)數(shù)據(jù)成員首先初始化靜態(tài)數(shù)據(jù)成員a為為0,然后在定義全局對象,然后在定義全局對象obj時調(diào)用構(gòu)造函時調(diào)用構(gòu)造函數(shù)。這時有兩個數(shù)。這時有兩個a,一個是,一

32、個是“Test(int a = 6) Init(); a+;”函數(shù)中的局部變量函數(shù)中的局部變量a,另一個是靜態(tài)數(shù)據(jù)成員另一個是靜態(tài)數(shù)據(jù)成員a,需要靠作用域來區(qū)分。在執(zhí)行,需要靠作用域來區(qū)分。在執(zhí)行Init()時,由于離開了時,由于離開了構(gòu)造函數(shù)構(gòu)造函數(shù)“Test(int a = 6) Init(); a+;”的作用域,的作用域,Init()里的里的a為靜態(tài)數(shù)據(jù)成為靜態(tài)數(shù)據(jù)成員,這時靜態(tài)數(shù)據(jù)成員員,這時靜態(tài)數(shù)據(jù)成員a賦值為賦值為1;之后回到構(gòu)造函數(shù)執(zhí)行;之后回到構(gòu)造函數(shù)執(zhí)行a+,這個,這個a為為“Test(int a = 6) Init(); a+;”中的中的a,值變?yōu)椋底優(yōu)?,但當構(gòu)造函數(shù)執(zhí)

33、行完畢后,但當構(gòu)造函數(shù)執(zhí)行完畢后,該局部變量該局部變量a隨之消失,與對象無關(guān)。隨之消失,與對象無關(guān)。obj.a調(diào)用的是靜態(tài)數(shù)據(jù)成員,結(jié)果為調(diào)用的是靜態(tài)數(shù)據(jù)成員,結(jié)果為1。答案:答案:B14有以下程序:有以下程序:class Testprivate:long x;/ 私有數(shù)據(jù)成員私有數(shù)據(jù)成員public:Test(long a): x(a) / 構(gòu)造函數(shù)構(gòu)造函數(shù)friend long Fun(Test s);/ 友元友元;long Fun(Test s)if (s.x = 1 ) return 1;/ 遞歸結(jié)束遞歸結(jié)束else return s.x * Fun(Test(s.x - 1);/ 遞

34、歸調(diào)用遞歸調(diào)用int main()/ 主函數(shù)主函數(shù)main()int sum = 0;/ 定義變量定義變量for (int i = 0; i 6; i+)sum += Fun(Test(i);/ 累加求和累加求和cout sum endl;/ 輸出輸出sumreturn 0; / 返回值返回值0, 返回操作系統(tǒng)返回操作系統(tǒng)運行后的輸出結(jié)果是運行后的輸出結(jié)果是 。A)120 B)16 C)154 D)34解析:解析:友元函數(shù)友元函數(shù)Fun()參數(shù)表中的對象在初始化時需執(zhí)行構(gòu)造函數(shù)參數(shù)表中的對象在初始化時需執(zhí)行構(gòu)造函數(shù)“Test:Test(long a)”,調(diào)用過程為:先調(diào)用構(gòu)造函數(shù),調(diào)用過程為:

35、先調(diào)用構(gòu)造函數(shù)Test(i),使,使Test中中x的值為的值為i,再通過友元函數(shù)直接訪問再通過友元函數(shù)直接訪問Test.x,執(zhí)行,執(zhí)行Fun()中的語句,可得到:中的語句,可得到:Fun(Test(0)=1,F(xiàn)un(Test(1)=1,F(xiàn)un(Test(2)=2*1,F(xiàn)un(Test3)=3*2*1=6,F(xiàn)un(Test(4)=4*3*2*1=24,F(xiàn)un(Test(5)=5*4*3*2*1=120,sum=1+1+2+6+24+120=154。答案:答案:C15有以下程序:有以下程序:class Testprivate:int a;/ 數(shù)據(jù)成員數(shù)據(jù)成員public:Test() cout 無

36、參構(gòu)造函數(shù)無參構(gòu)造函數(shù) endl; / 無參構(gòu)造函數(shù)無參構(gòu)造函數(shù)Test(int a) cout a endl; / 帶參構(gòu)造函數(shù)帶參構(gòu)造函數(shù)Test(const Test &copy): a(copy.a) / 復(fù)制構(gòu)造函數(shù)復(fù)制構(gòu)造函數(shù) cout 復(fù)制構(gòu)造函數(shù)復(fù)制構(gòu)造函數(shù) endl; Test() cout 析構(gòu)函數(shù)析構(gòu)函數(shù) endl; / 析構(gòu)函數(shù)析構(gòu)函數(shù);int main()/ 主函數(shù)主函數(shù)main()Test a(3);/ 定義對象定義對象return 0; / 返回值返回值0, 返回操作系統(tǒng)返回操作系統(tǒng)運行時的輸出結(jié)果是運行時的輸出結(jié)果是 。A)3 B)無參構(gòu)造函數(shù))無參構(gòu)造

37、函數(shù)C)復(fù)制構(gòu)造函數(shù))復(fù)制構(gòu)造函數(shù)D)3 析構(gòu)函數(shù)析構(gòu)函數(shù) 析構(gòu)函數(shù)析構(gòu)函數(shù) 析構(gòu)函數(shù)析構(gòu)函數(shù)解析:解析:創(chuàng)建對象創(chuàng)建對象a時帶有參數(shù)時帶有參數(shù)3,故調(diào)用構(gòu)造函數(shù),故調(diào)用構(gòu)造函數(shù)Test( int a),輸出,輸出3并換行;程并換行;程序結(jié)束時調(diào)用析構(gòu)函數(shù)序結(jié)束時調(diào)用析構(gòu)函數(shù)Test(),輸出,輸出“析構(gòu)函數(shù)析構(gòu)函數(shù)”并換行。并換行。答案:答案:D 16有以下程序:有以下程序:class MyClassprivate:int n;/ 數(shù)據(jù)成員數(shù)據(jù)成員public:MyClass(int m): n(m) / 構(gòu)造函數(shù)構(gòu)造函數(shù)void Print() const cout const:n= n

38、; / 常成員函數(shù)常成員函數(shù)void Print() cout n= n ; / 非常成員函數(shù)非常成員函數(shù);int main()/ 主函數(shù)主函數(shù)main()const MyClass obj1(10);/ 常對象常對象MyClass obj2(20);/ 非常對象非常對象obj1.Print();/ 輸出信息輸出信息obj2.Print();/ 輸出信息輸出信息cout endl;/ 換行換行return 0; / 返回值返回值0, 返回操作系統(tǒng)返回操作系統(tǒng)程序的輸出結(jié)果是程序的輸出結(jié)果是 。A)n=10 const:n=20B)const:n=10 const:n=20C)const:n=1

39、0 n=20D)n=10 n=20解析:解析:根據(jù)根據(jù)const修飾符選擇對應(yīng)的構(gòu)造函數(shù),修飾符選擇對應(yīng)的構(gòu)造函數(shù),objl為常對象,調(diào)用常成員函數(shù),為常對象,調(diào)用常成員函數(shù),輸出輸出“const:n=10 ”,obj2為一般對象,調(diào)用優(yōu)先調(diào)用非常成員函數(shù),輸出為一般對象,調(diào)用優(yōu)先調(diào)用非常成員函數(shù),輸出“n=20 ”。答案:答案:C二、填空題二、填空題 1在面向?qū)ο蠓椒ㄖ?,在面向?qū)ο蠓椒ㄖ校?描述的是具有相同屬性與操作的描述的是具有相同屬性與操作的一組對象。一組對象。 解析:解析:在面向?qū)ο笤O(shè)計中,一個對象是由一些屬性和操作構(gòu)成的。在面向?qū)ο笤O(shè)計中,一個對象是由一些屬性和操作構(gòu)成的。對象的屬性

40、描述了對象的內(nèi)部細節(jié)。類是具有相同屬性和操作的對象的屬性描述了對象的內(nèi)部細節(jié)。類是具有相同屬性和操作的一組對象的集合,它為屬于該類的所有對象提供統(tǒng)一的抽象描述。一組對象的集合,它為屬于該類的所有對象提供統(tǒng)一的抽象描述。答案:答案:類類 2非成員函數(shù)應(yīng)聲明為類的非成員函數(shù)應(yīng)聲明為類的 函數(shù)才能訪問這個類的函數(shù)才能訪問這個類的private成員。成員。 解析:解析:類具有數(shù)據(jù)封裝和隱藏的特性,通常只有類的成員函數(shù)才類具有數(shù)據(jù)封裝和隱藏的特性,通常只有類的成員函數(shù)才能訪問類的私有成員,外部函數(shù)只能訪問類的公有成員。但在某能訪問類的私有成員,外部函數(shù)只能訪問類的公有成員。但在某些情況下,需要在類的外部

41、訪問類的私有成員,這時必須依靠引些情況下,需要在類的外部訪問類的私有成員,這時必須依靠引入友元來實現(xiàn)。入友元來實現(xiàn)。答案:答案:友元友元 3下列程序的輸出結(jié)果為:下列程序的輸出結(jié)果為:01試將程序補充完整。試將程序補充完整。class Pointprivate:int x, y;/ 坐標坐標static int count; / 靜態(tài)數(shù)據(jù)成員靜態(tài)數(shù)據(jù)成員public:Point(int m = 0, int n = 0): x(m), y(n) count+; / 構(gòu)造函數(shù)構(gòu)造函數(shù)Point() count-; / 析構(gòu)函數(shù)析構(gòu)函數(shù)int GetX() const return x; / 返回

42、返回xint GetY() const return y; / 返回返回ystatic void ShowCount() cout count endl; / 輸出輸出count; / 靜態(tài)數(shù)據(jù)成員的初始化靜態(tài)數(shù)據(jù)成員的初始化int main()/ 主函數(shù)主函數(shù)main()Point:ShowCount();/ 輸出輸出countPoint a(6, 8);/ 定義對象定義對象Point:ShowCount();/ 輸出輸出countsystem(“PAUSE”); / 調(diào)用庫函數(shù)調(diào)用庫函數(shù)system( ),輸出提示信息,輸出提示信息return 0; / 返回值返回值0, 返回操作系統(tǒng)返回

43、操作系統(tǒng)。 解析:解析:由第一次調(diào)用由第一次調(diào)用GetCount()函數(shù)輸出函數(shù)輸出count的值為的值為0可知,應(yīng)將其初始化為可知,應(yīng)將其初始化為0,再根據(jù)靜態(tài)數(shù)據(jù)成員的初始化格式:再根據(jù)靜態(tài)數(shù)據(jù)成員的初始化格式:類型類型 類名類名:靜態(tài)成員名字靜態(tài)成員名字 = 值值; 可得橫線處填寫的語句??傻脵M線處填寫的語句。答案:答案:int Point:count = 0;4有以下類聲明:有以下類聲明:class MyClassint i;private:int j;protected:int k;public:int m, n;其中私有成員的數(shù)量是其中私有成員的數(shù)量是 。解析:解析:在用在用cla

44、ss聲明類的成員聲明中,如果沒有標識成員的訪問權(quán)限,則聲明類的成員聲明中,如果沒有標識成員的訪問權(quán)限,則默認為私有的訪問權(quán)限,故默認為私有的訪問權(quán)限,故i為私有訪問權(quán)限。為私有訪問權(quán)限。答案:答案:2 5有以下程序:有以下程序:class Integerprivate:int n;/ 數(shù)據(jù)成員數(shù)據(jù)成員public:Integer(int n = 0) = n; / 構(gòu)造函數(shù)構(gòu)造函數(shù)void Show() const cout n n 或或 Integer : n 6有以下程序:有以下程序:class Apublic:A() cout A; / 構(gòu)造函數(shù)構(gòu)造函數(shù)A() cout A; / 析構(gòu)函

45、數(shù)析構(gòu)函數(shù);int main()/ 主函數(shù)主函數(shù)main()A *p = new A;/ 定義指針定義指針delete p;/ 釋放動態(tài)空間釋放動態(tài)空間cout endl;/ 換行換行system(PAUSE);/ 調(diào)用庫函數(shù)調(diào)用庫函數(shù)system( ),輸出系統(tǒng)提示,輸出系統(tǒng)提示return 0; / 返回值返回值0, 返回操作系統(tǒng)返回操作系統(tǒng)程序的輸出結(jié)果是程序的輸出結(jié)果是 。解析:解析:創(chuàng)建動態(tài)對象時需調(diào)用創(chuàng)建動態(tài)對象時需調(diào)用A的構(gòu)造函數(shù),輸出的構(gòu)造函數(shù),輸出“A”;釋放動態(tài)對象時,;釋放動態(tài)對象時,調(diào)用調(diào)用A的析構(gòu)函數(shù),輸出的析構(gòu)函數(shù),輸出“A”。答案:答案:AA 三、編程題三、編程題

46、1定義一個滿足如下要求的定義一個滿足如下要求的Date類。類。(1)用下面的格式輸出日期:)用下面的格式輸出日期:年年-月月-日日(2)設(shè)置日期。)設(shè)置日期。并編出應(yīng)用程序,定義日期對象,設(shè)置日期,輸出該對象提供的日期。并編出應(yīng)用程序,定義日期對象,設(shè)置日期,輸出該對象提供的日期。參考程序參考程序:#include / 編譯預(yù)處理命令編譯預(yù)處理命令using namespace std;/ 使用命名空間使用命名空間std class Dateprivate:/ 數(shù)據(jù)成員數(shù)據(jù)成員int year;/ 年年int month;/ 月月int day;/ 日日1定義一個滿足如下要求的定義一個滿足如下

47、要求的Date類。類。(1)用下面的格式輸出日期:)用下面的格式輸出日期:年年-月月-日日(2)設(shè)置日期。)設(shè)置日期。并編出應(yīng)用程序,定義日期對象,設(shè)置日期,輸出該對象提供的日期。并編出應(yīng)用程序,定義日期對象,設(shè)置日期,輸出該對象提供的日期。參考程序參考程序:public:/ 公有函數(shù)公有函數(shù)Date(int y = 2010, int m = 1, int d = 1):year(y), month(m), day(d)/ 構(gòu)造函數(shù)構(gòu)造函數(shù)void Set(int y, int m, int d)/ 設(shè)置日期設(shè)置日期 year = y; month = m; day = d; void Sh

48、ow() const/ 顯示日期顯示日期 cout year - month - day endl; ;int main()/ 主函數(shù)主函數(shù)main()Date d;/ 定義對象定義對象d.Show();/ 顯示日期顯示日期d.Set(2016, 6, 18);/ 設(shè)置日期設(shè)置日期d.Show();/ 顯示日期顯示日期system(PAUSE);/ 調(diào)用庫函數(shù)調(diào)用庫函數(shù)system( ),輸出提示信息,輸出提示信息return 0; / 返回值返回值, 返回操作系統(tǒng)返回操作系統(tǒng)2定義一個時間類定義一個時間類Time,能提供和設(shè)置由時、分、秒組成的時間,并編出,能提供和設(shè)置由時、分、秒組成的時間

49、,并編出應(yīng)用程序,定義時間對象,設(shè)置時間,輸出該對象提供的時間。應(yīng)用程序,定義時間對象,設(shè)置時間,輸出該對象提供的時間。 參考程序參考程序:#include / 編譯預(yù)處理命令編譯預(yù)處理命令using namespace std;/ 使用命名空間使用命名空間std class Timeprivate:/ 數(shù)據(jù)成員數(shù)據(jù)成員int hour;/ 時時int minute;/ 分分int second;/ 秒秒public:/ 公有函數(shù)公有函數(shù)Time(int h = 0, int m = 0, int s = 0):/ 構(gòu)造函數(shù)構(gòu)造函數(shù)hour(h), minute(m), second(s)vo

50、id Set(int h, int m, int s)/ 設(shè)置日期設(shè)置日期 hour = h; minute = m; second = s; void Show() const/ 顯示日期顯示日期 cout hour : minute : second endl; ;int main()/ 主函數(shù)主函數(shù)main()Time t;/ 定義對象定義對象t.Show();/ 顯示時間顯示時間t.Set(8, 6, 18);/ 設(shè)置時間設(shè)置時間t.Show();/ 顯示時間顯示時間system(PAUSE);/ 調(diào)用庫函數(shù)調(diào)用庫函數(shù)system( ),輸出提示信息,輸出提示信息return 0; /

51、 返回值返回值, 返回操作系統(tǒng)返回操作系統(tǒng)*3編寫設(shè)計一個編寫設(shè)計一個People(人)類。該類的數(shù)據(jù)成員有姓名(人)類。該類的數(shù)據(jù)成員有姓名(name)、年齡、年齡(age)、身高、身高(height)、體重、體重(weight)和人數(shù)和人數(shù)(num),其中人數(shù)為靜態(tài)數(shù)據(jù)成員,其中人數(shù)為靜態(tài)數(shù)據(jù)成員,成員函數(shù)有構(gòu)造函數(shù)成員函數(shù)有構(gòu)造函數(shù)(People)、進食、進食(Eatting)、運動、運動(Sporting)、顯示、顯示(Show)和顯示人數(shù)和顯示人數(shù)(ShowNum)。其中構(gòu)造函數(shù)由已知參數(shù)姓名。其中構(gòu)造函數(shù)由已知參數(shù)姓名(nm)、年齡、年齡(a)、身高、身高(h)和體重和體重(w)構(gòu)

52、造對象,進食函數(shù)使體重加構(gòu)造對象,進食函數(shù)使體重加1,運動函數(shù)使身高加,運動函數(shù)使身高加1,顯示函數(shù),顯示函數(shù)用于顯示人的姓名、年齡、身高、體重,顯示人數(shù)函數(shù)為靜態(tài)成員函數(shù),用于用于顯示人的姓名、年齡、身高、體重,顯示人數(shù)函數(shù)為靜態(tài)成員函數(shù),用于顯示人數(shù)。假設(shè)年齡的單位為歲,身高的單位為厘米,體重的單位為市斤,要顯示人數(shù)。假設(shè)年齡的單位為歲,身高的單位為厘米,體重的單位為市斤,要求所有數(shù)據(jù)成員為求所有數(shù)據(jù)成員為private訪問權(quán)限,所有成員函數(shù)為訪問權(quán)限,所有成員函數(shù)為public訪問權(quán)限,在主函訪問權(quán)限,在主函數(shù)中定義若干個對象,通過對象直接訪問類的所有非靜態(tài)成員函數(shù),通過類訪數(shù)中定義若干

53、個對象,通過對象直接訪問類的所有非靜態(tài)成員函數(shù),通過類訪問靜態(tài)成員函數(shù)。問靜態(tài)成員函數(shù)。參考程序參考程序:#include / 編譯預(yù)處理命令編譯預(yù)處理命令using namespace std;/ 使用命名空間使用命名空間std class Peopleprivate:/ 數(shù)據(jù)成員數(shù)據(jù)成員char name9;/ 姓名姓名int age;/ 年齡年齡int height;/ 身高身高double weight;/ 體重體重static int num;/ 人數(shù)人數(shù)public:/ 公有函數(shù)公有函數(shù)People(char nm = 無名氏無名氏, int a = 16, int h = 168

54、, int w = 118):age(a), height(h), weight(w) strcpy(name, nm); num+; void Eatting() weight+; / 進食進食void Sporting() height+; / 運動運動void Show()const/ 顯示信息顯示信息 cout 個人信息個人信息: endl;cout 姓名姓名: name endl;cout 年齡年齡: age 歲歲 endl;cout 身高身高: height 厘米厘米 endl;cout 體重體重: weight 市斤市斤 endl endl;static void ShowNum

55、()/ 顯示人數(shù)顯示人數(shù) cout 人數(shù)人數(shù): num endl; ;int People:num = 0;/ 初始化靜態(tài)數(shù)據(jù)成員初始化靜態(tài)數(shù)據(jù)成員num int main()/ 主函數(shù)主函數(shù)main()People p1;/ 定義對象定義對象p1.Show();/ 顯示信息顯示信息People p2(李敏李敏, 18, 170, 108);/ 定義對象定義對象p2.Eatting();/ 進食進食p2.Sporting();/ 運動運動p2.Show();/ 顯示信息顯示信息People:ShowNum();/ 顯示人數(shù)顯示人數(shù)system(PAUSE);/ 調(diào)用庫函數(shù)調(diào)用庫函數(shù)system

56、( ),輸出提示信息,輸出提示信息return 0; / 返回值返回值, 返回操作系統(tǒng)返回操作系統(tǒng)*4定義一個描述員工定義一個描述員工(Employee)基本情況的類,數(shù)據(jù)成員包括編號基本情況的類,數(shù)據(jù)成員包括編號(num)、姓名姓名(name)、性別、性別(sex)、工資(、工資(wage)、人數(shù))、人數(shù)(count)、總工資、總工資(totalWage)。其中姓名定義為長度為其中姓名定義為長度為18的字符數(shù)組,性別為為長度為的字符數(shù)組,性別為為長度為3的字符數(shù)組,其它數(shù)的字符數(shù)組,其它數(shù)據(jù)成員類型為整型,總工資和人數(shù)為靜態(tài)數(shù)據(jù)成員,函數(shù)成員包括構(gòu)造函數(shù)、據(jù)成員類型為整型,總工資和人數(shù)為靜態(tài)

57、數(shù)據(jù)成員,函數(shù)成員包括構(gòu)造函數(shù)、顯示基本數(shù)據(jù)函數(shù)顯示基本數(shù)據(jù)函數(shù)(ShowBase)和顯示靜態(tài)數(shù)據(jù)函數(shù)和顯示靜態(tài)數(shù)據(jù)函數(shù)(ShowStatic),其中構(gòu)造,其中構(gòu)造函數(shù)由已知參數(shù)編號函數(shù)由已知參數(shù)編號(nu) 、姓名、姓名(nm) 、性別、性別(sx)和工資和工資(wg)構(gòu)造對象,顯示基構(gòu)造對象,顯示基本數(shù)據(jù)函數(shù)用于顯示學生的編號、姓名、性別和工資,顯示靜態(tài)數(shù)據(jù)函數(shù)為靜本數(shù)據(jù)函數(shù)用于顯示學生的編號、姓名、性別和工資,顯示靜態(tài)數(shù)據(jù)函數(shù)為靜態(tài)成員函數(shù),用于顯示人數(shù)和總工資;要求所有數(shù)據(jù)成員為態(tài)成員函數(shù),用于顯示人數(shù)和總工資;要求所有數(shù)據(jù)成員為protected訪問權(quán)訪問權(quán)限,所有成員函數(shù)為限,所有

58、成員函數(shù)為public訪問權(quán)限,在主函數(shù)中定義若干個員工對象,分別訪問權(quán)限,在主函數(shù)中定義若干個員工對象,分別顯示員工基本信息,以及顯示員工人數(shù)和總工資。顯示員工基本信息,以及顯示員工人數(shù)和總工資。 參考程序:參考程序:#include / 編譯預(yù)處理命令編譯預(yù)處理命令using namespace std;/ 使用命名空間使用命名空間std class Employeeprotected:/ 數(shù)據(jù)成員數(shù)據(jù)成員int num;/ 編號編號char name18;/ 姓名姓名char sex3;/ 姓名姓名int wage;/ 工資工資static int count;/ 人數(shù)人數(shù)static

59、int totalWage;/ 總工資總工資public:/ 公有函數(shù)公有函數(shù)Employee(int nu, char nm, char sx, int wg): num(nu), wage(wg) strcpy(name, nm); strcpy(sex, sx); count+; totalWage += wg; ; void ShowBase()/ 顯示基本數(shù)據(jù)顯示基本數(shù)據(jù) cout 個人基本信息個人基本信息: endl;cout 學號學號: num endl;cout 姓名姓名: name endl;cout 性別性別: sex endl;cout 工資工資: wage 元元 end

60、l endl;static void ShowStatic()/ 顯示靜態(tài)數(shù)據(jù)顯示靜態(tài)數(shù)據(jù) cout 人數(shù)人數(shù): count endl;cout 總工資總工資: totalWage 元元 endl;int Employee:count = 0;/ 初始化靜態(tài)數(shù)據(jù)成員初始化靜態(tài)數(shù)據(jù)成員count int Employee:totalWage = 0;/ 初始化靜態(tài)數(shù)據(jù)成員初始化靜態(tài)數(shù)據(jù)成員totalWageint main()/ 主函數(shù)主函數(shù)main()Employee e1(1008, 李杰李杰, 男男, 2680);/ 定義對象定義對象e1.ShowBase();/ 顯示基本數(shù)據(jù)顯示基本數(shù)據(jù)Employee e2(1009, 李敏李敏

溫馨提示

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

評論

0/150

提交評論