C課后習(xí)題答案_第1頁(yè)
C課后習(xí)題答案_第2頁(yè)
C課后習(xí)題答案_第3頁(yè)
C課后習(xí)題答案_第4頁(yè)
C課后習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩98頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第1章 C+及其開發(fā)環(huán)境概述一、問答題1結(jié)構(gòu)化程序設(shè)計(jì)主要有哪些劣勢(shì)?【答案】(1)程序的開發(fā)效率低下(2)程序的可重用性差(3)程序的維護(hù)成本高(4)無(wú)法適應(yīng)信息的快速膨脹和多樣化2面向?qū)ο蟮某绦蛟O(shè)計(jì)有哪些優(yōu)點(diǎn)?【答案】(1)程序的開發(fā)效率高(2)程序代碼的可重用性高(3)程序易于維護(hù)3C+的發(fā)展經(jīng)歷了哪些階段?【答案】C+語(yǔ)言起源于C語(yǔ)言。1980年初期,美國(guó)貝爾實(shí)驗(yàn)室的Bjarne Stroustrup博士及其同事在C語(yǔ)言的基礎(chǔ)上,從Simula67中引入面向?qū)ο蟮奶卣鳎_發(fā)出一種過程性與對(duì)象性相結(jié)合的程序設(shè)計(jì)語(yǔ)言,最初稱為“帶類的C”,1983年正式取名為C+。后來(lái),Stroustru

2、p和他的同事陸續(xù)將運(yùn)算符重載、繼承、虛函數(shù)等特性引入C+,1989年后推出AT&T C+ 2.0版,并經(jīng)過多次改進(jìn)和完善,發(fā)展成為現(xiàn)在的C+。4C+主要有哪些特點(diǎn)?【答案】(1)C+可以被看成C語(yǔ)言的一個(gè)超集,是對(duì)C的增強(qiáng)和擴(kuò)展。因此,許多C代碼可以不經(jīng)修改即可為C+所用。自然,也可以利用C+開發(fā)環(huán)境來(lái)開發(fā)C程序。(2)C+幾乎支持所有面向?qū)ο蟮某绦蛟O(shè)計(jì)特征,因此,利用C+不僅可以進(jìn)行傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì),而且可以較好地進(jìn)行面向?qū)ο蟮某绦蜷_發(fā)。(3)C+很好地保持了C的簡(jiǎn)潔、高效、靈活和接近匯編語(yǔ)言的特點(diǎn),因此,C+程序的執(zhí)行效率也很高。5一個(gè)C+程序一般由哪幾部分構(gòu)成?【答案】 預(yù)處

3、理命令。C+提供了三種預(yù)處理命令,即宏定義命令、文件包含命令和條件編譯命令。 全局聲明部分。此部分內(nèi)容通常會(huì)給出用戶自定義的數(shù)據(jù)類型聲明,以及程序中所涉及變量的定義,例如類的聲明。 函數(shù)。一個(gè)程序中可包含一個(gè)或多個(gè)函數(shù),它們是執(zhí)行用戶指定操作的主要部分。6使用Visual C+ 開發(fā)C+程序時(shí)一般要經(jīng)過哪幾個(gè)步驟?每個(gè)步驟的作用是什么?相應(yīng)地產(chǎn)生哪些文件?【答案】(1)編寫程序C+是一種高級(jí)語(yǔ)言,所以用其編寫的程序稱為“源程序”,以.cpp做為后綴。我們可以利用Visual C+、Turbo C+等編譯軟件來(lái)編寫C+源程序。(2)編譯程序計(jì)算機(jī)不能識(shí)別高級(jí)語(yǔ)言,為了將源程序翻譯成計(jì)算機(jī)可識(shí)別的

