《C語言程序設(shè)計(jì)》課后習(xí)題答案第四版譚浩強(qiáng)_第1頁
《C語言程序設(shè)計(jì)》課后習(xí)題答案第四版譚浩強(qiáng)_第2頁
《C語言程序設(shè)計(jì)》課后習(xí)題答案第四版譚浩強(qiáng)_第3頁
《C語言程序設(shè)計(jì)》課后習(xí)題答案第四版譚浩強(qiáng)_第4頁
《C語言程序設(shè)計(jì)》課后習(xí)題答案第四版譚浩強(qiáng)_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第1章程序設(shè)計(jì)和C語言11.1 什么是計(jì)算機(jī)程序11.2 什么是計(jì)算機(jī)語言11.3 C 語言的發(fā)展及其特點(diǎn) 31.4 最簡單的 C 語言程序 51.4.1 最簡單的C語言程序舉例61.4.2 C 語言程序的結(jié)構(gòu)101.5 運(yùn)行C程序的步驟與方法121.6 程序設(shè)計(jì)的任務(wù)141-5 #include <stdio.h>int main ( )printf (”*nn");printf("Very Good!nn");printf (”*n");return 0;1-6#include <stdio.h>int main()int a

2、,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("The largest number is %dn",max);return 0;第2章算法一一程序的靈魂162.1 什么是算法162.2 簡單的算法舉例172.3 算法的特性212.4 怎樣表示一個(gè)算法222.4.1 用自然語言表示算法222.4.2 用流程圖表示算法222.

3、4.3 三種基本結(jié)構(gòu)和改進(jìn)的流程圖262.4.4 用NS流程圖表示算法282.4.5 用偽代碼表示算法312.4.6 用計(jì)算機(jī)語言表示算法322.5 結(jié)構(gòu)化程序設(shè)計(jì)方法34習(xí)題36第章最簡單的C程序設(shè)計(jì)一一順序程序設(shè)計(jì)373.1 順序程序設(shè)計(jì)舉例373.2 數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算393.2.1 常量和變量393.2.2 數(shù)據(jù)類型423.2.3 整型數(shù)據(jù)443.2.4 字符型數(shù)據(jù)473.2.5 浮點(diǎn)型數(shù)據(jù)493.2.6 怎樣確定常量的類型513.2.7 運(yùn)算符和表達(dá)式523.3 C語句573.3.1 C語句的作用和分類 573.3.2 最基本的語句一一賦值語句593.4 數(shù)據(jù)的輸入輸出653.4

4、.1 輸入輸出舉例653.4.2 有關(guān)數(shù)據(jù)輸入輸出的概念 673.4.3 用printf函數(shù)輸出數(shù)據(jù)683.4.4 用scanf函數(shù)輸入數(shù)據(jù)753.4.5 字符數(shù)據(jù)的輸入輸出 78習(xí)題 823-1 #include <stdio.h>#include <math.h>int main()float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%fn",p);return 0;3-2-1#include <stdio.h>#include <math.h>int main()float r5,

5、r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;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);/ 存活期存款?;钇诶⒚恳患径冉Y(jié)算一次printf("p1=%fn",

6、p1);/輸出按第1 方案得到的本息和printf("p2=%fn",p2);/輸出按第2 方案得到的本息和printf("p3=%fn",p3);/輸出按第3 方案得到的本息和printf("p4=%fn",p4);/輸出按第4 方案得到的本息和printf("p5=%fn",p5);/輸出按第5 方案得到的本息和return 0;3-2-2#include <stdio.h>#include <math.h> int main() double r5,r3,r2,r1,r0,p,p1,p

7、2,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 年期,到期后將本息再存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);/ 存活期存款。活期利息每一季度結(jié)算一次printf("p1=%fn",p1);/輸出按

8、第1 方案得到的本息和printf("p2=%fn",p2);/輸出按第2 方案得到的本息和printf("p3=%fn",p3);/輸出按第3 方案得到的本息和printf("p4=%fn",p4);/輸出按第4 方案得到的本息和printf("p5=%fn",p5);/輸出按第5 方案得到的本息和r1=0.0414;return 0;3-2-3#include <stdio.h>#include <math.h> int main() float r5,r3,r2,r1,r0,p,p1,

