收藏 分享(赏)

c 程序设计 第四版答案.doc

上传人:hwpkd79526 文档编号:8090436 上传时间:2019-06-08 格式:DOC 页数:112 大小:417.50KB
下载 相关 举报
c 程序设计 第四版答案.doc_第1页
第1页 / 共112页
c 程序设计 第四版答案.doc_第2页
第2页 / 共112页
c 程序设计 第四版答案.doc_第3页
第3页 / 共112页
c 程序设计 第四版答案.doc_第4页
第4页 / 共112页
c 程序设计 第四版答案.doc_第5页
第5页 / 共112页
点击查看更多>>
资源描述

1、第 1 章程序设计和 C 语言 11.1 什么是计算机程序 11.2 什么是计算机语言 11.3C 语言的发展及其特点 31.4 最简单的 C 语言程序 51.4.1 最简单的 C 语言程序举例 61.4.2C 语言程序的结构 101.5 运行 C 程序的步骤与方法 121.6 程序设计的任务 141-5 #include int main ( ) printf (“*nn“);printf(“ Very Good!nn“);printf (“*n“);return 0;1-6#include int main()int a,b,c,max;printf(“please input a,b,c

2、:n“);scanf(“%d,%d,%d“,max=a;if (max#include 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 #include int main()float 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); / 先存

3、 2 年期,到期后将本息再存 3 年期 p3=p*(1+3*r3)*(1+2*r2); / 先存 3 年期,到期后将本息再存 2 年期 p4=p*pow(1+r1,5); / 存 1 年期,到期后将本息存再存 1 年期,连续存 5 次 p5=p*pow(1+r0/4,4*5); / 存活期存款。活期利息每一季度结算一次 printf(“p1=%fn“,p1); / 输出按第 1 方案得到的本息和 printf(“p2=%fn“,p2); / 输出按第 2 方案得到的本息和 printf(“p3=%fn“,p3); / 输出按第 3 方案得到的本息和 printf(“p4=%fn“,p4); /

4、 输出按第 4 方案得到的本息和 printf(“p5=%fn“,p5); / 输出按第 5 方案得到的本息和 return 0;3-2-2#include #include 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 年期,到期后将本息再存 3 年期 p3=p*(1+3*r3)*(1+2*r2); / 先存 3 年

5、期,到期后将本息再存 2 年期 p4=p*pow(1+r1,5); / 存 1 年期,到期后将本息存再存 1 年期,连续存 5 次 p5=p*pow(1+r0/4,4*5); / 存活期存款。活期利息每一季度结算一次 printf(“p1=%fn“,p1); / 输出按第 1 方案得到的本息和 printf(“p2=%fn“,p2); / 输出按第 2 方案得到的本息和 printf(“p3=%fn“,p3); / 输出按第 3 方案得到的本息和 printf(“p4=%fn“,p4); / 输出按第 4 方案得到的本息和 printf(“p5=%fn“,p5); / 输出按第 5 方案得到的

6、本息和 return 0;3-2-3#include #include int main()float 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 年期,到期后将本息再存 3 年期 p3=p*(1+3*r3)*(1+2*r2); / 先存 3 年期,到期后将本息再存 2 年期 p4=p*pow(1+r1,5); / 存 1 年期,到期后将本息存再存

7、1 年期,连续存 5 次 p5=p*pow(1+r0/4,4*5); / 存活期存款。活期利息每一季度结算一次 printf(“p1=%10.2fn“,p1); / 输出按第 1 方案得到的本息和 printf(“p2=%10.2fn“,p2); / 输出按第 2 方案得到的本息和 printf(“p3=%10.2fn“,p3); / 输出按第 3 方案得到的本息和 printf(“p4=%10.2fn“,p4); / 输出按第 4 方案得到的本息和 printf(“p5=%10.2fn“,p5); / 输出按第 5 方案得到的本息和 return 0;3-3.#include #includ

8、e int main()float d=300000,p=6000,r=0.01,m;m=log10(p/(p-d*r)/log10(1+r);printf(“m=%6.2fn“,m);return 0;3-4#include 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 int main()int a,b;float x,y;char c1,c2;scanf(“a=%d b=%d“,scanf(“%f %e“,sc

9、anf(“%c%c“,printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn“,a,b,x,y,c1,c2);return 0;3-6#include int main()char c1=C,c2=h,c3=i,c4=n,c5=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 int main ()float h,r,l,s,sq,vq,vz;float pi=3.141526;printf(“请输

10、入圆半径 r,圆柱高 h“);scanf(“%f,%f“, /要求输入圆半径 r 和圆柱高 h l=2*pi*r; /计算圆周长 ls=r*r*pi; /计算圆面积 ssq=4*pi*r*r; /计算圆球表面积 sqvq=3.0/4.0*pi*r*r*r; /计算圆球体积 vqvz=pi*r*r*h; /计算圆柱体积 vzprintf(“圆周长为: l=%6.2fn“,l);printf(“圆面积为: s=%6.2fn“,s); printf(“圆球表面积为: sq=%6.2fn“,sq);printf(“圆球体积为: v=%6.2fn“,vq);printf(“圆柱体积为: vz=%6.2f

11、n“,vz);return 0;3-8-1#include int main()int c1,c2; /整型定义 printf(“请输入两个整数 c1,c2:“);scanf(“%d,%d“,printf(“按字符输出结果:n“);printf(“%c,%cn“,c1,c2);printf(“按 ASCII 码输出结果为 :n“);printf(“%d,%dn“,c1,c2);return 0;3-8-2#include int main()char c1,c2; /定义字符型变量int i1,i2; /定义整型变量 printf(“请输入两个字符 c1,c2:“);scanf(“%c,%c“

12、,i1=c1; /赋值给整型变量 i2=c2;printf(“按字符输出结果:n“);printf(“%c,%cn“,i1,i2);printf(“按整数输出结果:n“);printf(“%d,%dn“,c1,c2);return 0;3-8-3#include int main()char c1,c2; /定义为字符型 int i1,i2; /定义为整型 printf(“请输入两个整数 i1,i2:“);scanf(“%d,%d“,c1=i1; /将整数赋值给字符变量 c2=i2;printf(“按字符输出结果:n“);printf(“%c,%cn“,c1,c2);printf(“按整数输出

13、结果:n“);printf(“%d,%dn“,c1,c2);return 0;3-8#include int main()char c1,c2;printf(“请输入两个字符 c1,c2:“);c1=getchar();c2=getchar();printf(“用 putchar 语句输出结果为:“);putchar(c1);putchar(c2);printf(“n“);printf(“用 printf 语句输出结果为:“);printf(“%c %cn“,c1,c2);return 0;第 4 章选择结构程序设计 854.1 选择结构和条件判断 854.2 用 if 语句实现选择结构 87

14、4.2.1 用 if 语句处理选择结构举例 874.2.2if 语句的一般形式 894.3 关系运算符和关系表达式 914.3.1 关系运算符及其优先次序 914.3.2 关系表达式 924.4 逻辑运算符和逻辑表达式 924.4.1 逻辑运算符及其优先次序 934.4.2 逻辑表达式 944.4.3 逻辑型变量 964.5 条件运算符和条件表达式 974.6 选择结构的嵌套 994.7 用 switch 语句实现多分支选择结构 1024.8 选择结构程序综合举例 105习题 1114-4-1#include int main()int a,b,c;printf(“请输入三个整数:“);sca

15、nf(“%d,%d,%d“,if (aint main() int a,b,c,temp,max;printf(“请输入三个整数:“);scanf(“%d,%d,%d“,temp=(ab)?a:b; /*将 a 和 b 中的大者存入 temp 中*/max=(tempc)?temp:c; /*将 a 和 b 中的大者与 c 比较,取最大者*/printf(“三个整数的最大数是%dn“,max);return 0;4-5-2#include #include #define M 1000int main()int i,k; printf(“请输入一个小于%d 的整数 i:“,M);scanf(“

16、%d“,while (iM) printf(“输入的数不符合要求,请重新输入一个小于%d 的整数 i:“,M);scanf(“%d“,k=sqrt(i);printf(“%d 的平方根的整数部分是:%dn“,i,k);return 0;4-5#include #include #define M 1000int main()int i,k; printf(“请输入一个小于%d 的整数 i:“,M);scanf(“%d“,if (iM) printf(“输入的数不符合要求,请重新输入一个小于%d 的整数 i:“,M);scanf(“%d“,k=sqrt(i);printf(“%d 的平方根的整数

17、部分是:%dn“,i,k);return 0;4-6.#include int main() int x,y;printf(“输入 x:“);scanf(“%d“,if(x=10 */ y=3*x-11;printf(“x=%d, y=3*x-11=%dn“,x,y);return 0;4-7-1#include int main()int x,y;printf(“enter x:“);scanf(“%d“,y=-1;if(x!=0)if(x0)y=1;elsey=0; printf(“x=%d,y=%dn“,x,y);return 0;4-7-2#include int main()int

18、x,y;printf(“please enter x:“);scanf(“%d“,y=0;if(x=0)if(x0) y=1;else y=-1; printf(“x=%d,y=%dn“,x,y);return 0;4-8#include int main() float score;char grade;printf(“请输入学生成绩:“);scanf(“%f“,while (score100|score#include int main()int num,indiv,ten,hundred,thousand,ten_thousand,place; /分别代表个位,十位,百位,千位,万位和位

19、数 printf(“请输入一个整数(0-99999):“);scanf(“%d“,if (num9999)place=5;else if (num999)place=4;else if (num99)place=3;else if (num9)place=2;else place=1;printf(“位数:%dn“,place);printf(“每位数字为:“);ten_thousand=num/10000;thousand=(int)(num-ten_thousand*10000)/1000;hundred=(int)(num-ten_thousand*10000-thousand*1000

20、)/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)case 5:printf(“%d,%d,%d,%d,%d“,ten_thousand,thousand,hundred,ten,indiv);printf(“n 反序数字为:“);printf(“%d%d%d%d%dn“,indiv,ten,hundred,thousand,ten_thousa

21、nd);break;case 4:printf(“%d,%d,%d,%d“,thousand,hundred,ten,indiv);printf(“n 反序数字为:“);printf(“%d%d%d%dn“,indiv,ten,hundred,thousand);break;case 3:printf(“%d,%d,%d“,hundred,ten,indiv);printf(“n 反序数字为:“);printf(“%d%d%dn“,indiv,ten,hundred);break;case 2:printf(“%d,%d“,ten,indiv);printf(“n 反序数字为:“);print

22、f(“%d%dn“,indiv,ten);break;case 1:printf(“%d“,indiv);printf(“n 反序数字为:“);printf(“%dn“,indiv);break;return 0;4-10-1#include 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(“请输入利润 i:

23、“);scanf(“%d“,if (iint 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;printf(“请输入利润 i:“);scanf(“%d“,branch=i/100000;if (branch10) branch=10;switch(branch) case 0:bonus=i*0.1;brea

24、k;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;case 6:case 7:case 8:case 9: bonus=bon6+(i-600000)*0.015;break;case 10: bonus=bon10+(i-1000000)*0.01;printf(“奖金是 %10.2fn“,bonus);return 0;4-11#include int main()

25、int t,a,b,c,d;printf(“请输入四个数:“);scanf(“%d,%d,%d,%d“,printf(“a=%d,b=%d,c=%d,d=%dn“,a,b,c,d);if (ab) t=a;a=b;b=t;if (ac) t=a;a=c;c=t;if (ad) t=a;a=d;d=t;if (bc) t=b;b=c;c=t;if (bd) t=b;b=d;d=t;if (cd) t=c;c=d;d=t;printf(“排序结果如下: n“);printf(“%d %d %d %d n“ ,a,b,c,d);return 0;4-12#include int main()int

26、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(“请输入一个点(x,y):“);scanf(“%f,%f“,d1=(x-x4)*(x-x4)+(y-y4)*(y-y4); /*求该点到各中心点距离*/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 (d11 /*判断该点是否在塔外*/printf(“该点高度为 %dn“,h);return 0;第

27、 5 章循环结构程序设计 1145.1 为什么需要循环控制 1145.2 用 while 语句实现循环 1155.3 用 dowhile 语句实现循环 1175.4 用 for 语句实现循环 1205.5 循环的嵌套 1245.6 几种循环的比较 1255.7 改变循环执行的状态 1255.7.1 用 break 语句提前终止循环 1265.7.2 用 continue 语句提前结束本次循环 1275.7.3break 语句和 continue 语句的区别 1285.8 循环程序举例 131习题 1405-2#include #include / 程序中用到数学函数 fabs,应包含头文件 m

28、ath.nint main()int sign=1,count=0; / sign 用来表示数值的符号,count 用来统计循环次数double pi=0.0,n=1.0,term=1.0; / pi 开始代表多项式的值,最后代表 的值, n 代表分母,term 代表当前项的值while(fabs(term)=1e-8) / 检查当前项 term 的绝对值是否大于或等于 10 的(-6)次方pi=pi+term; / 把当前项 term 累加到 pi 中n=n+2; / n+2 是下一项的分母 sign=-sign; / sign 代表符号,下一项的符号与上一项符号相反term=sign/n;

29、 / 求出下一项的值 termcount+; / count 累加 1pi=pi*4; / 多项式的和 pi 乘以 4,才是 的近似值printf(“pi=%10.8fn“,pi); / 输出 的近似值 printf(“count=%dn“,count); / 输出循环次数return 0;5-3#include int main()int p,r,n,m,temp;printf(“请输入两个正整数 n,m:“);scanf(“%d,%d,“,if (nint main()char c;int letters=0,space=0,digit=0,other=0;printf(“请输入一行字符:

30、n“);while(c=getchar()!=n)if (c=a printf(“a,n=:“);scanf(“%d,%d“,while (iint main()double s=0,t=1;int n;for (n=1;nint main()int n1=100,n2=50,n3=10;double k,s1=0,s2=0,s3=0;for (k=1;kint main()int i,j,k,n;printf(“parcissus numbers are “);for (n=100;nint main()int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;int i,a,n

31、,s;for (a=2;a1) printf(“%d,%d“,k1,k2); /* n1 表示 a 至少有 2 个因子 */if (n2) printf(“,%d“,k3); /* n2 表示至少有 3 个因子,故应再输出一个因子 */ if (n3) printf(“,%d“,k4); /* n3 表示至少有 4 个因子,故应再输出一个因子 */if (n4) printf(“,%d“,k5); /* 以下类似 */if (n5) printf(“,%d“,k6);if (n6) printf(“,%d“,k7);if (n7) printf(“,%d“,k8);if (n8) printf

32、(“,%d“,k9);if (n9) printf(“,%d“,k10);printf(“n“);return 0;5-9-2#include int main()int m,s,i;for (m=2;m int main()int i,n=20;double a=2,b=1,s=0,t;for (i=1;i int main()double sn=100,hn=sn/2;int n;for (n=2;n int main()int day,x1,x2;day=9;x2=1;while(day0)x1=(x2+1)*2; /*第 1 天的桃子数是第 2 天桃子数加 1 后的 2 倍.*/x2=

33、x1;day-;printf(“total=%dn“,x1);return 0;5-13#include #include int main()float a,x0,x1;printf(“enter a positive number:“);scanf(“%f“,x0=a/2;x1=(x0+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 #include int main()double x

34、1,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)=1e-5);printf(“The root of equation is %5.2fn“,x1);return 0;5-15#include #include int main()float x0,x1,x2,fx0,fx1,fx2;doprintf(“enter x1 scanf(“%f,%f“,fx1=x1*(2*x1-4)*x1+3)-6;fx2=x2*(2*x2-4)*x2+3)-6;while(fx

35、1*fx20);dox0=(x1+x2)/2;fx0=x0*(2*x0-4)*x0+3)-6;if (fx0*fx1)=1e-5);printf(“x=%6.2fn“,x0);return 0;5-16#include int main()int i,j,k;for (i=0;i int main()char i,j,k; /*是 a 的对手;j 是 b 的对手;k 是 c 的对手*/for (i=x;i#include int main()int i,j,n,a101;for (i=1;iint main()int i,j,min,temp,a11;printf(“enter data:n“

36、);for (i=1;iaj) min=j;temp=ai;ai=amin;amin=temp;printf(“nThe sorted numbers:n“);for (i=1;iint main()int a33,sum=0;int i,j;printf(“enter data:n“);for (i=0;iint main() int a11=1,4,6,9,13,16,19,28,40,100;int temp1,temp2,number,end,i,j;printf(“array a:n“);for (i=0;iend)a10=number;elsefor (i=0;inumber)te

37、mp1=ai;ai=number;for (j=i+1;j#define N 5int main() int aN,i,temp;printf(“enter array a:n“); for (i=0;i#define N 10int main() int i,j,aNN;for (i=0;iint main() int a1515,i,j,k,p,n;p=1;while(p=1)printf(“enter n(n=1-15):“);scanf(“%d“,if (n!=0) j=j-1;elseif (in) j=1;if (aij=0)aij=k;elsei=i+2;j=j-1;aij=k;

38、for (i=1;i#define N 4#define M 5 /* 数组为 4 行 5 列 */int main()int i,j,k,aNM,max,maxj,flag;printf(“please input matrix:n“);for (i=0;imax)max=aij; /* 将本行的最大数存放在 max 中 */maxj=j; /* 将最大数所在的列号存放在 maxj 中 */flag=1; /* 先假设是鞍点,以 flag 为 1 代表 */for (k=0;kakmaxj) /* 将最大数和其同列元素相比 */flag=0; /* 如果 max 不是同列最小,表示不是鞍点令

39、 flag1 为 0 */continue;if(flag) /* 如果 flag1 为 1 表示是鞍点 */printf(“a%d%d=%dn“,i,maxj,max); /* 输出鞍点的值和所在行列号 */break;if(!flag) /* 如果 flag 为 0 表示鞍点不存在 */printf(“It is not exist!n“);return 0;6-9#include #define N 15int main() int i,number,top,bott,mid,loca,aN,flag=1,sign;char c;printf(“enter data:n“);scanf(“%d“,i=1;while(i=ai-1)i+;elseprintf(“enter this data again:n“);printf(“n“);for (i=0;iaN-1) /要查的数不在查找区间内loca=-1; / 表示找不到while (!sign)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报