4、二進(jìn)制指令,需將源程序進(jìn)行編譯,編譯之后的文件稱作“目標(biāo)文件”,以.obj作為后綴。編譯時(shí)以每個(gè)源程序單元為單位,每一個(gè)源程序文件編譯成一個(gè)目標(biāo)文件。因此,如果一個(gè)工程中有多個(gè)源程序單元,系統(tǒng)會(huì)分別將其編譯成多個(gè)目標(biāo)文件。另外,編譯時(shí)系統(tǒng)會(huì)自動(dòng)進(jìn)行錯(cuò)誤檢查,一旦檢查出有錯(cuò)誤,便不會(huì)生成目標(biāo)文件,需改正后重新編譯。(3)連接目標(biāo)文件一個(gè)程序中可能會(huì)包含很多文件,編譯后會(huì)生成很多獨(dú)立的目標(biāo)文件,此時(shí)系統(tǒng)的“連接程序”將這些目標(biāo)文件和庫(kù)文件以及系統(tǒng)提供的其他信息連接起來(lái),形成二進(jìn)制可執(zhí)行文件,以.exe為后綴。(4)運(yùn)行程序運(yùn)行二進(jìn)制可執(zhí)行文件,得到運(yùn)行結(jié)果。如運(yùn)行結(jié)果不正確,則需修改源文件,之后重

5、新編譯運(yùn)行。二、分析運(yùn)行結(jié)果1#include <iostream>using namespace std;int main( )cout<<"My "<<"sister "cout<<"is "<<"a "cout<<"beautiful girl!"<<endl;return 0 ;運(yùn)行結(jié)果為:My sister is a beautiful girl!2#include <iostream>us

6、ing namespace std;int main( )int a,b,c;cin>>a>>b;c=a+b;cout<<"a+b="<<a+b<<endl;return 0;運(yùn)行結(jié)果為:2 3a+b=5第2章 C+程序設(shè)計(jì)基礎(chǔ)(上)一、選擇題(1)在一個(gè)C+程序中,main函數(shù)的位置( )。A必須在程序的開頭 B必須在程序的后面C可以在程序的任何地方 D必須在其他函數(shù)中間【答案】C(2)用C+語(yǔ)言編寫的源程序要變?yōu)槟繕?biāo)程序必須要經(jīng)過( )。A解釋 B匯編 C編輯 D編譯【答案】D(3)C+程序基本單位是( )。A

7、數(shù)據(jù) B字符 C函數(shù) D語(yǔ)句【答案】C(4)C+程序中的語(yǔ)句必須以( )結(jié)束。A冒號(hào) B分號(hào) C空格 D花括號(hào)【答案】B(5)下列選項(xiàng)中,全部都是C+關(guān)鍵字的選項(xiàng)為( )。Awhile IF static Bbreak char go Csizeof case extern Dswitch float integer【答案】C(6)下列正確的八進(jìn)制整型常量表示是( )。A0a0 B015 C080 D 0x10【答案】B(7)在下列運(yùn)算符中,( )優(yōu)先級(jí)最高。A<= B*= C+ D*【答案】D(8)在下列運(yùn)算符中,( )優(yōu)先級(jí)最低。A! B&& C!= D?:【答案】D