9、p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;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);/ 存活期存款?;钇诶⒚恳患径冉Y(jié)算一次/ 輸出按第1方案得到的本息和/ 輸出按第2方案得到的本息和/ 輸出按第3方案得

10、到的本息和/ 輸出按第4方案得到的本息和/ 輸出按第5方案得到的本息和printf("p1=%10.2fn",p1);printf("p2=%10.2fn",p2);printf("p3=%10.2fn",p3);printf("p4=%10.2fn",p4);printf("p5=%10.2fn",p5);return 0;3-3.#include <stdio.h>#include <math.h>int main()float d=300000,p=6000,r=0

11、.01,m;m=log10(p/(p -d*r)/log10(1+r);printf("m=%6.2fn",m);return 0;3-4#include <stdio.h>int main()int c1,c2;c1=197;c2=198;printf("c1=%c,c2=%cn",c1,c2);printf("c1=%d , c2=%dn",c1,c2);return 0;3-5#include <stdio.h>int main()int a,b;float x,y;char c1,c2;scanf(&q

12、uot;a=%d b=%d",&a,&b);scanf("%f %e",&x,&y);scanf("%c%c",&c1,&c2);printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn",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='

13、a'c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf("passwor is %c%c%c%c%cn",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);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vq

14、=3.0/4.0*pi*r*r*r;vz=pi*r*r*h;/ 要求輸入圓半徑r 和圓柱高h(yuǎn)/ 計(jì)算圓周長l/ 計(jì)算圓面積s/ 計(jì)算圓球表面積sq/ 計(jì)算圓球體積vq/ 計(jì)算圓柱體積vzprintf(" 圓周長為 :l=%6.2fn",l);printf(" 圓面積為 :s=%6.2fn",s);printf(" 圓球表面積為 :sq=%6.2fn",sq);printf(" 圓球體積為 :v=%6.2fn",vq);printf(" 圓柱體積為 :vz=%6.2fn",vz);return 0

15、;3-8-1#include <stdio.h>int main()int c1,c2;/整型定義printf(" 請(qǐng)輸入兩個(gè)整數(shù)c1,c2:");scanf("%d,%d",&c1,&c2);printf(" 按字符輸出結(jié)果:n");printf("%c,%cn",c1,c2);printf(" 按 ASCII 碼輸出結(jié)果為:n");printf("%d,%dn",c1,c2);return 0;3-8-2#include <stdio.h

16、>int main()/定義字符型變量/定義整型變量/賦值給整型變量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("%c,%cn",i1,i2);printf(" 按整數(shù)輸出結(jié)果:n");printf("%d,%dn",c1,c2);return 0;3-8-3#include <

17、;stdio.h>int main()/定義為字符型/ 定義為整型/將整數(shù)賦值給字符變量char c1,c2;int i1,i2;printf(" 請(qǐng)輸入兩個(gè)整數(shù)i1,i2:");scanf("%d,%d",&i1,&i2);c1=i1;c2=i2;printf(" 按字符輸出結(jié)果:n");printf("%c,%cn",c1,c2);printf(" 按整數(shù)輸出結(jié)果:n");printf("%d,%dn",c1,c2);return 0;3-8#inc

18、lude <stdio.h>int main()char c1,c2;printf(" 請(qǐng)輸入兩個(gè)字符c1,c2:");c1=getchar();c2=getchar();printf(" 用 putchar 語句輸出結(jié)果為 :");putchar(c1);putchar(c2);printf("n");printf(" 用 printf 語句輸出結(jié)果為:");printf("%c %cn",c1,c2);return 0;第 4 章選擇結(jié)構(gòu)程序設(shè)計(jì)854.1 選擇結(jié)構(gòu)和條件判斷85

19、4.2 用 if 語句實(shí)現(xiàn)選擇結(jié)構(gòu)874.2.1 用 if 語句處理選擇結(jié)構(gòu)舉例 874.2.21 f 語句的一般形式 894.3 關(guān)系運(yùn)算符和關(guān)系表達(dá)式914.3.1 關(guān)系運(yùn)算符及其優(yōu)先次序914.3.2 關(guān)系表達(dá)式924.4 邏輯運(yùn)算符和邏輯表達(dá)式924.4.1 邏輯運(yùn)算符及其優(yōu)先次序934.4.2 邏輯表達(dá)式944.4.3 邏輯型變量964.5 條件運(yùn)算符和條件表達(dá)式974.6 選擇結(jié)構(gòu)的嵌套 994.7 用 switch 語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)1024.8 選擇結(jié)構(gòu)程序綜合舉例 105習(xí)題 1114-4-1#include <stdio.h>int main()int a,

