版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、貝啟內(nèi)客40C語言程序設(shè)計習題答案習題一 C語言程序設(shè)計概述一、名詞解釋(1)程序PI (2)程序設(shè)計Pl(3)機器語言PI (4)匯編程序P2(5)高級語言P2 (6)編譯程序P3 (7)解釋程序P3 (8)算法P4(9)結(jié)構(gòu)化的程序設(shè)計P9二、簡述題1. 設(shè)計程序時應(yīng)遵循哪些基本原則? P4答:正確性、可靠性、簡明性、有效性、可維護性、可移植性。2. 算法的要素是什么?算法具有哪些特點?答:算法的要素是:操作與控制結(jié)構(gòu);算法的特點有:有窮性、確左性、有效性、有零個或多個輸 入、有一個或多個輸出。3. 算法的表示形式有哪幾種?答:算法的表示形式有:自然語言、傳統(tǒng)流程圖、偽代碼、結(jié)構(gòu)化的流程圖
2、(N_S流程圖,盒圖)。4. 有哪三種基本結(jié)構(gòu)?答:三種基本結(jié)構(gòu)是:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。5. 傳統(tǒng)流程圖與N-S流程圖最大的區(qū)別是什么?答:N-S流程圖去掉了在傳統(tǒng)流程圖中常用的流程線,使得程序的結(jié)構(gòu)顯得更加淸晰、簡單。三、用傳統(tǒng)流程圖、N-S圖分別表示求解以下問題的算法。1.有3個數(shù)a, b, c,要求按由大到小的順序把它們輸出。2. 依次將10個數(shù)輸入,求岀其中最大的數(shù) 和最小的數(shù)并輸岀。3. 求 1+2+3+-+100 的值。輸入一個數(shù)給Xmax=x:Inin=x;n=l;當n小于10時輸入下一個數(shù)給X如果 max<xmax = X如果 min>x YCSNOmin
3、 = Xn = n + 1輸岀max,min的值4.求 1 ×2×3××10 的值。5.求下列分段函數(shù)的值。3X4X-15(X-I)÷6(X<l)(X=I)(1<X<5)6-3X(X>5)6.求IOO-200之間的所有素數(shù)。i=100當i<=200時n=2; flag=l;當nv i時否被n整|愛/yesAag=On = n+1flag= 1 ?yesno輸出i的i = i+13=0 一* 假非二次方程相等 實根 -b2abP =-ZaVI _ -÷ vt -Aac2aJ-(b' -A(IC)q
4、= -_;Iar - - yb2 _ 4acVn A 2-2d兩次根:XK x2復(fù)根:P十qip-7.求一元二次方程ax2+bx+c=0的根。分別考慮d=b-4ac大于0.等于0和小于0三種情況。四、注釋下面C程序的各個組成部分。main()/*主函數(shù)*/*程序開始*/int a, k, m;a=10;/*左義三個用來存放整數(shù)的變量*/*將整數(shù)10賦值給變量a */22; m=l;/*將整數(shù)2賦值給變量k */*將整數(shù)1賦值給變量1 */a= (k÷m) *k (k-m); Printf (,zdzz, a);/*先求出算術(shù)表達式的值,并將其賦值給變量a/*在屏幕上打印出變量a的值*
5、/*程序結(jié)朿*/習題二數(shù)據(jù)類型、運算符與表達式一. 選擇題1 10: BCDCB DDBCA11-20: ADDAA DBADC212& DABAD CDD二、填空題1.字母L 或字母12.字符或c、整數(shù)或d3.在程序運行過程中,其值可以在一宦的范國內(nèi)變化的雖:。4.'0'5.小數(shù)形式、指數(shù)形式6.關(guān)鍵字、預(yù)泄義標識符、用戸標識符7.字母、數(shù)字、下劃線、數(shù)字8.189.2 、 1、3010.雙精度實數(shù)或doubleIL賦值 >逗號、20、20.20、412.4習題三順序程序設(shè)計一. 選擇題1 10: BCCBC CCDCC->填空題1. PrilHf( )
6、、SCanf()2. 1 (注:1Ong的第1個字符)3. 域?qū)?,即在格式字符前加一個整數(shù),如5d4. W26.67.S.C8.*9. 、+10.三、編程題1. 編寫程序,從鍵盤輸入一個以秒為單位的時間數(shù),將其換算成幾小時幾分幾秒,然后進 行輸岀。例如輸入的時間為4258秒,則輸岀結(jié)果為:1小時10分58秒。答:程序參見文件CProgramxl3_3_01 .C#include MStdiO.hmain()int XhmSscanf(,%dx);h=x3600; m=x%360060; s=x%60;Printf(H%ds=%dd%d!n,x,hjn,s);2. 編寫程序,讀入三個整數(shù)給變量a
7、、b、c然后交換它們中的數(shù),把a中原來的值給b,貝啟內(nèi)客把b中原來的值給c,把C中原來的值給氛 答:程序參見文件邙rogranxt3-3.02.c#include MStdiO.h,'main()int a,b.c,t;Printf(Hi nput a b c:°);SCanf(H%d%d%d,Aa,&b.&c);Printf(Ma=%d5b=%dx=%dn,a,b,c); t=a;a=c;c=b:b=t;Printf(Ha=%d.b=%dx=%dn,a,b,c);習題四選擇結(jié)構(gòu)程序設(shè)計一、填空題11()2. !%+V=!=&& Il =3.
8、X=O4. 0.25. 20、00二、選擇題1 7: DDCAD DC三、程序閱讀題L 5959592. 0.5000003. _4. 2_5. 6_6. a=2.b=l7 PaSS& J_四、編程題1. 設(shè)a為整型變量且其值大于零,請將以下if語句改寫成SWitCh語句。if ( a<60)m=1;else if(a<70) m=2;else if(a<80) m=3;else if(a<90) m=4;else m=5;答:程序參見文件 CPrOgranIxt4_4_l .c 或 CPrOgramxt4_4_lb.c#include stdio.humain
9、()int a,m;scanf(%dM,&a);SWitCh(a10)case 0:CaSe 1:CaSe 2:CaSe 3:CaSe 4:CaSe 5:m=1 ;break;CaSe 6:m=2;break;CaSe 7:m=3;break;CaSe 8:m=4;break;default:m=5;break;Printf(Mm=%dn,m);CPrOgramxt4_4_1 b.c# include HStdiO.hymain()int a,m;SCanfc,%da);m=0;SWitCh(a10)defaults+;CaSe 8:m+;CaSe 7:m+;CaSe 6:m+;CaS
10、e 5:CaSe 4:CaSe 3:CaSe 2:CaSe 1:CaSe 0:m+;Printf(Mm=%dn,m);2. 編寫程序,從鍵盤輸入一個整數(shù),打印出它是奇數(shù)還是偶數(shù)。答:程序參見文件CProgramxt4_4_2.c#include HStdiO.hmain()int a;SCanfC,%da);if(a%2=1)Printf(H%d is a Odd number !n1a);elsePrintf(,%d is a even number !n,1a);3. 編寫程序,從鍵盤輸入一個字符,判別它是否是小寫字母,如果是,將它轉(zhuǎn)換為大寫字母:如果不是, 不轉(zhuǎn)換。然后輸岀最后得到的字符
11、。答:程序參見文件CProgramxt4_4_3.c#include HStdiO.hmain()char ch;SCanfe%c”,&ch);if(ch>=,a* && ch<=,z,)Ch=Ch-32;Printfe%cn,ch);4. 編寫程序,從鍵盤輸入一個不多于4位的正整數(shù)打印出它是幾位數(shù)。答:程序參見文件CProgramxt4_4_4.c#include HStdiO.hmain()int x1n;SCanfc,%d×);if(x>1000) n=4;else if(x>100) n=3;else if(x>10) n
12、=2;else n=1;Printf(%dn,1n);5. 當一個人的月收入在2000元以下時免稅;月收入在2000元到5000元之間時,超過2000的部分納稅 8%;月收入在5000元以上時,2000至5000之間的部分納稅8%,超過5000的部分納稅15%。編寫 程序從鍵盤輸入月收入income,計算并輸出應(yīng)交稅款tax。答:程序參見文件CProgramxt4_4_5.c#include HStdiO.h,tmain()int in come;float tax;SCanf(M%d,aincome);if(income<=2000)tax=O;else if(income<=5
13、000)tax=0.08*(income-2000);else tax=0.08w(5000-2000)+0.15*(income-5000);Printf (MtaX=%fnHltax);6. 回文是指正讀和反讀都一樣的數(shù)或字符串。例如:12321、55455、35553等都是回文。請編寫一個程序, 從鍵盤上讀取一個包含五位數(shù)字的長整數(shù),并判斷它是否是回文。(提示:用除法運算和求余運算把一個 數(shù)的個位、十位、百位、千位等分別分離出來。)答:程序參見文件CPrOgramxt4_4_6.c#include HStdiO.h,tmain()long x;int a,b5d,e;SCanf(I,%l
14、d,1Ax);a=x10000;b=x%10000/1000;d=x%100/10; e=x%10;if(a= && b=d)Printf(H%ld is huiwen!n,x);elsePrintf(I,%ld is not huiwen!n,ix);習題五循壞結(jié)構(gòu)程序設(shè)計一、閱讀題1. 82. 43213. X404. -15. 236. 527. 58. 3二、填空題1. 182. 23. b=i+l4. 175iv=9.i%3!=06 d=l .0、k=k+l、kv=10三、選擇題1 8: ADDAB DDA四、編程題1. 編寫程序,打印岀所有的“水仙花數(shù)”,所謂“水仙
15、花數(shù)”是指一個三位數(shù),英各位數(shù)字的立方之和 等于該數(shù)本身。例如,407是一個“水仙花數(shù)”,因為:407二4'+0'+7'° (注:若將題意改為打印岀最大的 或最小的“水仙花數(shù)”,則應(yīng)將循環(huán)語句作如何調(diào)整?)。答:程序參見文件CPrOgramxt5_4_01 .C#include ”StdioHmain()int a,b,ctk;for(k=100;k<=999;k+)求最大的“水仙花數(shù)”改用:for(k=999;k>=1 OOjk-)a=k100;b=k/10%10;c=k%10;if(k=a*a*a+b*b*b+c*c*c) Printfc,%5
16、d,k);/求最大或最小“水仙花數(shù)”時增加一個語句:break;Printf (h);2. 編寫程序,輸出從公元1980年至2880年所有閏年的年號。每輸岀5個年號換一行。答:程序參見文件CProgramxt5_4_02.c#include HStdiO.h,tmain()int k1flag,n=O;for(k=1980;k<=2880;k+)flag=(k%4=0)&&(k%100!=0)(k%400=0);if(fag) Printf(%5d,k);n+;if(n%10=0)Printf(HnM);Printf Cfn,t);3.編寫程序,求 l-3+5-7+-99
17、+101 的值。答:程序參見文件CProgramxl5_4_O3.c#include HStdiO.hmain()int n,t=l,s=1;for(n=3;n<=101 ;n+=2)t=-t; s=s+n;Printf(MS=%dn,s);4編寫程序,計算并輸出下列級數(shù)的前n項之和n的值從鍵盤輸入。C 23581321Sn =- + + - + - + + 1235813答:程序參見文件CPrOgranIxt5_4_04.c#include HStdiO.humain()int fz,fm, n,i;float s,t;fz=2;fm=1;s=0;SCanfC,%dn);for(i=1
18、;i<=n;i+)t=(1.0*fz)fm;s=s+t;fz=fz+fm; fm=fz-fm;Printf(Ms=%nM,s);5. 編寫程序,求 e 的值 e=l+ll! +1/2! +1/3! +1/4! +ln!答:程序參見文件CPrOgramxt5_4_05.c#include HStdiO.hVOid main()int n,i;float t1fm=1,e=1;SCanfc,%d5&n);for(i=1;i<=n;i+)fm=fm*i; t=1.0fm; e=e+t; Printf(Hn=%d,e=%nr,n1e);6. 已知某球從80米髙度自由落下,落地后反復(fù)
19、彈起,每次彈起的髙度都是上次高度的一半。求此球8 次落地所經(jīng)過的總路程。答:程序參見文件CPrOgraInxt5_4_06.c#include HStdiO.hVoid main()int n;float s=80,h=s2;for(n=2;n<=8;n+)s=s+2*h;h=h2;Printf(Ms=%n,s);7. 用牛頓迭代法求髙次方程f (X)=2x5-4x2+5x-18=O的根。牛頓迭代公式為:X-f (X-1)f, (Xn-I),其 中f, (Xa-I)為導(dǎo)函數(shù)在點XE的值。答:程序參見文件CPrOgranIxt5_4_07.c#include ”StdioH# includ
20、e Hmath.hHmain()float x1f,f1;X=&/ X的初值可為任意值dof=2wx*x*x-4*x*x+5*x-18;f1=6*X*x-8*X+5; x=x-ff1 ;while(fabs(f)>0.00001);Printfe=%f1f=%nl,1x,f); )8. 用弦截法求高次方程2x5-3x=+7x-13=0的根。答:程序參見文件CProgramxt5_4_0&c# include HStdiO.h,t# include ” math, h”main()float a1b,c1fa1fb,fc;doprintf(MEnter a,b:M);SCa
21、nfe,%f,%f&a,&b);fa=2*awaAa-3wa*a+7*a-13;fb=2*bWbWb-3AbAb+7*b-13;while(fa*fb>O);doc=(a*f b-b*fa)(fb-fa);fc=2*C*C*C-3wC*C÷7*C-13;if(fa*fc>O)a=c;fa=fc;elseb=c;fb=fc;while(fabs(fc)>0.0001);Printf(wx=%fiy=%fnw,c,fc);9. 有這樣一些真分數(shù):英分子和分母都是兩位正整數(shù),且分子的個位數(shù)與分母的十位數(shù)相同,如果把該 分數(shù)的分子的個位數(shù)與分母的十位數(shù)同時去
22、掉,所得到的新的分數(shù)正好與原分數(shù)的值相等,如26/65二2/5。 試編程求出所有滿足上述條件的真分數(shù)。答:程序參見文件CPrOgranIxt5_4_09.c#include HStdiO.humain()int a,b,c;/設(shè)這個分數(shù)為ab/bcfor(a=l;a<=9;a+)for(b=1 ;bv=9;b+)for(c=1 ;c<=9;c+)40貝啟內(nèi)客if(a<c)&&(1.0*ac=(aw10.O+b)(bM O.O÷c)Printf(M%d%d=%d%d%d%d=%nla,c,a,b,b1c,1.O*ac);10. 編寫程序,求數(shù)列:1、(
23、1+1/2)、(1+12÷13)、(1+1/2+1/3+1/4) . (1+1/2+1/3+1/4+1/5) 的前10項之和。答:程序參見文件CPrOgramxt5_4_10.c# include ,stdio.h'tmain()float s1t;int i;S=O,t=O*for(i=1;i<=10;i+)t=t÷1.0i; s=s+t; Printfe,s=%nts);)11. 編寫程序,求3到100之間的所有素數(shù)之和。答:程序參見文件CPrOgramxt5_4_l 1 .c# include ,stdio.h'tmain()int sj,k,f
24、lag;s=0;for(i=3;i<=100;i+)fag=l;for(k=2;k<i;k+)jf(i%k=0)flag=O;break;if(fag)s=s+i;Printf(H%4d,1i);)Printf(nsum=%d,1s);12. 編寫程序,求FIbonacci數(shù)列中大于800的最小的一個數(shù)。答:程序參見文件CPrOgranIxt5_4_l2.c#include MStdiO.hVoid main()intf1=1,f2=1,f3;while(f3<=800)f3=÷f2;f 1 =f2;f2=f3;Printf(MFibOnaCCi 數(shù)列中大于 800
25、 的最小數(shù)是%5dnM,f3);習題六數(shù)組一、選擇題1-10: BDBCD CDBAB11 20:BCDCCDABBC21 30:CCADCABBCB31 41:BDDDDCDCCB A二、填空題19 、02. 先行后列3. 連續(xù)的存儲空間中4. QUiCkC5. (c=gctchar()、'A'+i 或 65+i6. '()'.shiislr2i7. CDABC8. 1()149. 610. 1 ()()()()0100000100000100000111. 60()12. AZyD134 SomC String *tcst三、編程題1. 立義一個有20個元素
26、的整型數(shù)組,分別求出下標為奇數(shù)和偶數(shù)的元素的平均值。答:程序參見文件CPrOgramxt6_3_01 .c# include HStdiO.h,t# include ” math, h”main()int i,s0=0,s1=0,a20;for(i=0;i<20;i+)ai=rand()%100;for(i=0;i<20;i+=2)printf(,%3dtai);s=s+ai;Printf(M SUm is:%Cl ave=%fn,s,s10.0);for(i=1;i<20;i+=2)printf(,%3d,ai);s1=s1+ai;Printf(H SUm is:%d av
27、e=%fn,t,s1 ,s110.0);2. 設(shè)有一個整型數(shù)組,另輸入一個整數(shù),編程査找這個整數(shù)是否在數(shù)組中出現(xiàn)過,若岀現(xiàn),則輸出第一 次出現(xiàn)的位置,否則,輸出no foundo答:程序參見文件CPrOgraInxt6_3_02.c#include HStdiO.h# include ” math, h”main()int i,s,a20;for(i=0;i<20;i+) ai=rand()%1OO;SCanfC,%ds);for(i=0;i<20;i+)if(ai=s)printfnound:a%d=%dnMIi,ai); break;if(i=20)Printf(MnO fou
28、ndnr,); for(i=0;i<20;i+)Printf(M%3d1ai);Printf Ctnu);3. 設(shè)有一個已排好序的數(shù)組,今輸入一個數(shù),要求按原來排序的規(guī)律將它插入到數(shù)組中。答:程序參見文件CProgramxt6_3_03.c#include l,stdio.ht,#define N 10main()int i, J, SI aN=17115113,11,9,7,5,3,1 ; /int aN=1,3,5,7,9,11,13,15,17; SCanf(M%ds);i=0;if (a0<a1)While(S>ai) i+;elseWhiIe(S<ai) i+
29、;forG=N-1;j>i;HaDl=aj-ll;aj=s;for(i=0;i<N;i+)Printf (,%3d,ai);Printf (,nt,);4. 編一程序,從一個已排好序的數(shù)組中刪去某個位宜上的元素。答:程序參見文件CPrOgraInxt6_3_04.cinclude t,stdio.hi,#define N 10main()int i, J, aN=1,3,5,7,9,11,13,15,17119;for(i=0;i<N;i+)Printf(M%3d,ai);Printf (,nt,);SCanf(M%d,&);forG=i;j<N-1;j+) a
30、j=a÷1;aj=O;for(i=0;i<N;i+) Printf(M%3d,ai);PrintfC,nr,);5. 將一個二維數(shù)組的行、列互換后存到另一個二維數(shù)組中并輸出結(jié)果。40貝啟內(nèi)客答:程序參見文件CPrOgranlxt6-3-05.c#include ',stdio.ht,main()int i,j;int a34=1,3,5,7,9,11,13,15,17,19,21,23,b43;for(i=0;i<4;i+)for(j=0j<3y+)biO=aQi;Printf(I,array a:nn);for(i=0;i<3;i+)for(j=0j
31、<4+)Printfc%5dll1ajD);Printf(Mnu);Printf(,array b:rf);for(i=0;i<4;i+)for(j=0;j<3;j+)Printfc%5d,1bi0J);Printfe,nu);6. 編一程序,在一個二維數(shù)組中,査找第一次出現(xiàn)的負數(shù),并輸出該數(shù)及其所在的行、列號。答:程序參見文件CPrOgraInxt6-3-06.c#include MStcIio.hf,main()int j,fag;int a34=13,5,7,9,11,13,-15,17,19,-21,23;tag=O;for(i=0;i<3;i+)for(j=0
32、;j<4;j+)if(aijv)fag=1;Printf(Wfound%d%d=%dnl,1ij,aiOJ);i=j=100;/可使雙重循環(huán)提前結(jié)束if(fag=O)Printf(,no found );Printf(Marray a:rT);for(i=0;i<3;i+)for(j=0j<4+)Printf(M%5daij);Printf(Mnu);7. 編程將一個字符數(shù)組中的字母,按由大到小的順序進行排序。答:程序參見文件CPrOgramxt6-3-07.c#include MStdiO.hM#include l,string.hmain()char t1s=MABCDl
33、VBHFBVoNLKFDBm;int ij,n;PUtS(S);n=strlen(s);for(i=0;i<n-1;i+)for(j=i+1;j<n;j+)if(si<sD)t=si;si=sO;sO=t;PUtS(S);8. 輸入一行字符,統(tǒng)計其中有多少個英語單詞,單詞之間用空格隔開。答:程序參見文件CProgramx(6_3_0&cinclude MStdiO.ht,#include ,string.hmain()char s81;int w,i,n;gts(s);i=0;n=0;w=0;WhiIe(Si!=,0,)if(si",)w=0;*end Of
34、 a word7elseif(w=O)w=1 ;n+;*begin Of a WOrd7i+;Printf(HnUmber Of WOrd%dnw,n);9. 編程將兩個一維數(shù)組中的對應(yīng)元素的值相減后進行輸出。答:程序參見文件CPrOgranlxt6_3_09.cinclude l,stdio.ht,include ,math.hMmain()int i,a10,b10;for(i=0;i<10;i+)ai=rand()%100; Printf(H%4d,ai);)Printf (,nt,);for(i=0;i<10;i+)bi=rand()%100; Printfc,%4d,bi
35、);)Printf (l,nt,);for(i=0;i<10;i+)Printfc,%4d,ai-bi);Printf (,nt,);10. 有n個無序的數(shù)放在數(shù)組a中.請將相同的那些數(shù)刪得只剩得一個,輸出經(jīng)過刪除后的數(shù)據(jù)。答:程序參見文件CPrOgraInxt6-3-lOxinclude t,stdio.hi,main()int i,j,k,a10=90,20,40,30,50,50,50,50,20,80;for(i=0;i<10;i+)Printf(H%4d,ai);Printf (,nt,);for(i=0;i<9;i+)for(j=i+1;jv10;j+)if(aU
36、=a)aj=-888;)k=0;for(i=0;i<10;i+)if(ai!=-888) Printf(M%4d,1ai);ak÷÷=ai;不相同的有效元素只有K個了Printfc,nt,);11求二維數(shù)組中這樣一個元素的位置:它在行上最小,住列上也最小。如果沒有這樣的元素則輸出相 應(yīng)的信息。答:程序參見文件CPrOgramxt6_3_l 1.cinclude MStdiO.hninclude Mmath.hMmain() intj,i,kJag,fz=05a45;for(i=0;i<4;i+)forO=0;j<5;j+)aij=rand()%100;Pr
37、intf(W%4dH,ai0);Printf (n,); for(i=0;i<4;i+)forQ=0j<5j+)fag=1;for(k=0;k<5;k+)if(aik<aiD)flag=O;break; for(k=0;k<4&&flag;k+) if(akD<aiD)flag=O;break;if(fag)fz+; Printf(Mmin a%d%d=%dn,i,j1aiO);) if(fz=O)Printf(,no found!*1);12. 在一個二維數(shù)組中形成并輸出如下矩陣:2 1113 2 11l- 5 4 3 21 -1111 -
38、4 3 2 140貝啟內(nèi)客答:程序參見文件CPrOgranlxt6-3-l2.cinclude MStdiO.hf,#define N 5main()intj1i,aNN;for(i=0;i<N;i+)for(j=0;j<N;j+)if(dj)aD=1;else if(j=0)aiDl=i÷l ;elseaij=aM0-1;for(i=0;i<N;i+)forQ=0;j<N;j+)Printfc%4d,aij);PrintfCfXn");13.已知A是一個3×4的矩陣,B是一個4×5的矩陣,編程求A×B得到的新矩陣C,并
39、輸岀C矩陣。答:程序參見文件CProgramxt6_3_ 13cinclude HStdiO.hmain()int j,i,k,a34=1,2,3,4,5,6,7,8,9,10,11,12;int b45=312t1,5,4,432,5,1,2,31514J ,7,8,5,6,9, c35;Printfc,array A(3M)n);for(i=0;i<3;i+)forO=0;j<4;j+)Printfc%4d,aij);Printf (nu);Printf("array B(4*5):n°);for(i=0;i<4;i+)forO=0<5J+)Pr
40、intfe%4d,bij); Printf(Anlt);for(i=0;i<3;i+)forG=0;j<5;j+)ciD=O;for(k=0;k<4;k+)ciU÷=aik*bk;Printf(Harray C(3*5)=A * B:rT);for(i=0;i<3;i+)for(j=0;j<5;j+)Printf(W%4dw,ciD);Printf (h);14. 編程輸出兩個字符串中對應(yīng)位置上相同的字符。答:程序參見文件CPrOgramxt6_3_ 14.cinclude l,stdio.ht,main()it i;Char a81=,acbsbd V
41、hfejbvewvkbewljbvn;Char b81=nanbdxwdbviuerkjvbfidbvuie bik,f;Printf (l,string 1: %snMIa);Printf(HString2: %sntb);Printf(,string3:w);i=0;while(ai!=,O, && bi!=,Ot)if(ai=bi)Printf(H%c,ai);i+;PrintfC,m);15. 設(shè)有一字符串已按升序排列在字符數(shù)組a中,請將另一字符串b中的字符按升序的規(guī)律插到數(shù)組a 中。答:程序參見文件CProgramx(6_3_ 15.Cinclude l,stdio.
42、ht,#include ”String.h"main()it i,j,k;Char a81=,acdfhjklmopxz,;Char b81=,anbdx;Printf (HStringI: %snta);Printf(,string2: %sntb);i=0;while(bi!=,O,)j=0;While(ajvbi&&aj!-(r)j+ik=strlen(a);while(k>=j)ak+1=ak;k-;afl=bi;i+;Printf(MString3: %snMIa);16. 將已按升序排列的兩個字符串a(chǎn)和b中的字符按升序歸并到字符數(shù)組C中。答:程序參見
43、文件CPrOgraInxt6_3_l6.cinclude MStdiO.hinclude l,string.hMmain()int i,j,k;Char a81="acdfhjklmopxz"Char b81=,abdnxt,;Char c81;Printf(MStringl: %snMia);Printfc,string2: %sntb); i=O;j=O;k=O;WhiIe(ai!=A0&&bj!=O,)if(ai<bj) ck+=ai+;else ck+=b+;while(ai) ck+=ai+;while(bj)ck+=bfl+;ck=,Ot;
44、Printf(MString3: %snMIC);習題七函數(shù)一、選擇題1 10: BDCDD BDBAC11 20: AABBB ABAAC21-31: CDAAC DDABB A二、填空題1. 函數(shù)聲明2. 自動將具轉(zhuǎn)換為函數(shù)怎義時的類型34.56.10IIOo90000i<=n 、 s 、0. f(k)7.05*(x0+ax0)、 a.xl8.ItiS9.272110.024611k、-112.2 、213P= i、XriIrPl14.515.716.2417. agc(nJ)+2 、 agc(n)18m%l()、n10m 或 m!=0、 r(m)三、編程題1. 編一函數(shù),判斷某年是
45、否為閏年,若是返回1,否則返回540答:程序參見文件CProgramxC7_3_01.c#include <stdio.h>fun (int m)return (m%4=0)&&(m%100!=0)|(m%400=0);main() int n;for (n=1987;n<2009;n+) if(fun(n)Printf(Myear:%d is a leap! n,n);2. 編寫計算三角形面積的程序,將計算而積立義成函數(shù)。三角形而積公式為:A= ys(s - a)(s b)(s C)式中 s=(a÷b+c)2其中A為三角形面積,a、b、C為三角形的
46、三條邊的長度。答:程序參見文件CPrOgranIxt7_3_02.c#inClUde <math.h>#include <stdio.h>float fun(float a,float b,float C)float f,s;s=(a+b÷c)2;if(s<=a)(s<=b)(s<=c)/ 或(a+b)>c&&(a+c)>b&&(b+c)>af=0;elsef=sqrt(s*(s-a)*(s-b)*(s-c);return f;)main() float a,b,c;SCanf(H%f%f%f
47、&a,&b,&c);Printf(Marea is:%nH,fun(a,b,c);3. 編寫兩個函數(shù),分別求出兩個整數(shù)的最大公約數(shù)和最小公倍數(shù),用主函數(shù)調(diào)用這兩 個函數(shù),并輸出結(jié)果,兩個整數(shù)由鍵盤輸入。答:程序參見文件CPrOgramx(7_3_03c#inClUde <math.h>#include <stdio.h>int fmax(int miint n)it r;r=m%n;WhiIe (r!=0)m=n;n=r*m% n;return n;int fmin(int m,int n)return m*nfmax(m,n);)main()
48、int a,b;SCan f(tf%d%dw,&a,&b);Printf(MfmaX is:%dnM,fmax(a,b);40貝Fi內(nèi)客Printf(Mfmin is:%dnM,fmin(a,b);4. 編寫函數(shù),根據(jù)整型形參m的值,計算公式t二I- 的值。例如,若 昉5,則應(yīng)輸出0. 536389o2*2 3*3 In *In答:程序參見文件CProgramxt7_3_04.cinclude <stdio.h>float fn(int m)float t=1;int i;for(i=2;i<=m;i+)t=M.0ii;return t;main()Print
49、f(Mt(5)=%nMIfUn (5);5. 計算S二1+丄+丄+丄。n由終端輸入,將計算n!定義成函數(shù)。2! 3! 川答:程序參見文件CProgramxt7_3_05.c#include <stdio.h>float fun(int m)int i;float S=OIt=I;for(i=1;i<=m;i+)t=ti; s=s+t; return s;main() Printf(HS(5)=%nM,fun(5); 6. 編寫函數(shù),利用公式: I 11212 312 3 423353573579計算n的近似值,當某一項的值小于1(時,認為達到精度要求。 答:程序參見文件CPr
50、Ogramxt7_3_06.c#include <stdio.h>double fun()int n; double pi=1,t=1;n=1;dot=n(2*n+1);pi=pi+t;n+;while(t>1e-5);return 2*pi;貝啟內(nèi)客main()Printf(MPi=%fnMIfUn();7. 編一函數(shù),判斷某一整數(shù)是否為回文數(shù),若是返回1,否則返回Oo所謂回文數(shù)就是該數(shù)正讀與反讀 是一樣的。例如12321就是一個回文數(shù)。答:程序參見文件CProgramx(7_3_07cinclude <stdio.h>include <math.h>
51、;int huiwen(int m)int t1n=O;t=m;while(t)n÷÷ t=V10; 求出M是幾位的數(shù)t=m;while(t)if(t(int)pow(10,n-1 )!=t%10) 比較其最高位和最低位return 0;elset=t%(int)pow(1 OIn-I);/去掉其最高位t=V10;/去掉其最低位n=n2;位數(shù)去掉了兩位return 1;main() int x;SCanfe%d,x);if (huiwen(x)Printf(%d is a huiwen!ntx);elsePrintf(,%d is not a huiwen!n,1x);8. 編寫一個求水仙花數(shù)的函數(shù),然后通過主函數(shù)調(diào)用該函數(shù)求100到999之間的全部水仙花數(shù)。所謂水 仙花數(shù)是指一個三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。例如:153就是一個水仙花數(shù):153=1*1*1+5*5*5+3*3*3答:程序參見文件CProgramxl7_3_0&c#include <stdio.h>#inClUde <math.h>int fun8(int m)nt
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能倉儲貨物質(zhì)押融資服務(wù)合同3篇
- 二零二五年度研討會策劃委托合同3篇
- 內(nèi)蒙古包頭市東河區(qū)重點名校2025屆中考生物考前最后一卷含解析
- 2025年度離婚后財產(chǎn)分割與分配協(xié)議書4篇
- 二零二五年男方房產(chǎn)歸男方無債務(wù)離婚協(xié)議書范本詳細說明3篇
- 2025年度鋁灰資源化處理生產(chǎn)線建設(shè)合同3篇
- 2025年水庫水資源開發(fā)承包合同范本3篇
- 2025技師行業(yè)數(shù)據(jù)分析與市場研究合同3篇
- 二零二五年電動汽車銷售與綠色出行補貼政策執(zhí)行合同3篇
- 2025年度科技創(chuàng)新園區(qū)場地調(diào)研與扶持合同4篇
- 春節(jié)文化常識單選題100道及答案
- 12123交管學法減分考試題及答案
- 2024年杭州師范大學附屬醫(yī)院招聘高層次緊缺專業(yè)人才筆試真題
- 制造業(yè)BCM業(yè)務(wù)連續(xù)性管理培訓
- 商場停車場管理制度
- 24年追覓在線測評28題及答案
- TGDNAS 043-2024 成人靜脈中等長度導(dǎo)管置管技術(shù)
- 《陸上風電場工程概算定額》NBT 31010-2019
- 皮帶輸送機工程施工電氣安裝措施要點
- 藥房(冰柜)溫濕度表
- QJ903.9A-1995航天產(chǎn)品工藝文件管理制度管理用工藝文件編制規(guī)則
評論
0/150
提交評論