8、(9)設(shè)i=1,j=2,則表達(dá)式i+j的值為( )。A1 B2 C3 D4【答案】C(10)設(shè)i=1,j=2,則表達(dá)式+i+j的值為( )。A1 B2 C3 D4【答案】D(11)在下列表達(dá)式選項(xiàng)中,( )是正確。A+(a+) Ba+b Ca+b Da+b【答案】C(12)已知i=0,j=1,k=2,則邏輯表達(dá)式+i|-j&&+k的值為( )。A0B1 C2 D3【答案】B(13)執(zhí)行下列語(yǔ)句后,x的值是( ),y的值是( )。int x,y;x=y=1;+x|+y;A不確定B1,1 C2,1 D2,2【答案】C(14)已知x=5,則執(zhí)行語(yǔ)句x+=x-=x*x;后,x的值為(

9、)。A25B40C-40D20【答案】C(15)設(shè)a=1,b=2,c=3,d=4,則條件表達(dá)式a<b?a:c<d?c:d的值為( )。A1B2C3D4【答案】A(16)逗號(hào)表達(dá)式(x=4*5,x*5),x+25的值為( )。 A25B20C100D45【答案】C二、寫出下列數(shù)學(xué)表達(dá)式的C+算術(shù)表達(dá)式(1) (2)xxx(ax+b)+c+d+e(3) (4)(5) (6)log10(a2+ab+b2) 【答案】(1)1/(1+1/(1+1/(x+y)(2)x*(x*(x*(a*x+b)+c)+d)+e(3)log(1+pow(fabs(a+b)/(ab),10)(4)sqrt(1+3

10、.14159/2*cos(48*3.14159/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)三、用關(guān)系表達(dá)式或邏輯表達(dá)式表示下列條件(1)i整除j(2)n是小于正整數(shù)k的偶數(shù)(3)1<=x<10(4)x,y其中有一個(gè)小于z(5)y100,10,并且y10,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)

11、(n<k)&&(n%2=0)(3)1<=x&&x<10 (4)x<z|y<z(5)!(y>=-100&&y<=-10)&&!(y>=10&&y<=100)(6)sqrt(pow(x-10),2)+pow(y-20),2)<35(7)a+b>c&&b+c>a&&c+a>b(8)(year%4=0)&&(year%100!=0)|(year%400=0)四、閱讀下列程序,寫出執(zhí)行結(jié)果(1)#in

12、clude <iostream>using namespace std;void main()int a=1,b=2,x,y;cout<<a+ + +b<<endl;cout<<a%b<<endl;x=!a>b;y=x- &&b;cout<<x<<endl;cout<<y<<endl;【答案】4 2 -1 0 (2)#include <iostream>using namespace std;void main()int x,y,z,f;x=y=z=1;

13、f=-x|y-&&z+;cout<<"x="<<x<<endl;cout<<"y="<<y<<endl;cout<<"z="<<z<<endl;cout<<"f="<<f<<endl;【答案】x=0y=0z=2f=1五、編程題(1)輸入一個(gè)三位整數(shù),將它反向輸出?!窘獯稹?include <iostream>using namespace std

14、;void main() int x,i,j,k; cout<<"please input x:" cin>>x; i=x/100; j=(x-i*100)/10; k=x-i*100-j*10; cout<<k<<j<<i<<endl;(2)輸入平面上某點(diǎn)橫坐標(biāo)x和縱坐標(biāo)y,若該點(diǎn)在由圖2-8表示的方塊區(qū)域內(nèi),則輸出1;否則,輸出0。圖2-8 正方形【解答】#include <iostream>using namespace std;void main() float x,y,b; cou

15、t<<"please input x,y:" cin>>x>>y; b=(-2<=x)&&(x<=2)&&(-2<=y)&&(y<=2); cout<<b<<endl;第3章 C+程序設(shè)計(jì)基礎(chǔ)(下)1設(shè)有函數(shù)關(guān)系為,下面選項(xiàng)中能正確表示上述關(guān)系的語(yǔ)句為( )。Ay=1; By=1;if(x>=)0 if(x!=0)if(x=0)y=0; if(x>0)y=1;else y=1; else y=0Cif(x<=0) Dy=1;i

16、f(x<0)y=1; if(x<=0)else y=0; if(x<0)y=1;else y=1; else y=1;【答案】C2假設(shè)i=2,執(zhí)行下列語(yǔ)句后i的值為( )。switch(i) case 1:i+;case 2:i-;case 3:+i;break;case 4:-i;default:i+;A1B2C3D4【答案】B3已知int i=0,x=0;下面while語(yǔ)句執(zhí)行時(shí)循環(huán)次數(shù)為( )。while(!x && i<3)x+;i+;A4B3C2D1【答案】D4已知int i=3;下面dowhile語(yǔ)句執(zhí)行時(shí)循環(huán)次數(shù)為( )。doi-;cout

17、<<i<<endl;while(i!=1);A1B2C3D無(wú)限【答案】B5下面for語(yǔ)句執(zhí)行時(shí)循環(huán)次數(shù)為( )。for(int i=0,j=5;i<=j;)cout<<i<<j<<endl;i+;j-;A0B1C3D5【答案】C6以下程序段為死循環(huán)的是( )。Afor(int x=0;x<3;)x+; Bint k=0; do+k;while(k>=0);Cint a=5;while(a)a-; Dint i=3;for(;i;i-);【答案】B二、閱讀下列程序,寫出執(zhí)行結(jié)果1#include <iostrea

18、m.h>void main()int a,b,c,d,x;a=c=0;b=1;d=20;if(a)d=d-10;else if(!b)if(!c)x=15;else x=25;cout<<d<<endl;【答案】202#include <iostream.h>void main()int a=0,b=1;switch(a)case 0:switch(b)case 0:cout<<"a="<<a<<" b="<<b<<endl;break;case 1:c

19、out<<"a="<<a<<" b="<<b<<endl;break;case 1:a+;b+;cout<<"a="<<a<<" b="<<b<<endl;【答案】a=0 b=1a=1 b=23#include <iostream.h>void main()int i=1;while(i<=10)if(+i%3!=1)continue;else cout<<i<

20、<endl;【答案】47104#include <iostream.h>void main()int i=0,j=5;doi+; j-;if(i>3)break;while(j>0);cout<<"i="<<i<<'t'<<"j="<<j<<endl;【答案】i=4j=15#include <iostream.h>void main()int i,j;for(i=1,j=5;i<j;i+)j-;cout <<

21、i<<'t'<<j<<endl;【答案】336#include <iostream.h>void main()int i,s=0;for(i=0;i<5;i+)switch(i)case 0:s+=i;break;case 1:s+=i;break;case 2:s+=i;break;default:s+=2;cout<<"s="<<s<<endl;【答案】s=77#include <iostream.h>void main()int i,j,x=0;for

22、(i=0;i<=3;i+)x+;for(j=0;j<=3;j+)if(j%2)continue;x+;x+;cout<<"x="<<x<<endl;【答案】x=16三、編程題1輸入三個(gè)整數(shù),再將這三個(gè)整數(shù)按從小到大的順序輸出?!窘獯稹?include <iostream.h>void main()int a,b,c,t; cout<<"a,b,c=" cin>>a>>b>>c; if(a>b)t=a;a=b;b=t; if(a>c)t=

23、a;a=c;c=t; if(b>c)t=b;b=c;c=t; cout<<a<<'t'<<b<<'t'<<c<<endl;2模擬剪刀、石頭和紙游戲,用s表示剪刀,r表示石頭,p表示紙。游戲規(guī)則為:剪刀剪紙,石頭砸剪刀,紙包石頭。兩名游戲者分別輸入s、r或p,按照游戲規(guī)則輸出結(jié)果?!窘獯稹?include <iostream.h>void main()char first,second; cout<<"First input(s,r or p):&quo

24、t; cin>>first; cout<<"Second input(s,r or p):" cin>>second; switch(first) case 's': switch(second)case 's':cout<<"Scissor ties scissor."<<endl;goto end; case 'r':cout<<"Scissor is crushed by rock."<<endl;

25、goto end; case 'p':cout<<"Scissor cuts paper."<<endl;goto end; default :cout<<"second input error!"<<endl;goto end; case 'r': switch(second)case 's': cout<<"Rock crushes scissor."<<endl;goto end; case 'r

26、9;: cout<<"Rock ties rock."<<endl;goto end; case 'p': cout<<"Rock is wrapped by paper."<<endl;goto end; default : cout<<"second input error!"<<endl;goto end; case 'p': switch(second) case 's':cout<<"

27、Paper is cut by scissor."<<endl; goto end; case 'r':cout<<"Paper wraps the rock."<<endl; goto end; case 'p':cout<<"Paper ties paper."<<endl; goto end; default :cout<<"second input error!"<<endl; goto end; de

28、fault:cout<<"First input error!"<<endl;goto end; end:;3輸入一個(gè)整數(shù),輸出該整數(shù)的所有素?cái)?shù)因子。例如,輸入120,輸出為2、2、2、3和5?!窘獯稹?include <iostream.h>void main()int m,i = 2;cout << "please input m:"cin >> m;while( i<=m )if( m % i = 0 )cout << i << " "m