20、b,c;printf(" 請(qǐng)輸入三個(gè)整數(shù):");scanf("%d,%d,%d",&a,&b,&c);if (a<b)if (b<c)printf("max=%dn",c);elseprintf("max=%dn",b);else if (a<c)printf("max=%dn",c);elseprintf("max=%dn",a);return 0;4-4-2#include <stdio.h>int main() in

21、t a,b,c,temp,max;printf(" 請(qǐng)輸入三個(gè)整數(shù):");scanf("%d,%d,%d",&a,&b,&c);temp=(a>b)?a:b;/*將 a 和 b 中的大者存入 temp 中*/max=(temp>c)?temp:c;/*將 a 和 b 中的大者與 c 比較 ,取最大者 */printf(" 三個(gè)整數(shù)的最大數(shù)是%dn",max);return 0;4-5-2#include <stdio.h>#include <math.h>#define M

22、1000int main()int i,k;printf(" 請(qǐng)輸入一個(gè)小于%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ù)部分是: %dn",i,k);return 0;4-5#include <stdio.h>#include <math.h>#d

23、efine M 1000int main()int i,k;printf(" 請(qǐng)輸入一個(gè)小于%d 的整數(shù) i:",M);scanf("%d",&i);if (i>M):",M);printf(" 輸入的數(shù)不符合要求,請(qǐng)重新輸入一個(gè)小于%d 的整數(shù)scanf("%d",&i);k=sqrt(i);printf("%d 的平方根的整數(shù)部分是: %dn",i,k);return 0;4-6.#include <stdio.h> int main() int x,y;p

24、rintf(" 輸入 x:");scanf("%d",&x);if(x<1)/* x<1 */ y=x;printf("x=%3d, y=x=%dn" ,x,y);else if(x<10)/* 1=<x<10 */ y=2*x -1;printf("x=%d, y=2*x -1=%dn",x,y);else/* x>=10*/ y=3*x -11;printf("x=%d, y=3*x -11=%dn",x,y);return 0;4-7-1#inc

25、lude <stdio.h>int main()int x,y;printf("enter x:");scanf("%d",&x);y= -1;if(x!=0)if(x>0)y=1;elsey=0;printf("x=%d,y=%dn",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(x>

26、=0)if(x>0) y=1;else y=-1;printf("x=%d,y=%dn",x,y);return 0;4-8#include <stdio.h> int main() float score;char grade;printf(" 請(qǐng)輸入學(xué)生成績:");scanf("%f",&score);while (score>100|score<0)printf("n 輸入有誤 ,請(qǐng)重輸 ");scanf("%f",&score);switch

27、(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:case 1:case 0: grade='E'printf(" 成績是 %5.1f, 相應(yīng)的等級(jí)是%cn ",score,grade);return 0;4-9 #include <stdio.h>#

28、include <math.h> int main()int num,indiv,ten,hundred,thousand,ten_thousand,place; /分別代表個(gè)位,十位,百位 ,千位,萬位和位數(shù)printf(" 請(qǐng)輸入一個(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;p

29、rintf(" 位數(shù) :%dn",place);printf(" 每位數(shù)字為 :");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*

30、1000-hundred*100-ten*10);switch(place)case 5:printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);printf("n 反序數(shù)字為 :");printf("%d%d%d%d%dn",indiv,ten,hundred,thousand,ten_thousand);break;case 4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);printf

