版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第 1 章 C+ 及其開發(fā)環(huán)境概述一、問答題1結(jié)構(gòu)化程序設(shè)計(jì)主要有哪些劣勢【答案】(1)程序的開發(fā)效率低下(2)程序的可重用性差(3)程序的維護(hù)成本高(4)無法適應(yīng)信息的快速膨脹和多樣化2面向?qū)ο蟮某绦蛟O(shè)計(jì)有哪些優(yōu)點(diǎn)【答案】(1)程序的開發(fā)效率高(2)程序代碼的可重用性高(3)程序易于維護(hù)3. C+的發(fā)展經(jīng)歷了哪些階段【答案】C+語言起源于C語言。1980年初期,美國貝爾實(shí)驗(yàn)室的Bjarne Stroustrup博士及其同事在 C 語言的基礎(chǔ)上,從 Simula67 中引入面向?qū)ο蟮奶卣?,開發(fā)出一種過程性與對象性 相結(jié)合的程序設(shè)計(jì)語言,最初稱為“帶類的C”, 1 983年正式取名為 C+。后來
2、, Stroustrup 和他的同事陸續(xù)將運(yùn)算符重載、繼承、虛函數(shù)等特性引入C+, 1989年后推出 AT&T C+ 版,并經(jīng)過多次改進(jìn)和完善,發(fā)展成為現(xiàn)在的 C+。4. C+主要有哪些特點(diǎn)答案】(1) C+可以被看成C語言的一個超集,是對 C的增強(qiáng)和擴(kuò)展。因此,許多C代碼可以不經(jīng)修改即可為 C+所用。自然,也可以利用C+開發(fā)環(huán)境來開發(fā) C程序。(2) C+幾乎支持所有面向?qū)ο蟮某绦蛟O(shè)計(jì)特征,因此,利用C+不僅可以進(jìn)行傳統(tǒng)的 結(jié)構(gòu)化程序設(shè)計(jì),而且可以較好地進(jìn)行面向?qū)ο蟮某绦蜷_發(fā)。(3) c+rn好地保持了 c的簡潔、高效、靈活和接近匯編語言的特點(diǎn),因此,C+程序 的執(zhí)行效率也很高。5個C+程序
3、一般由哪幾部分構(gòu)成【答案】 預(yù)處理命令。C+提供了三種預(yù)處理命令,即宏定義命令、文件包含命令和條件編譯 命令。 全局聲明部分。此部分內(nèi)容通常會給出用戶自定義的數(shù)據(jù)類型聲明,以及程序中所 涉及變量的定義,例如類的聲明。 函數(shù)。一個程序中可包含一個或多個函數(shù),它們是執(zhí)行用戶指定操作的主要部分。6使用Visual C+ 開發(fā)C+程序時一般要經(jīng)過哪幾個步驟每個步驟的作用是什么相應(yīng) 地產(chǎn)生哪些文件【答案】( 1 )編寫程序C+是一種高級語言,所以用其編寫的程序稱為“源程序”,以.cpp做為后綴。我們可以利用Visual C+、Turbo C+等編譯軟件來編寫 C+源程序。( 2)編譯程序計(jì)算機(jī)不能識別高
4、級語言,為了將源程序翻譯成計(jì)算機(jī)可識別的二進(jìn)制指令,需將源程 元為單位,每一個源程序文件編譯成一個目標(biāo)文件。因此,如果一個工程中有多個源程序單 元,系統(tǒng)會分別將其編譯成多個目標(biāo)文件。序進(jìn)行編譯,編譯之后的文件稱作“目標(biāo)文件”,以 .obj 作為后綴。編譯時以每個源程序單另外,編譯時系統(tǒng)會自動進(jìn)行錯誤檢查,一旦檢查出有錯誤,便不會生成目標(biāo)文件,需 改正后重新編譯。(3)連接目標(biāo)文件 一個程序中可能會包含很多文件,編譯后會生成很多獨(dú)立的目標(biāo)文件,此時系統(tǒng)的“連 接程序”將這些目標(biāo)文件和庫文件以及系統(tǒng)提供的其他信息連接起來,形成二進(jìn)制可執(zhí)行文 件,以 .exe 為后綴。(4)運(yùn)行程序 運(yùn)行二進(jìn)制可執(zhí)
5、行文件,得到運(yùn)行結(jié)果。如運(yùn)行結(jié)果不正確,則需修改源文件,之后重 新編譯運(yùn)行。二、分析運(yùn)行結(jié)果1#include using namespace std;int main( )coutMy sister ;coutis a ;coutbeautiful girl!endl;return 0 ;運(yùn)行結(jié)果為: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;運(yùn)行結(jié)果為:2 3 /a+b=5第2章C+程序設(shè)計(jì)基
6、礎(chǔ)(上)、選擇題(1)在一個C+程序中,main函數(shù)的位置(A.必須在程序的開頭B必須在程序的后面C.可以在程序的任何地方D必須在其他函數(shù)中間【答案】C)。(2) 用C+語言編寫的源程序要變?yōu)槟繕?biāo)程序必須要經(jīng)過(A.解釋 B .匯編 C .編輯D.編譯【答案】 D(3) C+程序基本單位是()。A.數(shù)據(jù)B.字符C.函數(shù)D.語句【答案】 C(4) C+程序中的語句必須以()結(jié)束。A.冒號 B.分號C.空格D.花括號【答案】 B(5) 下列選項(xiàng)中,全部都是C+關(guān)鍵字的選項(xiàng)為()。A while IF staticB break char goC sizeof case externD switch
7、 float integer【答案】 C)。( 6)下列正確的八進(jìn)制整型常量表示是()。A. 0a0B. 015C. 080D. 0x10【答案】B( 7)在下列運(yùn)算符中,()優(yōu)先級最高。A. =B. *=C.+D. *【答案】D( 8)在下列運(yùn)算符中,()優(yōu)先級最低。A.!B. &C.!=D.:9)設(shè) i=1,j=2 ,則表達(dá)式 i+j 的值為(答案】 DA1B2C3D4答案】 C10)設(shè) i=1,j=2,則表達(dá)式+i+j的值為()。A. 1B. 2C3D4答案】 D11)在下列表達(dá)式選項(xiàng)中,)是正確。A +(a+) B a+ba+b D a+b答案】 C12)已知 i=0,j=1,k=2,
8、則邏輯表達(dá)式+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)設(shè) a=1,b=2,c=3,d=4,則條件表達(dá)式 aba:cdc:d的值為( )。A. 1B. 2C. 3D. 416)逗號表達(dá)式 (x=4*5,x*5),x+25 的值為()。答案】 AA. 25B. 20C. 100D. 45答案】4【答案】C:、寫出下列數(shù)
9、學(xué)表達(dá)式的C+算術(shù)表達(dá)式(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、三、用關(guān)系表達(dá)式或邏輯表達(dá)式表示下列條件(1) i整除j(2) n是小于正整數(shù)k的偶數(shù)(3) 1=x10(4) x, y其中有一個小于 z(5) y - 100, - 10,并且 y 10,100(6) 坐標(biāo)點(diǎn)(x,y )落在以(10,20 )為圓心,以35為半徑的圓內(nèi)(7) 三條邊a, b和c構(gòu)成三角形(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í)行結(jié)果(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) 輸入平面上某點(diǎn)橫坐標(biāo)x和縱坐標(biāo)y,若該點(diǎn)在由圖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假設(shè) 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í)行結(jié)果 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ī)則輸出結(jié)果。【解答】#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ù)的所有素?cái)?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ù)的應(yīng)用1選擇題(1) 下面關(guān)于C+語言說法不正確的是()。A. 具有函數(shù)式的程序結(jié)構(gòu),其程序至少由一個函數(shù)構(gòu)成,不
23、論是主函數(shù),還是其他函數(shù)B. 變量的數(shù)據(jù)類型豐富,而且使用不同的存儲類別C. 具有編譯預(yù)處理的功能,為程序的設(shè)計(jì)與修改、調(diào)試、移植帶來方便D. 既是面向結(jié)構(gòu)的程序設(shè)計(jì)語言,又是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言答案: A若只有一個函數(shù),則只能是主函數(shù),否則程序不知從何處開始執(zhí)行。( 2)所謂模塊化程序設(shè)計(jì)是指,在程序設(shè)計(jì)中把功能相對獨(dú)立、單一的模塊用一個函數(shù)實(shí)現(xiàn),再由若干個函數(shù)組成完整程序的程序設(shè)計(jì)方法。對于函數(shù),下列說法不正確的是( )。A. 函數(shù)結(jié)構(gòu)獨(dú)立、功能單一,便于編寫、調(diào)試和修改B. 可以并行開發(fā),加快軟件開發(fā)速度,縮短開發(fā)周期C. 函數(shù)的重復(fù)使用性好,提高開發(fā)效率D. 所有函數(shù)都可用于整個程序
24、,即使該程序包含了多個文件答案 :D( 3)關(guān)于函數(shù)調(diào)用,下面不正確的是()。A. 由于程序總是從主函數(shù)開始執(zhí)行,所以函數(shù)的調(diào)用總是在主函數(shù)和其他函數(shù)之間進(jìn)B. 函數(shù)的調(diào)用可以在任意函數(shù)之間進(jìn)行C. 一個函數(shù)可以自己調(diào)用自己D. 函數(shù)返回時可以不必帶回值,這時函數(shù)類型應(yīng)為void答案 :A( 4)關(guān)于函數(shù)的聲明與定義,正確的是()。A. 函數(shù)的聲明是必須的,只有這樣才能保證編譯系統(tǒng)對函數(shù)參數(shù)進(jìn)行檢測,以確保參 數(shù)傳遞正確B. 函數(shù)的聲明并非必須,即可以只給出函數(shù)定義C. 聲明函數(shù)時參數(shù)標(biāo)識符可省略,但參數(shù)的類型、個數(shù)必須相同且順序不能顛倒D. 個函數(shù)可以在另一個函數(shù)內(nèi)定義答案 :C函數(shù)的聲明并
25、非必須,可以只要函數(shù)定義而不要聲明.但要注意符合一定條件。函數(shù)不 可嵌套定義。(5)關(guān)于函數(shù)的返回值,正確的是()。A. return 語句只返回一個值,該值的類型在函數(shù)定義時已確定B. 返回值類型由返回變量類型決定C. 如果不定義函數(shù)類型,表示該函數(shù)沒有返回值D. 函數(shù)調(diào)用一定要有返回值,否則調(diào)用就沒有意義了答案 :A( 6)下列關(guān)于形參的說法,正確的是()。A. 函數(shù)的形參并非是必須的,有時可以什么都沒有B. 函數(shù)的形參可以是表達(dá)式C. 函數(shù)在定義時,形參是不占用存儲空間的,只有在被調(diào)用時系統(tǒng)才會為其分配存儲 空間,調(diào)用結(jié)束時,該空間將被釋放D. 形參的名稱、類型、數(shù)量和順序必須與實(shí)參相同
26、,否則實(shí)參不會把信息正確地傳遞給形參答案 :C( 7)關(guān)于函數(shù)的返回,不正確的是()A. 使程序的執(zhí)行重新返回到主調(diào)函數(shù),使程序繼續(xù)往下執(zhí)行B. 釋放調(diào)用函數(shù)時臨時分配的存儲單元C. 一定要返回一個值給主調(diào)函數(shù)D. 其返回值可有可無答案 :C被調(diào)用函數(shù)可以不返回任何值,僅完成某功能。二、閱讀下列程序,寫出執(zhí)行結(jié)果(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;運(yùn)行結(jié)果為:Enter two numbers.Number one:8 /Number two:2 /Answer: 4C= (F( 2)編寫函數(shù),輸入一個華氏溫度,將華氏溫度轉(zhuǎn)換為攝氏溫度輸出,公式為 32)*5/9,其中F為華氏溫度,C為攝氏溫度?!驹闯绦颉?include#includevoid main()double f,c,b;cout 請輸入華氏溫度 :f;cout 對應(yīng)的攝氏溫度為 :endl;c=f-32;b=9;c=b*c;coutsetprecisi on(4) C=ce ndl;運(yùn)行結(jié)果為:請輸入
30、華氏溫度:80 /對應(yīng)的攝氏溫度為(3) 編寫函數(shù),判斷一個數(shù)是否是質(zhì)數(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)由指針和字符串關(guān)系知:當(dāng)實(shí)參是數(shù)組,形參可以是字符串變量,也可以是 字符指針變量。(2) 循環(huán)語句結(jié)束條件是字符標(biāo)記0。(3)大寫字母的 ASCII碼比小室字母的 ASCII碼小32。(2)下列函數(shù)sort實(shí)現(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í)參得知函數(shù) sort() 有兩個形參,根據(jù)上題得 char *p,int n。( 2)有下面語句 temp=pj 可以得到 temp 是字符中指針。( 3)根據(jù)冒泡排序方法和字
32、符串比較函數(shù)得到pj,pj+1)0 。( 4)字符串指針可以通過賦值語句傳遞值,字符串變量不能夠使用賦值語句傳遞值。四、編程題( 1)編寫程序,使用指針實(shí)現(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) 將以下程序的空白處補(bǔ)充完整,程序?qū)崿F(xiàn)的功能是:查找分?jǐn)?shù)最高和最低的同學(xué), 分別輸出其姓名和成績。#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í)行結(jié)果(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;運(yùn)行結(jié)果為: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;運(yùn)行結(jié)果為:zhang:260wang:240三、編程題english( 1)編寫程序,實(shí)現(xiàn)從終端輸入學(xué)生信息,根據(jù)學(xué)號查詢并輸出相應(yīng)學(xué)生的信息。學(xué) 生信息包括:學(xué)號n0、姓名name政治分?jǐn)?shù)politic、數(shù)學(xué)分?jǐn)?shù) maths、英語分?jǐn)?shù)和專業(yè)課分?jǐn)?shù) special ?!緟⒖即a】 結(jié)構(gòu)體類型數(shù)組及指針的應(yīng)用。#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)假設(shè)某公司有員工 200 人,員工的信息包括編號、姓名、基本工資、補(bǔ)貼、獎金和應(yīng)扣款。編寫程序,實(shí)現(xiàn)對員工工資信息的管理,包括查詢和打印工資明細(xì)、應(yīng)發(fā)工資和 實(shí)發(fā)工資。參考代碼如下: 本題是在上題的基礎(chǔ)上,加了一些控制功能,由此可見程序的編寫其實(shí)是很實(shí)際簡單的 事。#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)編寫程序,實(shí)現(xiàn)對學(xué)生和教師信息的輸入、查詢、刪除和更新等操作。其中,學(xué) 生信息包括學(xué)號、姓名、性別、班級和院系,教師信息包括編號、姓名、性別、職稱、院系。參考代碼如下:該數(shù)組長度設(shè)置應(yīng)足夠大, 以便插入元素, 刪除元素只學(xué)號或代號置零, 并不真正刪除, 相應(yīng)的一些操作加瀏覽等要有條件判斷使為零的學(xué)號或代號不顯示。本題的插入操作是一次 性的,可以試著更改程序,使其需要時再插入。#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ù)有什么特點(diǎn) 答:靜態(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)構(gòu)造一
41、個日期時間類 Timedate ,實(shí)現(xiàn)對日期(年、月、日) 、時間(時、分、秒)的設(shè) 置及輸出。解:#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;運(yùn)行結(jié)果:圓半徑: 2圓周長: 圓 面積:圓半徑: 4圓周長: 圓 面積:(4)構(gòu)造一個學(xué)校在冊人員類Person ,數(shù)據(jù)成員包括身份證號 (IdPerson ),姓名(Name , 性別(Sex),生日(Birthday )和家庭住址(HomeAddress),實(shí)現(xiàn)對人員信息的錄入和顯示。 解:為指出構(gòu)造函數(shù)等的調(diào)用,加了一些提示語句。#include#includeenum Tsexmid,man,woman;class Personchar IdPerson19;.;或class 派生類名 : 訪問限定
44、符 virtual 基類類名 .;virtual 關(guān)鍵字只對緊隨其后的基類名起作用。三、編程題(1)先定義一個點(diǎn)類 Point,包含數(shù)據(jù)成員 x和y (坐標(biāo)點(diǎn))。以Point類為基類,派 生出矩形類 Rectangle 和圓類 Circle 。假設(shè)矩形水平放置,在 Rectangle 類中,繼承來的基 類中的點(diǎn)作為矩形左下方的頂點(diǎn),在派生類中增加數(shù)據(jù)成員長和寬;在Circle 類中,繼承來的基類中的點(diǎn)作為圓心,在派生類中增加數(shù)據(jù)成員半徑。要求判斷給定點(diǎn)位于矩形和圓的什么位置。解:#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)系上傳者。文件的所有權(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供熱供氣工程履約擔(dān)保格式
- 2025版?zhèn)湄浶袠I(yè)質(zhì)量認(rèn)證合同范本3篇
- 展覽館弱電系統(tǒng)改造合同模板
- 醫(yī)療服務(wù)票據(jù)管理策略與流程
- 2025年度綠色辦公用品采購及回收利用合同3篇
- 紡織服裝電力供應(yīng)協(xié)議準(zhǔn)則
- 城市濱水區(qū)改造房屋拆除工程協(xié)議
- 2025版電梯設(shè)備安裝與維護(hù)合同范本3篇
- 船只租賃合同:水上建筑維修
- 2025版商用空調(diào)定期檢查、保養(yǎng)與故障處理合同3篇
- 橋梁檢修通道施工方案
- 英文寫作課件:段落的寫作
- 軟件設(shè)計(jì)說明書通用模板
- 產(chǎn)業(yè)園運(yùn)營合作協(xié)議
- 酒店治安安全培訓(xùn)
- 16J607-建筑節(jié)能門窗
- 我的家鄉(xiāng)-東營
- 理解詞語句子的方法PPT
- 作文開頭與結(jié)尾PPT課件ppt(共42張PPT)
- 重癥醫(yī)學(xué)科運(yùn)用PDCA循環(huán)提高消毒棉簽開啟時間標(biāo)注的執(zhí)行率品管圈成果匯報(bào)
- 云南面向東南亞、南亞區(qū)域物流系統(tǒng)優(yōu)化研究的開題報(bào)告
評論
0/150
提交評論