29、= m / i;else i+;cout <<endl;4找出100到200之間滿足用3除余2且用5除余3且用7除余2的所有整數(shù)。【解答】#include <iostream.h>void main()int i;for( i=100; i<=200; i+ )if ( ( i % 3 = 2) && ( i % 5 = 3 ) && ( i % 7 = 2 ) )cout << i << endl;5如果一個(gè)整數(shù)恰好等于它的所有因子之和,則這個(gè)數(shù)稱為完數(shù)。例如,6=1+2+3,所以6為完數(shù)。求1000之內(nèi)的

30、所有完數(shù)?!窘獯稹?include <iostream.h>void main()int i,j,s;for( i=1; i<=1000; i+ )s = 0;for( j=1; j<i; j+ )if ( i % j = 0 ) s = s + j;if ( i = s ) cout << i << endl;6在屏幕上輸出如下圖案:* * * * * * * * * * * * * * * * * * * * *【解答】#include <iostream.h>void main()int i,j,k;for( i=1; i<

31、;=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+語(yǔ)言說(shuō)法不正確的是( )。A具有函數(shù)式的程序結(jié)構(gòu),其程序至少由一個(gè)函數(shù)構(gòu)成,不論是主函數(shù),還是其他函數(shù)B變量的數(shù)據(jù)類型豐富,而且使用不同的存儲(chǔ)類別C具有編譯預(yù)處理的功能,為程序的設(shè)計(jì)與修改、調(diào)試、移植帶來(lái)方便D既是面向結(jié)構(gòu)的程序設(shè)計(jì)語(yǔ)言,又是面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言答案:A若只有一個(gè)函