31、("n 反序數(shù)字為 :");printf("%d%d%d%dn",indiv,ten,hundred,thousand);break;case 3:printf("%d,%d,%d",hundred,ten,indiv);printf("n 反序數(shù)字為 :");printf("%d%d%dn",indiv,ten,hundred);break;case 2:printf("%d,%d",ten,indiv);printf("n 反序數(shù)字為 :");prin

32、tf("%d%dn",indiv,ten);break;case 1:printf("%d",indiv);printf("n 反序數(shù)字為 :");printf("%dn",indiv);break;return 0;4-10-1#include <stdio.h> 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

33、=bon4+100000*0.03;bon10=bon6+400000*0.015;printf(" 請(qǐng)輸入利潤 i:");scanf("%d",&i);if (i<=100000)bonus=i*0.1;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<=10000

34、00)bonus=bon6+(i-600000)*0.015;elsebonus=bon10+(i -1000000)*0.01;printf(" 獎(jiǎng)金是 : %10.2fn",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=

35、bon6+400000*0.015;printf(" 請(qǐng)輸入利潤 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:case 5: bonus=bon4+(i -400000)*0.03;break;

36、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.2fn",bonus);return 0;4-11#include <stdio.h>int main()int t,a,b,c,d;printf(" 請(qǐng)輸入四個(gè)數(shù):");scanf("%d,%d,%d,%d",&a,&b,&c,&d);printf(&qu

37、ot;a=%d,b=%d,c=%d,d=%dn",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;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 mai

38、n()int h=10;float x1=2,y1=2,x2= -2,y2=2,x3= -2,y3=-2,x4=2,y4=-2,x,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 -

39、y3);if (d1>1 && d2>1 && d3>1 && d4>1) h=0; /* 判斷該點(diǎn)是否在塔外 */printf(" 該點(diǎn)高度為 %dn",h);return 0;第 5 章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)1145.1 為什么需要循環(huán)控制 1145.2 用 while 語句實(shí)現(xiàn)循環(huán)1155.3 用dowhile語句實(shí)現(xiàn)循環(huán)1175.4 用 for 語句實(shí)現(xiàn)循環(huán)1205.5 循環(huán)的嵌套 1245.6 幾種循環(huán)的比較1255.7 改變循環(huán)執(zhí)行的狀態(tài)1255.7.1 用 break 語句提前終止循環(huán)1265.

40、7.2 用 continue 語句提前結(jié)束本次循環(huán)1275.7.3 break 語句和 continue 語句的區(qū)別 1285.8 循環(huán)程序舉例 131習(xí)題 1405-2#include <stdio.h>#include <math.h>/程序中用到數(shù)學(xué)函數(shù)fabs,應(yīng)包含頭文件math.nint main()int sign=1,count=0;/ sign 用來表示數(shù)值的符號(hào),count 用來統(tǒng)計(jì)循環(huán)次數(shù)double pi=0.0,n=1.0,term=1.0;term 代表當(dāng)前項(xiàng)的值/ pi開始代表多項(xiàng)式的值,最后代表兀的值,n代表分母,while(fabs(t

41、erm)>=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;/ 求出下一項(xiàng)的值termcount+;/ count 累加 1pi=pi*4;/多項(xiàng)式的和pi乘以4,才是兀的近似值/輸出兀的近似值/ 輸出循環(huán)次數(shù)printf("pi=%10.8fn",pi);printf("count=%dn",count);return

42、 0;5-3#include <stdio.h>int main()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ù)為:%dn",n);printf(" 它們的最小公約數(shù)為:%dn",p/n);return 0;5-4#include <stdio.h&

43、gt;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' && c<='Z') letters+;else if (c=' ')space+;else if (c>='0' && c&

44、lt;='9')digit+;elseother+;printf(" 字母數(shù) :%dn 空格數(shù) :%dn 數(shù)字?jǐn)?shù) :%dn 其它字符數(shù):%dn",letters,space,digit,other);return 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+t

