C語(yǔ)言程序設(shè)計(jì)課后習(xí)題答案第四版譚浩強(qiáng)
《C語(yǔ)言程序設(shè)計(jì)課后習(xí)題答案第四版譚浩強(qiáng)》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語(yǔ)言程序設(shè)計(jì)課后習(xí)題答案第四版譚浩強(qiáng)(112頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第1章程序設(shè)計(jì)和C語(yǔ)言1 1.1什么是計(jì)算機(jī)程序1 1.2什么是計(jì)算機(jī)語(yǔ)言1 1.3C語(yǔ)言的發(fā)展及其特點(diǎn)3 1.4最簡(jiǎn)單的C語(yǔ)言程序5 1.4.1最簡(jiǎn)單的C語(yǔ)言程序舉例6 1.4.2C語(yǔ)言程序的結(jié)構(gòu)10 1.5運(yùn)行C程序的步驟與方法12 1.6程序設(shè)計(jì)的任務(wù)14 1-5 #include <stdio.h> int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf
2、 ("**************************\n"); return 0; } 1-6#include <stdio.h> int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max<b) max=b; if (max<c) max=c; printf("
3、;The largest number is %d\n",max); return 0; } 第2章算法——程序的靈魂16 2.1什么是算法16 2.2簡(jiǎn)單的算法舉例17 2.3算法的特性21 2.4怎樣表示一個(gè)算法22 2.4.1用自然語(yǔ)言表示算法22 2.4.2用流程圖表示算法22 2.4.3三種基本結(jié)構(gòu)和改進(jìn)的流程圖26 2.4.4用NS流程圖表示算法28 2.4.5用偽代碼表示算法31 2.4.6用計(jì)算機(jī)語(yǔ)言表示算法32 2.5結(jié)構(gòu)化程序設(shè)計(jì)方法34 習(xí)題36 第章最簡(jiǎn)單的C程序設(shè)計(jì)——順序程序設(shè)計(jì)37 3.1順序程序設(shè)計(jì)舉例37
4、3.2數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算39 3.2.1常量和變量39 3.2.2數(shù)據(jù)類型42 3.2.3整型數(shù)據(jù)44 3.2.4字符型數(shù)據(jù)47 3.2.5浮點(diǎn)型數(shù)據(jù)49 3.2.6怎樣確定常量的類型51 3.2.7運(yùn)算符和表達(dá)式52 3.3C語(yǔ)句57 3.3.1C語(yǔ)句的作用和分類57 3.3.2最基本的語(yǔ)句——賦值語(yǔ)句59 3.4數(shù)據(jù)的輸入輸出65 3.4.1輸入輸出舉例65 3.4.2有關(guān)數(shù)據(jù)輸入輸出的概念67 3.4.3用printf函數(shù)輸出數(shù)據(jù)68 3.4.4用scanf函數(shù)輸入數(shù)據(jù)75 3.4.5字符數(shù)據(jù)的輸入輸出78 習(xí)題82 3-1 #inclu
5、de <stdio.h> #include <math.h> int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; } 3-2-1 #include <stdio.h> #include <math.h> int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.058
6、5; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后將本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后將本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后將本息存再存1年期,連續(xù)存5次 p5=p*pow(1+r0/4,4*5); // 存活期存
7、款?;钇诶⒚恳患径冉Y(jié)算一次 printf("p1=%f\n",p1); // 輸出按第1方案得到的本息和 printf("p2=%f\n",p2); // 輸出按第2方案得到的本息和 printf("p3=%f\n",p3); // 輸出按第3方案得到的本息和 printf("p4=%f\n",p4); // 輸出按第4方案得到的本息和 printf("p5=%f\n",p5); // 輸出按第
8、5方案得到的本息和 return 0; } 3-2-2 #include <stdio.h> #include <math.h> int main() {double r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期
9、后將本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后將本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后將本息存再存1年期,連續(xù)存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款?;钇诶⒚恳患径冉Y(jié)算一次 printf("p1=%f\n",p1); // 輸出按第1方案得到的本息和 printf("p2=%f\n",p2); // 輸出按第2方案得到的本息和 pr
10、intf("p3=%f\n",p3); // 輸出按第3方案得到的本息和 printf("p4=%f\n",p4); // 輸出按第4方案得到的本息和 printf("p5=%f\n",p5); // 輸出按第5方案得到的本息和 return 0; } 3-2-3 #include <stdio.h> #include <math.h> int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;
11、 p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后將本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后將本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后將本息存再存1年期,連續(xù)存5次 p5=p*pow(1+r0/4,
12、4*5); // 存活期存款?;钇诶⒚恳患径冉Y(jié)算一次 printf("p1=%10.2f\n",p1); // 輸出按第1方案得到的本息和 printf("p2=%10.2f\n",p2); // 輸出按第2方案得到的本息和 printf("p3=%10.2f\n",p3); // 輸出按第3方案得到的本息和 printf("p4=%10.2f\n",p4); // 輸出按第4方案得到的本息和 printf(&qu
13、ot;p5=%10.2f\n",p5); // 輸出按第5方案得到的本息和 return 0; } 3-3. #include <stdio.h> #include <math.h> int main() {float d=300000,p=6000,r=0.01,m; m=log10(p/(p-d*r))/log10(1+r); printf("m=%6.2f\n",m); return 0; } 3-4 #include <stdio.h>
14、 int main() {int c1,c2; c1=197; c2=198; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } 3-5 #include <stdio.h> int main() {int a,b; float x,y; char c1,c2; scanf("a=%d b=%d",&a,&b); scanf("%f %e&q
15、uot;,&x,&y); scanf("%c%c",&c1,&c2); printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2); return 0; } 3-6 #include <stdio.h> int main() {char c1='C',c2='h',c3='i',c4='n',c5='a'; c1=c1+4; c2=c2+4
16、; c3=c3+4; c4=c4+4; c5=c5+4; printf("passwor is %c%c%c%c%c\n",c1,c2,c3,c4,c5); return 0; } 3-7 #include <stdio.h> int main () {float h,r,l,s,sq,vq,vz; float pi=3.141526; printf("請(qǐng)輸入圓半徑r,圓柱高h(yuǎn)∶"); scanf("%f,%f",&r,&h); //
17、要求輸入圓半徑r和圓柱高h(yuǎn) l=2*pi*r; //計(jì)算圓周長(zhǎng)l s=r*r*pi; //計(jì)算圓面積s sq=4*pi*r*r; //計(jì)算圓球表面積sq vq=3.0/4.0*pi*r*r*r; //計(jì)算圓球體積vq vz=pi*r*r*h; //計(jì)算圓柱體積vz printf("圓周長(zhǎng)為: l=%6.2f\n",l);
18、 printf("圓面積為: s=%6.2f\n",s); printf("圓球表面積為: sq=%6.2f\n",sq); printf("圓球體積為: v=%6.2f\n",vq); printf("圓柱體積為: vz=%6.2f\n",vz); return 0; } 3-8-1 #include <stdio.h> int main() { int c1,c2; //整型定義
19、 printf("請(qǐng)輸入兩個(gè)整數(shù)c1,c2:"); scanf("%d,%d",&c1,&c2); printf("按字符輸出結(jié)果:\n"); printf("%c,%c\n",c1,c2); printf("按ASCII碼輸出結(jié)果為:\n"); printf("%d,%d\n",c1,c2); return 0; } 3-8-2 #include <stdio.h> int main()
20、{ char c1,c2; //定義字符型變量 int i1,i2; //定義整型變量 printf("請(qǐng)輸入兩個(gè)字符c1,c2:"); scanf("%c,%c",&c1,&c2); i1=c1; //賦值給整型變量 i2=c2; printf("按字符輸出結(jié)果:\n"); printf("
21、%c,%c\n",i1,i2); printf("按整數(shù)輸出結(jié)果:\n"); printf("%d,%d\n",c1,c2); return 0; } 3-8-3 #include <stdio.h> int main() { char c1,c2; //定義為字符型 int i1,i2; //定義為整型 printf("請(qǐng)輸入兩
22、個(gè)整數(shù)i1,i2:"); scanf("%d,%d",&i1,&i2); c1=i1; //將整數(shù)賦值給字符變量 c2=i2; printf("按字符輸出結(jié)果:\n"); printf("%c,%c\n",c1,c2); printf("按整數(shù)輸出結(jié)果:\n"); printf("%d,%d\n",c1,c2); return 0; }
23、 3-8 #include <stdio.h> int main() { char c1,c2; printf("請(qǐng)輸入兩個(gè)字符c1,c2:"); c1=getchar(); c2=getchar(); printf("用putchar語(yǔ)句輸出結(jié)果為:"); putchar(c1); putchar(c2); printf("\n"); printf("用printf語(yǔ)句輸出結(jié)果為:"); printf("%c %c\n",c1,c2); retur
24、n 0; } 第4章選擇結(jié)構(gòu)程序設(shè)計(jì)85 4.1選擇結(jié)構(gòu)和條件判斷85 4.2用if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)87 4.2.1用if語(yǔ)句處理選擇結(jié)構(gòu)舉例87 4.2.2if語(yǔ)句的一般形式 89 4.3關(guān)系運(yùn)算符和關(guān)系表達(dá)式91 4.3.1關(guān)系運(yùn)算符及其優(yōu)先次序91 4.3.2關(guān)系表達(dá)式92 4.4邏輯運(yùn)算符和邏輯表達(dá)式92 4.4.1邏輯運(yùn)算符及其優(yōu)先次序93 4.4.2邏輯表達(dá)式94 4.4.3邏輯型變量96 4.5條件運(yùn)算符和條件表達(dá)式97 4.6選擇結(jié)構(gòu)的嵌套99 4.7用switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)102 4.8選擇結(jié)構(gòu)程序綜合舉例105 習(xí)題111
25、 4-4-1 #include <stdio.h> int main() { int a,b,c; printf("請(qǐng)輸入三個(gè)整數(shù):"); scanf("%d,%d,%d",&a,&b,&c); if (a<b) if (b<c) printf("max=%d\n",c); else printf("max=%d\n",b); else if (a<c) prin
26、tf("max=%d\n",c); else printf("max=%d\n",a); return 0; } 4-4-2 #include <stdio.h> int main() { int a,b,c,temp,max; printf("請(qǐng)輸入三個(gè)整數(shù):"); scanf("%d,%d,%d",&a,&b,&c); temp=(a>b)?a:b; /*將a和b中的
27、大者存入temp中*/ max=(temp>c)?temp:c; /*將a和b中的大者與c比較,取最大者*/ printf("三個(gè)整數(shù)的最大數(shù)是%d\n",max); return 0; } 4-5-2 #include <stdio.h> #include <math.h> #define M 1000 int main() { int i,k; printf("請(qǐng)輸入一個(gè)小于%
28、d的整數(shù)i:",M); scanf("%d",&i); while (i>M) {printf("輸入的數(shù)不符合要求,請(qǐng)重新輸入一個(gè)小于%d的整數(shù)i:",M); scanf("%d",&i); } k=sqrt(i); printf("%d的平方根的整數(shù)部分是:%d\n",i,k); return 0; } 4-5 #include <stdio.h> #include <math.h> #
29、define M 1000 int main() { int i,k; printf("請(qǐng)輸入一個(gè)小于%d的整數(shù)i:",M); scanf("%d",&i); if (i>M) {printf("輸入的數(shù)不符合要求,請(qǐng)重新輸入一個(gè)小于%d的整數(shù)i:",M); scanf("%d",&i); } k=sqrt(i); printf("%d的平方根的整
30、數(shù)部分是:%d\n",i,k); return 0; } 4-6. #include <stdio.h> int main() { int x,y; printf("輸入x:"); scanf("%d",&x); if(x<1) /* x<1 */ { y=x; printf("x=%3d, y=x=%d\n" ,x,y); } else if(x<10) /* 1=
31、<x<10 */ { y=2*x-1; printf("x=%d, y=2*x-1=%d\n",x,y); } else /* x>=10 */ { y=3*x-11; printf("x=%d, y=3*x-11=%d\n",x,y); } return 0; } 4-7-1 #include <stdio.h> int main() { int x,y; printf("enter x:"); sca
32、nf("%d",&x); y=-1; if(x!=0) if(x>0) y=1; else y=0; printf("x=%d,y=%d\n",x,y); return 0; } 4-7-2 #include <stdio.h> int main() { int x,y; printf("please enter x:"); scanf("%d",&x); y=0; if
33、(x>=0) if(x>0) y=1; else y=-1; printf("x=%d,y=%d\n",x,y); return 0; } 4-8 #include <stdio.h> int main() { float score; char grade; printf("請(qǐng)輸入學(xué)生成績(jī):"); scanf("%f",&score); while (score>100||score<0) {p
34、rintf("\n 輸入有誤,請(qǐng)重輸"); scanf("%f",&score); } switch((int)(score/10)) {case 10: case 9: grade='A';break; case 8: grade='B';break; case 7: grade='C';break; case 6: grade='D';break; case 5: case 4: case 3: case 2:
35、 case 1: case 0: grade='E'; } printf("成績(jī)是 %5.1f,相應(yīng)的等級(jí)是%c\n ",score,grade); return 0; } 4-9 #include <stdio.h> #include <math.h> int main() { int num,indiv,ten,hundred,thousand,ten_thousand,place; //分別代表個(gè)位,十位,百位,千位,萬(wàn)位和位數(shù) printf("請(qǐng)輸入一
36、個(gè)整數(shù)(0-99999):"); scanf("%d",&num); if (num>9999) place=5; else if (num>999) place=4; else if (num>99) place=3; else if (num>9) place=2; else place=1; printf("位數(shù):%d\n",place); printf("每位數(shù)字為:"
37、); ten_thousand=num/10000; thousand=(int)(num-ten_thousand*10000)/1000; hundred=(int)(num-ten_thousand*10000-thousand*1000)/100; ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10; indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10); switch(place)
38、{case 5:printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv); printf("\n反序數(shù)字為:"); printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand); break; case 4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv); printf(&
39、quot;\n反序數(shù)字為:"); printf("%d%d%d%d\n",indiv,ten,hundred,thousand); break; case 3:printf("%d,%d,%d",hundred,ten,indiv); printf("\n反序數(shù)字為:"); printf("%d%d%d\n",indiv,ten,hundred); break; case 2:printf("%d,%d"
40、;,ten,indiv); printf("\n反序數(shù)字為:"); printf("%d%d\n",indiv,ten); break; case 1:printf("%d",indiv); printf("\n反序數(shù)字為:"); printf("%d\n",indiv); break; } return 0; } 4-10-1 #include <stdio.h>
41、 int main() { int i; double bonus,bon1,bon2,bon4,bon6,bon10; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+100000*0.05; bon6=bon4+100000*0.03; bon10=bon6+400000*0.015; printf("請(qǐng)輸入利潤(rùn)i:"); scanf("%d",&i); if (i<=100000) bonus=i*0.1;
42、 else if (i<=200000) bonus=bon1+(i-100000)*0.075; else if (i<=400000) bonus=bon2+(i-200000)*0.05; else if (i<=600000) bonus=bon4+(i-400000)*0.03; else if (i<=1000000) bonus=bon6+(i-600000)*0.015; else bonus=bon10+(i-1000000)*0.01; printf(&q
43、uot;獎(jiǎng)金是: %10.2f\n",bonus); return 0; } 4-10-2 #include <stdio.h> int main() { int i; double bonus,bon1,bon2,bon4,bon6,bon10; int branch; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+200000*0.05; bon6=bon4+200000*0.03; bon10=bon6+400000*0.015;
44、 printf("請(qǐng)輸入利潤(rùn)i:"); scanf("%d",&i); branch=i/100000; if (branch>10) branch=10; switch(branch) { case 0:bonus=i*0.1;break; case 1:bonus=bon1+(i-100000)*0.075;break; case 2: case 3: bonus=bon2+(i-200000)*0.05;break; case 4: cas
45、e 5: bonus=bon4+(i-400000)*0.03;break; case 6: case 7: case 8: case 9: bonus=bon6+(i-600000)*0.015;break; case 10: bonus=bon10+(i-1000000)*0.01; } printf("獎(jiǎng)金是 %10.2f\n",bonus); return 0; } 4-11 #include <stdio.h> int main() {int t,
46、a,b,c,d; printf("請(qǐng)輸入四個(gè)數(shù):"); scanf("%d,%d,%d,%d",&a,&b,&c,&d); printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d); if (a>b) { t=a;a=b;b=t;} if (a>c) { t=a;a=c;c=t;} if (a>d) { t=a;a=d;d=t;} if (b>c) { t=b;b=c;c=t;
47、} if (b>d) { t=b;b=d;d=t;} if (c>d) { t=c;c=d;d=t;} printf("排序結(jié)果如下: \n"); printf("%d %d %d %d \n" ,a,b,c,d); return 0; } 4-12 #include <stdio.h> int main() { int h=10; float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x
48、,y,d1,d2,d3,d4; printf("請(qǐng)輸入一個(gè)點(diǎn)(x,y):"); scanf("%f,%f",&x,&y); d1=(x-x4)*(x-x4)+(y-y4)*(y-y4); /*求該點(diǎn)到各中心點(diǎn)距離*/ d2=(x-x1)*(x-x1)+(y-y1)*(y-y1); d3=(x-x2)*(x-x2)+(y-y2)*(y-y2); d4=(x-x3)*(x-x3)+(y-y3)*(y-y3); if (d1>1 && d2>1 &
49、& d3>1 && d4>1) h=0; /*判斷該點(diǎn)是否在塔外*/ printf("該點(diǎn)高度為 %d\n",h); return 0; } 第5章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)114 5.1為什么需要循環(huán)控制114 5.2用while語(yǔ)句實(shí)現(xiàn)循環(huán)115 5.3用do…while語(yǔ)句實(shí)現(xiàn)循環(huán)117 5.4用for 語(yǔ)句實(shí)現(xiàn)循環(huán)120 5.5循環(huán)的嵌套124 5.6幾種循環(huán)的比較125 5.7改變循環(huán)執(zhí)行的狀態(tài)125 5.7.1用break語(yǔ)句提前終止循環(huán)126 5.7.2用continue語(yǔ)句提前結(jié)束本次循
50、環(huán)127 5.7.3break語(yǔ)句和continue語(yǔ)句的區(qū)別128 5.8循環(huán)程序舉例131 習(xí)題140 5-2 #include <stdio.h> #include <math.h> // 程序中用到數(shù)學(xué)函數(shù)fabs,應(yīng)包含頭文件math.n int main() { int sign=1,count=0; // sign用來(lái)表示數(shù)值的符號(hào),count用來(lái)統(tǒng)計(jì)循環(huán)次數(shù) double pi=0.0,n=1.0,term=1.0; // pi開(kāi)始代表多項(xiàng)式的值,最后代表π的值
51、, n代表分母,term代表當(dāng)前項(xiàng)的值 while(fabs(term)>=1e-8) // 檢查當(dāng)前項(xiàng)term的絕對(duì)值是否大于或等于10的(-6)次方 { pi=pi+term; // 把當(dāng)前項(xiàng)term累加到pi中 n=n+2; // n+2是下一項(xiàng)的分母 sign=-sign; // sign代表符號(hào),下一項(xiàng)的符號(hào)與上一項(xiàng)符號(hào)相反 term=sign/n;
52、 // 求出下一項(xiàng)的值term count++; // count累加1 } pi=pi*4; // 多項(xiàng)式的和pi乘以4,才是π的近似值 printf("pi=%10.8f\n",pi); // 輸出π的近似值 printf("count=%d\n",count); // 輸出循環(huán)次數(shù) return 0; } 5-3 #include <stdio.h> int main
53、() { int p,r,n,m,temp; printf("請(qǐng)輸入兩個(gè)正整數(shù)n,m:"); scanf("%d,%d,",&n,&m); if (n<m) { temp=n; n=m; m=temp; } p=n*m; while(m!=0) { r=n%m; n=m; m=r; } printf("它們的最大公約數(shù)為:%d\n",n); printf("它
54、們的最小公約數(shù)為:%d\n",p/n); return 0; } 5-4 #include <stdio.h> int main() { char c; int letters=0,space=0,digit=0,other=0; printf("請(qǐng)輸入一行字符:\n"); while((c=getchar())!='\n') { if (c>='a' && c<='z' || c>='A'
55、&& c<='Z') letters++; else if (c==' ') space++; else if (c>='0' && c<='9') digit++; else other++; } printf("字母數(shù):%d\n空格數(shù):%d\n數(shù)字?jǐn)?shù):%d\n其它字符數(shù):%d\n",letters,space,digit,other); return
56、 0; } 5-5 #include <stdio.h> int main() { int a,n,i=1,sn=0,tn=0; printf("a,n=:"); scanf("%d,%d",&a,&n); while (i<=n) { tn=tn+a; /*賦值后的tn為i個(gè) a組成數(shù)的值*/ sn=sn+tn; /*賦值后的sn為多項(xiàng)式前i項(xiàng)之和*/ a=a*10; ++i; } printf("a+aa+aaa+
57、...=%d\n",sn); return 0; } 5-6 #include <stdio.h> int main() {double s=0,t=1; int n; for (n=1;n<=20;n++) { t=t*n; s=s+t; } printf("1!+2!+...+20!=%22.15e\n",s); return 0; } 5-7 #include <stdio.h> int main() { int n1=1
58、00,n2=50,n3=10; double k,s1=0,s2=0,s3=0; for (k=1;k<=n1;k++) /*計(jì)算1到100的和*/ {s1=s1+k;} for (k=1;k<=n2;k++) /*計(jì)算1到50各數(shù)的平方和*/ {s2=s2+k*k;} for (k=1;k<=n3;k++) /*計(jì)算1到10的各倒數(shù)和*/ {s3=s3+1/k;} printf("sum=%15.6f\n",s1+s2+s3); return 0; } 5-8 #in
59、clude <stdio.h> int main() { int i,j,k,n; printf("parcissus numbers are "); for (n=100;n<1000;n++) { i=n/100; j=n/10-i*10; k=n%10; if (n==i*i*i + j*j*j + k*k*k) printf("%d ",n); } printf("\n"); return 0; }
60、 5-9-1 #define M 1000 /*定義尋找范圍*/ #include <stdio.h> int main() { int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10; int i,a,n,s; for (a=2;a<=M;a++) /* a是2-1000之間的整數(shù),檢查它是否完數(shù) */ {n=0; /* n用來(lái)累計(jì)a的因子的個(gè)數(shù) */ s=a; /* s用來(lái)存放尚未求出的因子之和,開(kāi)始時(shí)
61、等于a */ for (i=1;i<a;i++) /* 檢查i是否a的因子 */ if (a%i==0) /* 如果i是a的因子 */ {n++; /* n加1,表示新找到一個(gè)因子 */ s=s-i; /* s減去已找到的因子,s的新值是尚未求出的因子之和 */ switch(n) /* 將找到的因子賦給k1...k9,或k10 */ {case 1: k1=i; break; /* 找出的笫1個(gè)因子賦給k1 */
62、 case 2: k2=i; break; /* 找出的笫2個(gè)因子賦給k2 */ case 3: k3=i; break; /* 找出的笫3個(gè)因子賦給k3 */ case 4: k4=i; break; /* 找出的笫4個(gè)因子賦給k4 */ case 5: k5=i; break; /* 找出的笫5個(gè)因子賦給k5 */ case 6: k6=i; break; /* 找出的笫6個(gè)因子賦給k6 */ case 7:
63、 k7=i; break; /* 找出的笫7個(gè)因子賦給k7 */ case 8: k8=i; break; /* 找出的笫8個(gè)因子賦給k8 */ case 9: k9=i; break; /*找出的笫9個(gè)因子賦給k9 */ case 10: k10=i; break; /* 找出的笫10個(gè)因子賦給k10 */ } } if (s==0) { printf("%d ,Its factors are ",a); if
64、 (n>1) printf("%d,%d",k1,k2); /* n>1表示a至少有2個(gè)因子 */ if (n>2) printf(",%d",k3); /* n>2表示至少有3個(gè)因子,故應(yīng)再輸出一個(gè)因子 */ if (n>3) printf(",%d",k4); /* n>3表示至少有4個(gè)因子,故應(yīng)再輸出一個(gè)因子 */ if (n>4) printf(",%d",k
65、5); /* 以下類似 */ if (n>5) printf(",%d",k6); if (n>6) printf(",%d",k7); if (n>7) printf(",%d",k8); if (n>8) printf(",%d",k9); if (n>9) printf(",%d",k10); printf("\n"); }
66、 } return 0; } 5-9-2 #include <stdio.h> int main() {int m,s,i; for (m=2;m<1000;m++) {s=0; for (i=1;i<m;i++) if ((m%i)==0) s=s+i; if(s==m) {printf("%d,its factors are ",m); for (i=1;i<m;i++) if (m%i==0) printf("
67、;%d ",i); printf("\n"); } } return 0; } 5-10 #include <stdio.h> int main() { int i,n=20; double a=2,b=1,s=0,t; for (i=1;i<=n;i++) { s=s+a/b; t=a, a=a+b, b=t; } printf("sum=%16.10f\n",s); retur
68、n 0; } 5-11 #include <stdio.h> int main() { double sn=100,hn=sn/2; int n; for (n=2;n<=10;n++) { sn=sn+2*hn; /*第n次落地時(shí)共經(jīng)過(guò)的米數(shù)*/ hn=hn/2; /*第n次反跳高度*/ } printf("第10次落地時(shí)共經(jīng)過(guò)%f米\n",sn); printf("第10次反彈%f米\n",hn); return 0;
69、 } 5-12 #include <stdio.h> int main() { int day,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2; /*第1天的桃子數(shù)是第2天桃子數(shù)加1后的2倍.*/ x2=x1; day--; } printf("total=%d\n",x1); return 0; } 5-13 #include <stdio.h> #include <mat
70、h.h> int main() { float a,x0,x1; printf("enter a positive number:"); scanf("%f",&a); x0=a/2; x1=(x0+a/x0)/2; do {x0=x1; x1=(x0+a/x0)/2; }while(fabs(x0-x1)>=1e-5); printf("The square root of %5.2f is %8.5f\n",a,x1); retu
71、rn 0; } 5-14 #include <stdio.h> #include <math.h> int main() {double x1,x0,f,f1; x1=1.5; do {x0=x1; f=((2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x1=x0-f/f1; }while(fabs(x1-x0)>=1e-5); printf("The root of equation is %5.2f\n",x1);
72、 return 0; } 5-15 #include <stdio.h> #include <math.h> int main() {float x0,x1,x2,fx0,fx1,fx2; do {printf("enter x1 & x2:"); scanf("%f,%f",&x1,&x2); fx1=x1*((2*x1-4)*x1+3)-6; fx2=x2*((2*x2-4)*x2+3)-6; }while(fx1*fx2>
73、0); do {x0=(x1+x2)/2; fx0=x0*((2*x0-4)*x0+3)-6; if ((fx0*fx1)<0) {x2=x0; fx2=fx0; } else {x1=x0; fx1=fx0; } }while(fabs (fx0)>=1e-5); printf("x=%6.2f\n",x0); return 0; } 5-16 #include <stdio.h> int main()
74、 {int i,j,k; for (i=0;i<=3;i++) {for (j=0;j<=2-i;j++) printf(" "); for (k=0;k<=2*i;k++) printf("*"); printf("\n"); } for (i=0;i<=2;i++) {for (j=0;j<=i;j++) printf(" "); for (k=0;k<=4-2*
75、i;k++) printf("*"); printf("\n"); } return 0; } 5-17 #include <stdio.h> int main() { char i,j,k; /*是a的對(duì)手;j是b的對(duì)手;k是c的對(duì)手*/ for (i='x';i<='z';i++) for (j='x';j<='z';j++) if (i!=j
76、) for (k='x';k<='z';k++) if (i!=k && j!=k) if (i!='x' && k!='x' && k!='z') printf("A--%c\nB--%c\nC--%c\n",i,j,k); return 0; } 第6章利用數(shù)組處理批量數(shù)據(jù)142 6.1怎樣定義和引用一維數(shù)組142 6.1.1怎樣定義一維數(shù)組143 6.1.2怎樣引用一維數(shù)組元素144 6.1.3一維數(shù)組的初始化145 6.1.4一維數(shù)組程序舉例146 6
- 溫馨提示:
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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 川渝旅游日記成都重慶城市介紹推薦景點(diǎn)美食推薦
- XX國(guó)有企業(yè)黨委書(shū)記個(gè)人述責(zé)述廉報(bào)告及2025年重點(diǎn)工作計(jì)劃
- 世界濕地日濕地的含義及價(jià)值
- 20XX年春節(jié)節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)人到場(chǎng)心到崗
- 大唐女子圖鑒唐朝服飾之美器物之美繪畫(huà)之美生活之美
- 節(jié)后開(kāi)工第一課輕松掌握各要點(diǎn)節(jié)后常見(jiàn)的八大危險(xiǎn)
- 廈門城市旅游介紹廈門景點(diǎn)介紹廈門美食展示
- 節(jié)后開(kāi)工第一課復(fù)工復(fù)產(chǎn)十注意節(jié)后復(fù)工十檢查
- 傳統(tǒng)文化百善孝為先孝道培訓(xùn)
- 深圳城市旅游介紹景點(diǎn)推薦美食探索
- 節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)勿忘安全本心人人講安全個(gè)個(gè)會(huì)應(yīng)急
- 預(yù)防性維修管理
- 常見(jiàn)閥門類型及特點(diǎn)
- 設(shè)備預(yù)防性維修
- 2.乳化液泵工理論考試試題含答案