32、數(shù),則只能是主函數(shù),否則程序不知從何處開始執(zhí)行。(2)所謂模塊化程序設(shè)計(jì)是指,在程序設(shè)計(jì)中把功能相對(duì)獨(dú)立、單一的模塊用一個(gè)函數(shù)實(shí)現(xiàn),再由若干個(gè)函數(shù)組成完整程序的程序設(shè)計(jì)方法。對(duì)于函數(shù),下列說(shuō)法不正確的是( )。A函數(shù)結(jié)構(gòu)獨(dú)立、功能單一,便于編寫、調(diào)試和修改B可以并行開發(fā),加快軟件開發(fā)速度,縮短開發(fā)周期C函數(shù)的重復(fù)使用性好,提高開發(fā)效率D所有函數(shù)都可用于整個(gè)程序,即使該程序包含了多個(gè)文件答案: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一個(gè)函數(shù)可以自己調(diào)用自己D函數(shù)返回時(shí)可以不必帶回值

33、,這時(shí)函數(shù)類型應(yīng)為void答案:A(4)關(guān)于函數(shù)的聲明與定義,正確的是( )。A函數(shù)的聲明是必須的,只有這樣才能保證編譯系統(tǒng)對(duì)函數(shù)參數(shù)進(jìn)行檢測(cè),以確保參數(shù)傳遞正確B函數(shù)的聲明并非必須,即可以只給出函數(shù)定義C聲明函數(shù)時(shí)參數(shù)標(biāo)識(shí)符可省略,但參數(shù)的類型、個(gè)數(shù)必須相同且順序不能顛倒D一個(gè)函數(shù)可以在另一個(gè)函數(shù)內(nèi)定義答案:C函數(shù)的聲明并非必須,可以只要函數(shù)定義而不要聲明但要注意符合一定條件。函數(shù)不可嵌套定義。(5)關(guān)于函數(shù)的返回值,正確的是( )。Areturn語(yǔ)句只返回一個(gè)值,該值的類型在函數(shù)定義時(shí)已確定B返回值類型由返回變量類型決定C如果不定義函數(shù)類型,表示該函數(shù)沒有返回值D函數(shù)調(diào)用一定要有返回值,否