45、n; /* 賦值后的 sn 為多項(xiàng)式前i 項(xiàng)之和 */a=a*10;+i;printf("a+aa+aaa+.=%dn",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=100,n2=50,n3=10;double k

46、,s1=0,s2=0,s3=0;for (k=1;k<=n1;k+)/* 計(jì)算 1 至U 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.6fn",s1+s2+s3);return 0;5-8#include <stdio.h>int main()int i,j,k,n;printf("parcissus numbers a

47、re ");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;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ù),檢

48、查它是否完數(shù)*/n=0;/* n 用來累計(jì)a 的因子的個(gè)數(shù)*/s=a;/* s 用來存放尚未求出的因子之和,開始時(shí)等于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 */case 2:k2=i; break;/* 找出的笫2 個(gè)因子賦給k2 */cas

49、e 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: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è)因子

50、賦給k10 */if (s=0)printf("%d ,Its factors are ",a);/* n>1 表示 a 至少有 2 個(gè)因子 */* n>2 表示至少有3 個(gè)因子,故應(yīng)再輸出一個(gè)/* n>3 表示至少有4 個(gè)因子,故應(yīng)再輸出一個(gè)/* 以下類似 */if (n>1)printf("%d,%d",k1,k2);if (n>2)printf(",%d",k3);*/if (n>3)printf(",%d",k4);*/if (n>4)printf(",%

51、d",k5);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");return 0;5-9-2#include <stdio.h>int main()int m,s,i;for (m=2;m<100

52、0;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("%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;print

53、f("sum=%16.10fn",s);return 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)過的米數(shù)*/hn=hn/2; /* 第 n 次反跳高度 */printf("第10次落地時(shí)共經(jīng)過 £米坨"刈);printf("第10次反彈f米坨"加);return 0;5-12#include <stdio.h>int main()

54、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=%dn",x1);return 0;5-13#include <stdio.h>#include <math.h>int main()float a,x0,x1;printf("enter a positive number:");scanf("%f",&a);x0=a/2;x1=(x0+

55、a/x0)/2;dox0=x1;x1=(x0+a/x0)/2;while(fabs(x0 -x1)>=1e -5);printf("The square root of %5.2f is %8.5fn",a,x1);return 0;5-14 #include <stdio.h>#include <math.h> int main()double x1,x0,f,f1;x1=1.5;dox0=x1;f=(2*x0 -4)*x0+3)*x0 -6;f1=(6*x0 -8)*x0+3;x1=x0 -f/f1;while(fabs(x1 -x0)&g

56、t;=1e -5);printf("The root of equation is %5.2fn",x1);return 0;5-15#include <stdio.h>#include <math.h>int main()float x0,x1,x2,fx0,fx1,fx2;doprintf("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

57、(fx1*fx2>0);dox0=(x1+x2)/2;fx0=x0*(2*x0 -4)*x0+3) -6;if (fx0*fx1)<0)x2=x0;fx2=fx0;elsex1=x0;fx1=fx0;while(fabs (fx0)>=1e -5);printf("x=%6.2fn",x0);return 0;5-16#include <stdio.h>int main()int i,j,k;for (i=0;i<=3;i+)for (j=0;j<=2 -i;j+)printf(" ");for (k=0;k&l

58、t;=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*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'

59、;i+)for (j='x'j<='z'j+)if (i!=j)for (k='x'k<='z'k+)if (i!=k && j!=k)if (i!='x' && k!='x' && k!='z')printf("A -%cnB -%cnC-%cn",i,j,k);return 0;第 6 章利用數(shù)組處理批量數(shù)據(jù)1426.1 怎樣定義和引用一維數(shù)組1426.1.1 怎樣定義一維數(shù)組1436.1.2 怎樣引用一維數(shù)組元素1446.1.3 一維數(shù)組的初始化1456.1.4 一維數(shù)組程序舉例1466.2 怎樣定義和引用二維數(shù)組1486.2.1 怎樣定義二維數(shù)組1496.2.2 怎樣引用二維數(shù)組的元素1506.2.3 二維數(shù)組的初始化1516.2.4 二維數(shù)組程序舉例1526.3 字符數(shù)組 1546.3.1 怎樣定義字符數(shù)組1546.3.2 字符數(shù)組的初始化1556.3.3 怎

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論