版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第 1 章 C+ 及其開發(fā)環(huán)境概述一、問答題1結構化程序設計主要有哪些劣勢【答案】(1)程序的開發(fā)效率低下(2)程序的可重用性差(3)程序的維護成本高(4)無法適應信息的快速膨脹和多樣化2面向對象的程序設計有哪些優(yōu)點【答案】(1)程序的開發(fā)效率高(2)程序代碼的可重用性高(3)程序易于維護3. C+的發(fā)展經(jīng)歷了哪些階段【答案】C+語言起源于C語言。1980年初期,美國貝爾實驗室的Bjarne Stroustrup博士及其同事在 C 語言的基礎上,從 Simula67 中引入面向對象的特征,開發(fā)出一種過程性與對象性 相結合的程序設計語言,最初稱為“帶類的C”, 1 983年正式取名為 C+。后來
2、, Stroustrup 和他的同事陸續(xù)將運算符重載、繼承、虛函數(shù)等特性引入C+, 1989年后推出 AT&T C+ 版,并經(jīng)過多次改進和完善,發(fā)展成為現(xiàn)在的 C+。4. C+主要有哪些特點答案】(1) C+可以被看成C語言的一個超集,是對 C的增強和擴展。因此,許多C代碼可以不經(jīng)修改即可為 C+所用。自然,也可以利用C+開發(fā)環(huán)境來開發(fā) C程序。(2) C+幾乎支持所有面向對象的程序設計特征,因此,利用C+不僅可以進行傳統(tǒng)的 結構化程序設計,而且可以較好地進行面向對象的程序開發(fā)。(3) c+rn好地保持了 c的簡潔、高效、靈活和接近匯編語言的特點,因此,C+程序 的執(zhí)行效率也很高。5個C+程序
3、一般由哪幾部分構成【答案】 預處理命令。C+提供了三種預處理命令,即宏定義命令、文件包含命令和條件編譯 命令。 全局聲明部分。此部分內(nèi)容通常會給出用戶自定義的數(shù)據(jù)類型聲明,以及程序中所 涉及變量的定義,例如類的聲明。 函數(shù)。一個程序中可包含一個或多個函數(shù),它們是執(zhí)行用戶指定操作的主要部分。6使用Visual C+ 開發(fā)C+程序時一般要經(jīng)過哪幾個步驟每個步驟的作用是什么相應 地產(chǎn)生哪些文件【答案】( 1 )編寫程序C+是一種高級語言,所以用其編寫的程序稱為“源程序”,以.cpp做為后綴。我們可以利用Visual C+、Turbo C+等編譯軟件來編寫 C+源程序。( 2)編譯程序計算機不能識別高
4、級語言,為了將源程序翻譯成計算機可識別的二進制指令,需將源程 元為單位,每一個源程序文件編譯成一個目標文件。因此,如果一個工程中有多個源程序單 元,系統(tǒng)會分別將其編譯成多個目標文件。序進行編譯,編譯之后的文件稱作“目標文件”,以 .obj 作為后綴。編譯時以每個源程序單另外,編譯時系統(tǒng)會自動進行錯誤檢查,一旦檢查出有錯誤,便不會生成目標文件,需 改正后重新編譯。(3)連接目標文件 一個程序中可能會包含很多文件,編譯后會生成很多獨立的目標文件,此時系統(tǒng)的“連 接程序”將這些目標文件和庫文件以及系統(tǒng)提供的其他信息連接起來,形成二進制可執(zhí)行文 件,以 .exe 為后綴。(4)運行程序 運行二進制可執(zhí)
5、行文件,得到運行結果。如運行結果不正確,則需修改源文件,之后重 新編譯運行。二、分析運行結果1#include using namespace std;int main( )coutMy sister ;coutis a ;coutbeautiful girl!endl;return 0 ;運行結果為:My sister is a beautiful girl!2.#in elude using n amespace std;int main()int a,b,c;cin ab;c=a+b;couta+b=a+be ndl;return 0;運行結果為:2 3 /a+b=5第2章C+程序設計基
6、礎(上)、選擇題(1)在一個C+程序中,main函數(shù)的位置(A.必須在程序的開頭B必須在程序的后面C.可以在程序的任何地方D必須在其他函數(shù)中間【答案】C)。(2) 用C+語言編寫的源程序要變?yōu)槟繕顺绦虮仨氁?jīng)過(A.解釋 B .匯編 C .編輯D.編譯【答案】 D(3) C+程序基本單位是()。A.數(shù)據(jù)B.字符C.函數(shù)D.語句【答案】 C(4) C+程序中的語句必須以()結束。A.冒號 B.分號C.空格D.花括號【答案】 B(5) 下列選項中,全部都是C+關鍵字的選項為()。A while IF staticB break char goC sizeof case externD switch
7、 float integer【答案】 C)。( 6)下列正確的八進制整型常量表示是()。A. 0a0B. 015C. 080D. 0x10【答案】B( 7)在下列運算符中,()優(yōu)先級最高。A. =B. *=C.+D. *【答案】D( 8)在下列運算符中,()優(yōu)先級最低。A.!B. &C.!=D.:9)設 i=1,j=2 ,則表達式 i+j 的值為(答案】 DA1B2C3D4答案】 C10)設 i=1,j=2,則表達式+i+j的值為()。A. 1B. 2C3D4答案】 D11)在下列表達式選項中,)是正確。A +(a+) B a+ba+b D a+b答案】 C12)已知 i=0,j=1,k=2,
8、則邏輯表達式+i|-j&+k的值為( )。A. 0 B. 1C2D答案】 B13)執(zhí)行下列語句后,x 的值是 (,y的值是()int x,y;x=y=1;+x|+y;A.不確定B.1,1C2,1D.2,2答案】 C14)已知x=5,則執(zhí)行語句 x+=x-=x*x;后,x 的值為()。A. 25B.40C. -40D.20答案】 C15)設 a=1,b=2,c=3,d=4,則條件表達式 aba:cdc:d的值為( )。A. 1B. 2C. 3D. 416)逗號表達式 (x=4*5,x*5),x+25 的值為()。答案】 AA. 25B. 20C. 100D. 45答案】4【答案】C:、寫出下列數(shù)
9、學表達式的C+算術表達式(1)111(2)xxx(ax+b)+c+d+e111x ya ba b10f(3)ln(1)(4)i:1 cos 48V 2(5)1 ctg(1x2)x2(6)2 2log 10(a +ab+b)【答案】(1) 1心+1心+1/(x+y)(2) x*(x*(x*(a*x+b)+c)+d)+e(3) log(1+pow(fabs(a+b)/(a b),10)(4) sqrt(1+2*cos(48*180)(5) 1/tan(1-x*x(1+x*x)或者 cos(1-x*x)/(1+x*x)/sin(1-x*x)/(1+x*x)(6) log10(a*a+a*b+b*b)
10、三、用關系表達式或邏輯表達式表示下列條件(1) i整除j(2) n是小于正整數(shù)k的偶數(shù)(3) 1=x10(4) x, y其中有一個小于 z(5) y - 100, - 10,并且 y 10,100(6) 坐標點(x,y )落在以(10,20 )為圓心,以35為半徑的圓內(nèi)(7) 三條邊a, b和c構成三角形(8)年份Year能被4整除,但不能被100整除或者能被400整除答案】1)i%j=0( 2)(nk)&(n%2=0)3)1=x&x10(4) xz|y=-100&y=10&y=100)6) sqrt(pow(x-10),2)+pow(y-20),2)c&b+ca&c+ab8) (year%4
11、=0)&(year%100!=0)|(year%400=0)四、閱讀下列程序,寫出執(zhí)行結果(1)#include using namespace std;void main()int a=1,b=2,x,y;couta+ + +bendl; couta%bb;y=x- &b;coutxendl;coutyendl;-10(2)#include using namespace std;void main()int x,y,z,f;x=y=z=1;f=-x|y-&z+;coutx=xendl;couty=yendl;coutz=zendl; coutf=fendl;【答案】x=0y=0z=2f=1
12、五、編程題( 1)輸入一個三位整數(shù),將它反向輸出?!窘獯稹?in elude using n amespace std;void mai n() int x,i,j,k;cout x;i=x/100;j=(x-i*1OO)/1O;k=x-i*100-j*10;coutkjie ndl;(2) 輸入平面上某點橫坐標x和縱坐標y,若該點在由圖2-8表示的方塊區(qū)域內(nèi),則輸出1;否則,輸出0。0圖2-8 正方形【解答】#in clude using n amespace std;void main() float x,y,b;coutxy;b=(-2=x)&(x=2)&(-2=y)&(y=2);cou
13、tb=)0 if(x=0)y=0 ; else y= 1;C if(x=0)if(x0)y=1;else y=0Dif(x=0)if(x0)y=else y=1;else y=1;答案】 C2假設 i=2 ,執(zhí)行下列語句后 i 的值為()。switch(i) case 1:i+;case 2:i-;case 3:+i;break;case 4:-i;default:i+;A 1B 2C3【答案】 B3已知 int i=0,x=0; 下面 while while(!x & i3)x+;i+;A 4B 3C2【答案】 D4已知 int i=3 ;下面 dowhile doi-;coutiendl;
14、while(i!=1);A 1B 2C3【答案】 B5下面 for 語句執(zhí)行時循環(huán)次數(shù)為for(int i=0,j=5;i=j;)coutijendl;D4語句執(zhí)行時循環(huán)次數(shù)為( )。D1語句執(zhí)行時循環(huán)次數(shù)為( )。D.無限)。i+;j-;A0B1C3D5答案】【答案】 C 6以下程序段為死循環(huán)的是()。int k=0;int i=3;for(;i;i-);A for(int x=0;x=0);C int a=5;while(a)a-;D【答案】 B二、閱讀下列程序,寫出執(zhí)行結果 1#include void main()int a,b,c,d,x;a=c=0;b=1;d=20;if(a)d=
15、d-10;else if(!b)if(!c)x=15;else x=25;coutdendl;20 2#include void main()int a=0,b=1;switch(a)case 0:switch(b)case 0:couta=a b=bendl;break;case 1:couta=a b=bendl;break;case 1:a+;b+;couta=a b=bendl;【答案】a=0 b=1a=1 b=2#include void main()3int i=1;while(i=10) if(+i%3!=1)continue; else coutiendl;【答案】47104#
16、include void main()int i=0,j=5;doi+; j-;if(i3)break;while(j0); couti=itj=jendl;i=4j=1【答案】5#include void main()int i,j;for(i=1,j=5;ij;i+)j-;cout itjendl;【答案】3 36#include void main()int i,s=0; for(i=0;i5;i+) switch(i)case 0:s+=i;break;case 1:s+=i;break;case 2:s+=i;break;default:s+=2;couts=sendl;【答案】s=
17、77#include void main()int i,j,x=0;for(i=0;i=3;i+)x+;for(j=0;j=3;j+)if(j%2)continue; x+;x+;coutx=xendl;【答案】x=16三、編程題1輸入三個整數(shù),再將這三個整數(shù)按從小到大的順序輸出?!窘獯稹?include void main()int a,b,c,t;coutabc;if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t; coutatbtcendl;2模擬剪刀、石頭和紙游戲,用s 表示剪刀, r 表示石頭, p 表示紙。游戲規(guī)則為:剪刀剪紙
18、,石頭砸剪刀,紙包石頭。兩名游戲者分別輸入s、r或P,按照游戲規(guī)則輸出結果?!窘獯稹?include void main()char first,second;coutfirst;coutsecond;switch(first)case s:switch(second)case s:coutScissor ties scissor.endl;goto end;case r:coutScissor is crushed by rock.endl;goto end;case p:coutScissor cuts paper.endl;goto end; default :coutsecond in
19、put error!endl;goto end;case r:switch(second)case s: coutRock crushes scissor.endl;goto end; case r: coutRock ties rock.endl;goto end;case p: coutRock is wrapped by paper.endl;goto end; default : coutsecond input error!endl;goto end;case p:switch(second)case s:coutPaper is cut by scissor.endl; goto
20、end; case r:coutPaper wraps the rock.endl; goto end; case p:coutPaper ties paper.endl; goto end;default :coutsecond input error!endl; goto end;default:coutFirst input error!endl;goto end;end:;3輸入一個整數(shù),輸出該整數(shù)的所有素數(shù)因子。例如,輸入120,輸出為 2、2、 2、3和 5 。【解答】#include void main()int m,i = 2;cout m;while( i=m )if( m
21、% i = 0 )cout i ;m = m / i;else i+;cout endl;4找出 100到200之間滿足用 3除余 2且用 5除余3且用 7除余 2的所有整數(shù)。【解答】#include void main()int i;for( i=100; i=200; i+ )if ( ( i % 3 = 2) & ( i % 5 = 3 ) & ( i % 7 = 2 ) )cout i endl;5如果一個整數(shù)恰好等于它的所有因子之和,則這個數(shù)稱為完數(shù)。例如,6=1+2+3,所以 6 為完數(shù)。求 1000 之內(nèi)的所有完數(shù)?!窘獯稹?include void main()int i,j,
22、s;for( i=1; i=1000; i+ )s = 0;for( j=1; ji; j+ )if ( i % j = 0 ) s = s + j; if ( i = s ) cout i endl;6在屏幕上輸出如下圖案:*【解答】#include void main()int i,j,k;for( i=1; i=5; i+ )for( k=1; k=5-i; k+ ) cout ;for( j=1; j=2*i-1; j+ ) cout *cout endl;第 4 章 函數(shù)的應用1選擇題(1) 下面關于C+語言說法不正確的是()。A. 具有函數(shù)式的程序結構,其程序至少由一個函數(shù)構成,不
23、論是主函數(shù),還是其他函數(shù)B. 變量的數(shù)據(jù)類型豐富,而且使用不同的存儲類別C. 具有編譯預處理的功能,為程序的設計與修改、調(diào)試、移植帶來方便D. 既是面向結構的程序設計語言,又是面向對象的程序設計語言答案: A若只有一個函數(shù),則只能是主函數(shù),否則程序不知從何處開始執(zhí)行。( 2)所謂模塊化程序設計是指,在程序設計中把功能相對獨立、單一的模塊用一個函數(shù)實現(xiàn),再由若干個函數(shù)組成完整程序的程序設計方法。對于函數(shù),下列說法不正確的是( )。A. 函數(shù)結構獨立、功能單一,便于編寫、調(diào)試和修改B. 可以并行開發(fā),加快軟件開發(fā)速度,縮短開發(fā)周期C. 函數(shù)的重復使用性好,提高開發(fā)效率D. 所有函數(shù)都可用于整個程序
24、,即使該程序包含了多個文件答案 :D( 3)關于函數(shù)調(diào)用,下面不正確的是()。A. 由于程序總是從主函數(shù)開始執(zhí)行,所以函數(shù)的調(diào)用總是在主函數(shù)和其他函數(shù)之間進B. 函數(shù)的調(diào)用可以在任意函數(shù)之間進行C. 一個函數(shù)可以自己調(diào)用自己D. 函數(shù)返回時可以不必帶回值,這時函數(shù)類型應為void答案 :A( 4)關于函數(shù)的聲明與定義,正確的是()。A. 函數(shù)的聲明是必須的,只有這樣才能保證編譯系統(tǒng)對函數(shù)參數(shù)進行檢測,以確保參 數(shù)傳遞正確B. 函數(shù)的聲明并非必須,即可以只給出函數(shù)定義C. 聲明函數(shù)時參數(shù)標識符可省略,但參數(shù)的類型、個數(shù)必須相同且順序不能顛倒D. 個函數(shù)可以在另一個函數(shù)內(nèi)定義答案 :C函數(shù)的聲明并
25、非必須,可以只要函數(shù)定義而不要聲明.但要注意符合一定條件。函數(shù)不 可嵌套定義。(5)關于函數(shù)的返回值,正確的是()。A. return 語句只返回一個值,該值的類型在函數(shù)定義時已確定B. 返回值類型由返回變量類型決定C. 如果不定義函數(shù)類型,表示該函數(shù)沒有返回值D. 函數(shù)調(diào)用一定要有返回值,否則調(diào)用就沒有意義了答案 :A( 6)下列關于形參的說法,正確的是()。A. 函數(shù)的形參并非是必須的,有時可以什么都沒有B. 函數(shù)的形參可以是表達式C. 函數(shù)在定義時,形參是不占用存儲空間的,只有在被調(diào)用時系統(tǒng)才會為其分配存儲 空間,調(diào)用結束時,該空間將被釋放D. 形參的名稱、類型、數(shù)量和順序必須與實參相同
26、,否則實參不會把信息正確地傳遞給形參答案 :C( 7)關于函數(shù)的返回,不正確的是()A. 使程序的執(zhí)行重新返回到主調(diào)函數(shù),使程序繼續(xù)往下執(zhí)行B. 釋放調(diào)用函數(shù)時臨時分配的存儲單元C. 一定要返回一個值給主調(diào)函數(shù)D. 其返回值可有可無答案 :C被調(diào)用函數(shù)可以不返回任何值,僅完成某功能。二、閱讀下列程序,寫出執(zhí)行結果(1)#include using namespace std;void incx();void incy();void main()incx();incy();incx();incy();incx();incy();void incx()int x=0;coutnx=+x;void
27、incy()static int y=0;coutny=+y;【答案】x=1y=1x=1y=2x=1y=3(2)#include using namespace std;int i=3;int fun1(int n) couti+nendl;return 0;int fun2(int n)static int i=2; couti+nendl;return 0;void main()int i=1;int fun1(int);int fun2(int);couti;fun1(i);fun2(i);【答案】14三、編程題( 1)編寫函數(shù),定義兩個 unsigned short int型的參數(shù),返
28、回兩個參數(shù)的商,其數(shù)據(jù)類型為 short int 。如果第二個參數(shù)為 0,輸出錯誤提示信息?!驹闯绦颉?include short int Divider(unsigned short int a, unsigned short int b)if (b = 0)return -1;elsereturn a/b;int main()unsigned short int one, two;short int answer;cout one;cout two;answer = Divider(one, two);if (answer -1)cout Answer: answer;elsecout E
29、rror, cant divide by zero!;return 0;運行結果為:Enter two numbers.Number one:8 /Number two:2 /Answer: 4C= (F( 2)編寫函數(shù),輸入一個華氏溫度,將華氏溫度轉換為攝氏溫度輸出,公式為 32)*5/9,其中F為華氏溫度,C為攝氏溫度。【源程序】#include#includevoid main()double f,c,b;cout 請輸入華氏溫度 :f;cout 對應的攝氏溫度為 :endl;c=f-32;b=9;c=b*c;coutsetprecisi on(4) C=ce ndl;運行結果為:請輸入
30、華氏溫度:80 /對應的攝氏溫度為(3) 編寫函數(shù),判斷一個數(shù)是否是質數(shù)。【源程序】#in elude #in clude 10 xint prime(i nt i); pTHIS IS A BOOK.答案:(1) char *a 或 char a80(2) ai或 ai!=0(3) ai=ai 32 或 ai-=32分析:(1)由指針和字符串關系知:當實參是數(shù)組,形參可以是字符串變量,也可以是 字符指針變量。(2) 循環(huán)語句結束條件是字符標記0。(3)大寫字母的 ASCII碼比小室字母的 ASCII碼小32。(2)下列函數(shù)sort實現(xiàn)對字符串按字典順序由小到大排序,請?zhí)羁铡?in clude
31、#in cludevoid sort( )char ;int i,j;for(i=0;i n-1;i+)for(j=0;j n-1-i;j+) if( _J temp=pj;pj+1=temp;void mai n()char *a 5=stude nt,worker,cadre,soldier, ape n;sort(a,5);for(int i=0;i5;i+) coutai0( 4)pj=pj+1分析:( 1)由實參得知函數(shù) sort() 有兩個形參,根據(jù)上題得 char *p,int n。( 2)有下面語句 temp=pj 可以得到 temp 是字符中指針。( 3)根據(jù)冒泡排序方法和字
32、符串比較函數(shù)得到pj,pj+1)0 。( 4)字符串指針可以通過賦值語句傳遞值,字符串變量不能夠使用賦值語句傳遞值。四、編程題( 1)編寫程序,使用指針實現(xiàn)兩個字符串的首尾連接(提示:將字符串str2 接到 str1的后面時, str1 后面的 0 被取消)。#include void strcat(char *str1,char *str2)int i,m=O;while(str1m!=0) m+;o(4) 若有語句enu ma,b=2,c,d=4,ek;k=a;則k的值是。0(5) 將以下程序的空白處補充完整,程序實現(xiàn)的功能是:查找分數(shù)最高和最低的同學, 分別輸出其姓名和成績。#in cl
33、ude void mai n()int max,mi n,i;static structchar n ame8;int score;stud5=趙萍,92,錢兵,72,孫洋,83,李虎,88,周金,95;max=min=0;for(i=1;i5;i+)if()max=i;else if()min=i;cout最高分,endl;cout最低分,studmax.scorestudi.scorestud min .scorestudmax. namestudmax.scorestud min . name stud min .score三、閱讀下列程序,寫出執(zhí)行結果(1)#in cludestruc
34、t treeint兀char *s;t;fun c(struct tree t)=10;=computer;return(0);void main()=1;=minicomputer;func(t); cout,endl;運行結果為:1,minicomputer(2)#includevoid main( )struct studentchar name10;float k1;float k2;float k3;a2=zhang,100,70,90,wang,70,80,90,*pa=a;coutname:k1+pa-k2+pa-k3endl;:a1.k1+a1.k2+a1
35、.k3endl;運行結果為:zhang:260wang:240三、編程題english( 1)編寫程序,實現(xiàn)從終端輸入學生信息,根據(jù)學號查詢并輸出相應學生的信息。學 生信息包括:學號n0、姓名name政治分數(shù)politic、數(shù)學分數(shù) maths、英語分數(shù)和專業(yè)課分數(shù) special 。【參考代碼】 結構體類型數(shù)組及指針的應用。#includestruct stuunsigned no;char name10;int politic;int maths;int english;int special;void input(struct stu *q,int i)coutinput student
36、 information:endl;for(int k=0;kq-no; cinq-name; cinq-politic;cinq-maths; cinq-english;cinq-special;void enquire(struct stu *q,int j,unsigned a)for(int i=0;ino=a)coutno ; coutname ; coutpolitic ; coutmaths ; coutenglish ; coutspecial ;void main()struct stu stud30,*p=stud;unsigned num; input(p,30);cou
37、tinput enquiring no:num;enquire(p,30,num);2)假設某公司有員工 200 人,員工的信息包括編號、姓名、基本工資、補貼、獎金和應扣款。編寫程序,實現(xiàn)對員工工資信息的管理,包括查詢和打印工資明細、應發(fā)工資和 實發(fā)工資。參考代碼如下: 本題是在上題的基礎上,加了一些控制功能,由此可見程序的編寫其實是很實際簡單的 事。#includestruct memberunsigned no;char name10;float basewage;float extrawage;float bonus;float decrease;void input(member *q
38、,int j)coutinput member wage information:endl;for(int i=0;ij;i+,q+)coutq-no;coutendl; coutq-name;coutendl; coutq-basewage;coutendl; coutq-extrawage;coutendl;coutq-bonus;coutendl;coutq-decrease;coutendl;void enquire(member *q,int j,unsigned a)m;enquire(p,200,m);else if(n=p)int l;coutl;print(p,200,l);
39、elsecoutWRONG OPERATOR!;( 3)編寫程序,實現(xiàn)對學生和教師信息的輸入、查詢、刪除和更新等操作。其中,學 生信息包括學號、姓名、性別、班級和院系,教師信息包括編號、姓名、性別、職稱、院系。參考代碼如下:該數(shù)組長度設置應足夠大, 以便插入元素, 刪除元素只學號或代號置零, 并不真正刪除, 相應的一些操作加瀏覽等要有條件判斷使為零的學號或代號不顯示。本題的插入操作是一次 性的,可以試著更改程序,使其需要時再插入。#include struct memberunsigned no;char name10;char sex;char dep20;union 加對象成員名。( 3)
40、類的靜態(tài)數(shù)據(jù)成員與其他數(shù)據(jù)成員的最大區(qū)別是什么 答:靜態(tài)數(shù)據(jù)成員是所有對象共享的成員,所有對象都可以訪問它。靜態(tài)數(shù)據(jù)成員不屬 于某一個對象, 它在內(nèi)存中占據(jù)一個公共的存儲空間, 所有對象都可以直接訪問該存儲空間。 而不同對象的非靜態(tài)數(shù)據(jù)成員占據(jù)不同的存儲空間,該空間是不能共享的。( 4)類的靜態(tài)成員函數(shù)有什么特點 答:靜態(tài)成員函數(shù)只能用來訪問類中靜態(tài)數(shù)據(jù)成員,而不能直接訪問類中非靜態(tài)數(shù)據(jù)成 員。與靜態(tài)數(shù)據(jù)成員類似,我們也可以利用“類名 : 靜態(tài)成員函數(shù)名 ( 參數(shù)列表 ); ”形式來 直接調(diào)用它。要在靜態(tài)成員函數(shù)中訪問非靜態(tài)數(shù)據(jù)成員,可將該類對象作為靜態(tài)成員函數(shù)的 參數(shù)。三、編程題(1)構造一
41、個日期時間類 Timedate ,實現(xiàn)對日期(年、月、日) 、時間(時、分、秒)的設 置及輸出。解:#include #include enum YRY2000,Y2001,Y2002,Y2003,Y2004,Y2005;enum MTJan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec;class Timedateprivate:YR year;MT month;int date;int hh;int mm;int ss;public:Timedate()year=Y2000;month=Jan;date=1;hh=0;mm=0;ss=0;Timed
42、ate(YR a,MT b,int c)year=a;month=b;date=c;hh=12;mm=30;ss=0;void getdate(YR &,MT &,int &);Circumference=2*r*3.;Circle:Circle(Circle & cl)r=;Area=;Circumference=;void Circle:SetR(double R)r=R;Area=r*r*3.;Circumference=2*r*3.;int main()Circle cl1(2),cl2,cl3=cl1;cout 圓半徑 :()t 圓周長 :()t 圓面積 :()endl;(4) ;c
43、out 圓半徑 :()t 圓周長 :()t 圓面積 :()endl;return 0;運行結果:圓半徑: 2圓周長: 圓 面積:圓半徑: 4圓周長: 圓 面積:(4)構造一個學校在冊人員類Person ,數(shù)據(jù)成員包括身份證號 (IdPerson ),姓名(Name , 性別(Sex),生日(Birthday )和家庭住址(HomeAddress),實現(xiàn)對人員信息的錄入和顯示。 解:為指出構造函數(shù)等的調(diào)用,加了一些提示語句。#include#includeenum Tsexmid,man,woman;class Personchar IdPerson19;.;或class 派生類名 : 訪問限定
44、符 virtual 基類類名 .;virtual 關鍵字只對緊隨其后的基類名起作用。三、編程題(1)先定義一個點類 Point,包含數(shù)據(jù)成員 x和y (坐標點)。以Point類為基類,派 生出矩形類 Rectangle 和圓類 Circle 。假設矩形水平放置,在 Rectangle 類中,繼承來的基 類中的點作為矩形左下方的頂點,在派生類中增加數(shù)據(jù)成員長和寬;在Circle 類中,繼承來的基類中的點作為圓心,在派生類中增加數(shù)據(jù)成員半徑。要求判斷給定點位于矩形和圓的什么位置。解:#include #include const double PI=;class Pointprivate: dou
45、ble x,y;public:Point()x = 0; y = 0; Point(double xv,double yv)x = xv;y = yv;Point(Point& pt) x = ; y = ; double getx()return x;double gety()return y;double Area()return 0;void Show()coutx=x y=yendl;class Circle :public Pointdouble radius;public:Circle()radius = 0;Circle(double xv,double yv,double vv):Point(xv,yv)radius = vv;Circle(Circle& cc):Point(cc)radius
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年《西廂記》讀書心得樣本(5篇)
- 課題申報參考:教育科技人才一體化理論與實踐研究
- 2025版工業(yè)換熱站設備檢修及改造合同3篇
- 2025版押金房屋買賣合同:智能家居系統(tǒng)定制版合同2篇
- 2025年度個人虛擬現(xiàn)實體驗服務合同范本2篇
- 2024運輸工程居間合同范本
- 二零二五年度倉儲物流園區(qū)租賃合同模板3篇
- 二零二五年度旅行社脫團游客應急處理與責任免除合同4篇
- 二零二五年度專業(yè)賽事車輛臨時駕駛員用工合同4篇
- 2025年度智能溫室大棚建設及維護服務合同3篇
- 醫(yī)學脂質的構成功能及分析專題課件
- 高技能人才培養(yǎng)的策略創(chuàng)新與實踐路徑
- 廣東省湛江市廉江市2023-2024學年八年級上學期期末考試數(shù)學試卷(含答案)
- 2024年湖北省知名中小學教聯(lián)體聯(lián)盟中考語文一模試卷
- 安徽省蕪湖市2023-2024學年高一上學期期末考試 生物 含解析
- 燃氣行業(yè)有限空間作業(yè)安全管理制度
- 氣胸病人的護理幻燈片
- 《地下建筑結構》第二版(朱合華)中文(2)課件
- JB T 7946.1-2017鑄造鋁合金金相
- 包裝過程質量控制
- 通用電子嘉賓禮薄
評論
0/150
提交評論