34、則調(diào)用就沒有意義了答案:A(6)下列關(guān)于形參的說(shuō)法,正確的是( )。A函數(shù)的形參并非是必須的,有時(shí)可以什么都沒有B函數(shù)的形參可以是表達(dá)式C函數(shù)在定義時(shí),形參是不占用存儲(chǔ)空間的,只有在被調(diào)用時(shí)系統(tǒng)才會(huì)為其分配存儲(chǔ)空間,調(diào)用結(jié)束時(shí),該空間將被釋放D形參的名稱、類型、數(shù)量和順序必須與實(shí)參相同,否則實(shí)參不會(huì)把信息正確地傳遞給形參答案:C(7)關(guān)于函數(shù)的返回,不正確的是( )A使程序的執(zhí)行重新返回到主調(diào)函數(shù),使程序繼續(xù)往下執(zhí)行B釋放調(diào)用函數(shù)時(shí)臨時(shí)分配的存儲(chǔ)單元C一定要返回一個(gè)值給主調(diào)函數(shù)D其返回值可有可無(wú)答案:C被調(diào)用函數(shù)可以不返回任何值,僅完成某功能。二、閱讀下列程序,寫出執(zhí)行結(jié)果(1)#includ

35、e <iostream>using namespace std;void incx();void incy();void main()incx();incy();incx();incy();incx();incy();void incx()int x=0;cout<<"nx="<<+x;void incy()static int y=0;cout<<"ny="<<+y;【答案】x=1y=1x=1y=2x=1y=3(2)#include <iostream>using namespac

36、e std;int i=3;int fun1(int n)cout<<i+n<<endl;return 0;int fun2(int n)static int i=2;cout<<i+n<<endl;return 0;void main()int i=1;int fun1(int);int fun2(int);cout<<i;fun1(i);fun2(i);【答案】143三、編程題(1)編寫函數(shù),定義兩個(gè)unsigned short int型的參數(shù),返回兩個(gè)參數(shù)的商,其數(shù)據(jù)類型為short int。如果第二個(gè)參數(shù)為0,輸出錯(cuò)誤提示信息

37、?!驹闯绦颉?include <iostream.h>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 << "Enter two numbers.n Number one: "cin >> one;cout << "Number two: "cin

38、 >> two;answer = Divider(one, two);if (answer > -1)cout << "Answer: " << answer;elsecout << "Error, can't divide by zero!"return 0;運(yùn)行結(jié)果為:Enter two numbers.Number one:8Number two:2Answer: 4(2)編寫函數(shù),輸入一個(gè)華氏溫度,將華氏溫度轉(zhuǎn)換為攝氏溫度輸出,公式為C(F32)*5/9,其中F為華氏溫度,C為攝氏溫度

39、?!驹闯绦颉?include<iostream.h>#include<iomanip.h>void main() double f,c,b; cout<<"請(qǐng)輸入華氏溫度:"<<endl; cin>>f; cout<<"對(duì)應(yīng)的攝氏溫度為:"<<endl; c=f-32; b=5.00/9; c=b*c; cout<<setprecision(4)<<"C="<<c<<endl;運(yùn)行結(jié)果為:請(qǐng)輸入華氏溫度:

40、80對(duì)應(yīng)的攝氏溫度為:26.67(3)編寫函數(shù),判斷一個(gè)數(shù)是否是質(zhì)數(shù)。【源程序】#include <iostream.h>#include <math.h>int prime(int i); /判斷一個(gè)數(shù)是否是質(zhì)數(shù)的函數(shù)void main()int i;cout << "請(qǐng)輸入一個(gè)整數(shù):"cin >> i;if (prime(i)cout << i << "是質(zhì)數(shù)。" << endl;elsecout << i << "不是質(zhì)數(shù)。&quo

41、t; << endl;int prime(int i)int j,k,flag;flag = 1;k = sqrt(i);for (j = 2; j <= k; j+)if(i%j = 0)flag = 0;break;if (flag)return 1;elsereturn 0;運(yùn)行結(jié)果為:請(qǐng)輸入一個(gè)整數(shù):11511151是質(zhì)數(shù)。(4)編寫函數(shù),求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù)?!驹闯绦颉?include <iostream.h>#include <math.h>int fn1(int i,int j); /求最大公約數(shù)的函數(shù)void main()

42、int i,j,x,y;cout << "請(qǐng)輸入一個(gè)整數(shù):"cin >> i ;cout << "請(qǐng)輸入另一個(gè)整數(shù):"cin >> j ;x = fn1(i,j);y = i * j / x;cout << i << "和" << j << "的最大公約數(shù)是:" << x << endl;cout << i << "和" << j <&

43、lt; "的最小公倍數(shù)是:" << y << endl;int fn1(int i, int j)int temp;if (i < j)temp = i;i = j;j = temp;while(j != 0)temp = i % j;i = j;j = temp;return i;運(yùn)行結(jié)果為請(qǐng)輸入一個(gè)整數(shù):120請(qǐng)輸入另一個(gè)整數(shù):72120和72的最大公約數(shù)是:24120和72的最小公倍數(shù)是:360(5)編寫遞歸函數(shù),計(jì)算x的y(y>0)次冪?!驹闯绦颉?include <iostream.h>long GetPower(i

44、nt x,int y);int main()int number, power;long answer;cout << "Enter a number: "cin >> number;cout << "To what power? "cin >> power;answer = GetPower(number,power);cout << number << " to the " << power << "th power is &

45、quot; <<answer << endl;return 0;long GetPower(int x, int y)if(y=1)return x;elsereturn (x * GetPower(x,y-1);運(yùn)行結(jié)果為:Enter a number: 3To what power? 43 to the 4th power is 81(6)編寫程序,要求輸人四位數(shù)的年份、兩位數(shù)的月份和日期,把它們按“年 月 日”的格式輸出,并計(jì)算它是這一年的第幾天。【源程序】#include<iostream.h>#include<iomanip.h>day

46、num(int,int,int);void date(int year,int month,int day)cout<<setw(2)<<year/1000<<setw(2)<<(year/100)%10;cout<<setw(2)<<(year/10)%10<<setw(2)<<year%10;cout<<setw(2)<<month/10;cout<<setw(2)<<month%10<<setw(2)<<day/10<

47、;<setw(2)<<day%10<<endl;cout<<daynum(year,month,day)<<endl;daynum(int year,int month,int day)int i,sum=0;for(i=1;i<month;i+)switch (i)case 1:/1、3、5、7、8、10、12月有31天case 3:case 5:case 7:case 8:case 10:case 12:sum+=31;break;case 4:/4、6、9、11月有30天case 6:case 9:case 11:sum+=30

48、;break;case 2:if (year%4=0 && year%100!=0)|year%400=0)/閏年2月有29天sum+=29;else /平年2月有28天sum+=28;sum+=day;return sum;void main()int year,month,day;cout<<"請(qǐng)輸入年/月/日:"cin>>year>>month>>day;date(year,month,day);運(yùn)行結(jié)果為:請(qǐng)輸入年/月/日:1984 03 05 1 9 8 4 0 3 0 565第5章 數(shù)組與字符串一、

49、選擇題:(1)以下一維數(shù)組a的正確定義是( )。Aint a(10); Bint n=10,an; Cint n; D#define SIZE 10 cin>>n; int aSIZE;int an;【答案】D(2)以下能對(duì)具有10個(gè)元素的一維數(shù)組a進(jìn)行正確初始化的語(yǔ)句是( )。Aint a10=(0,0,0,0,0); Bint a10=10*1;Cint a =0; Dint a10= ;【答案】B(3)在定義int a10;之后,對(duì)a的引用正確的是( )。Aa10 Ba6.3 Ca(6) Da10-10【答案】D(4)以下對(duì)二維數(shù)組a進(jìn)行不正確初始化的是( )。Aint a2

50、3=0;Bint a3=3,2,1,1,2,3;Cint a=3,2,1,1,2,3;Dint a23=3,2,1,1,2,3;【答案】C(5)在執(zhí)行int a3=1,2,3,4,5,6;語(yǔ)句后, a11的值是( )。A4 B1 C2 D5【答案】D(6)為了判斷兩個(gè)字符串s1和s2是否相等,應(yīng)當(dāng)使用( )。Aif (s1=s2) Bif (s1=s2)Cif (strcmp(s1,s2)=0) Dif (strcpy(s1,s2)【答案】C(7)定義如下變量和數(shù)組:int i;int x33=1,2,3,4,5,6,7,8,9;則以下語(yǔ)句的輸出結(jié)果是( )。for (i=0;i<3;i

51、+)cout<<xi2-i);A1 5 9 B1 4 7 C3 5 7 D3 6 9【答案】C(8)下面程序段的運(yùn)行結(jié)果是( )。char a7="abcdef"char b4="ABC"strcpy(a,b);cout<<a5;Ae Bf C一個(gè)空格 D0 【答案】B(9)有下面程序段,則( )。char a3,b ="China"a=b; cout<<a;A運(yùn)行后將輸出China B運(yùn)行后將輸出ChC運(yùn)行后將輸出Chi D編譯出錯(cuò)【答案】D(10)以下程序執(zhí)行后輸出結(jié)果是( )。main()in

52、t aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6;int i,s=0;for(i=0;i<4;i+) s=s+aai1;cout<<s;A11 B13 C19 D20【答案】C二、閱讀下列程序,寫出執(zhí)行結(jié)果(1)#include<iostream.h>void main()char ch7="12ab56"int i,s=0;for(i=0;chi>='0'&&chi<='9'i=i+2)s=10*s+chi-'0' cout<<

53、;s;運(yùn)行結(jié)果為:1(2)#include<iostream.h>void main()int i,j,row,col,min;int a34=1,2,3,4,9,8,7,6,-1,-2,0,5;min=a00;for(i=0;i<3;i+)for(j=0;j<4;j+)if(aij<min)min=aij;row=i;col=j;cout<<min<<" "<<row<<" "<<col;運(yùn)行結(jié)果是-2 2 1 (3)#include<iostream.h&

54、gt;void main()int i,r;char s180="bus",s280="book"for(i=r=0;s1i!='0' && s2i!='0'i+)if (s1i=s2i)i+;elser=s1i-s2i;break;cout<<r<<endl;運(yùn)行結(jié)果是4 (4)分析以下程序的運(yùn)行結(jié)果。#include<iostream.h>void main()int a44=1,2,-3,-4,0,-12,-13,14,-21,23,0,-24,-31,32,-33

55、,0;int i,j,s=0;for(i=0;i<4;i+)for(j=0;j<4;j+)if(aij<0)continue;if(aij=0)break;s=s+aij;cout<<s<<endl;運(yùn)行結(jié)果是58 (5)分析下列程序運(yùn)行結(jié)果。#include<iostream>using namespace std;void main()int i,j;static int a10=1,1,1,1,1,1,1,1,1,1;for (i=0;i<10;i+)for (j=0;j<i;j+)ai=ai+aj;for (i=0;i&

56、lt;10;i+)cout<<ai<<","運(yùn)行結(jié)果為1,2,4,8,16,32,64,128,256,512,三、將下列程序補(bǔ)充完整,并實(shí)現(xiàn)相應(yīng)的功能1實(shí)現(xiàn)功能:輸入的20個(gè)數(shù)據(jù)以每行4個(gè)數(shù)據(jù)的形式輸出。#include<iostream.h>#define N 20void main()int aN,i;for(i=0;i<N;i+)cin>>ai;for(i=0;i<N;i+)if (_)cout<<'n'cout<<ai<<" "cou

57、t<<'n'【答案】 i%4=0(2)實(shí)現(xiàn)功能:輸入5個(gè)整數(shù),找出最大數(shù)和最小數(shù)所在的位置,并把二者對(duì)調(diào),然后輸出調(diào)整后的5個(gè)數(shù)。#include<iostream.h>void main()int a5,max,min,i,j,k=0;for(i=0;i<5;i+) cin>>ai;min=a0;for(i=1;i<5;i+)if(_)min=ai;k=i;max=a0;for(i=1;i<5;i+)if(ai>max)max=ai;_;ak=max;aj=min; cout<<"最小數(shù)的位置是"<<k<<endl;cout<<

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論