C课后习题参考答案

上传人:壹****1 文档编号:512170400 上传时间:2022-10-18 格式:DOC 页数:35 大小:120KB
返回 下载 相关 举报
C课后习题参考答案_第1页
第1页 / 共35页
C课后习题参考答案_第2页
第2页 / 共35页
C课后习题参考答案_第3页
第3页 / 共35页
C课后习题参考答案_第4页
第4页 / 共35页
C课后习题参考答案_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《C课后习题参考答案》由会员分享,可在线阅读,更多相关《C课后习题参考答案(35页珍藏版)》请在金锄头文库上搜索。

1、习 题 参 考 答 案习 题 1一、选择题1、B 2、C 3、B 4、D 5、A 6、B 7、C二、填空题1、源程序文件 c 2、obj 3、可执行文件 exe 4、机器语言 汇编语言 高级语言三、解答题略四、编程题1、 main() printf(“Hello! Welcome to China!”);2、 main() int x; scanf(“%d”,&x); if(x=20&x=A&ch1=Z ch1=ch1-32;三、编程题1、从键盘输入三个数,然后按照由小到大的顺序输出。要求,设三个数放在变量a、b、c中,最后仍然按照a、b、c的顺序输出。#include main()int a

2、,b,c,t; scanf(“%d,%d,%d”,&a,&b,&c); if(ab) t=a; a=b; b=t; if(ac) t=a; a=c; c=t; if(bc) t=b; b=c; c=t; printf(“%d,%d,%dn”,a,b,c);2、编写程序根据以下的函数关系,对输入的x值输出相应的y值。xy2x=10x(x+2)-1x=22xX=-1x-1#include main()float x,y; scanf(“%f”,&x); if(x=-1) y=x-1; else if(x=2) y=2*x; else if(x=10) y=x*(x+2);else printf(“

3、Error!n”); printf(“y=%fn”,y);3、求一元二次方程ax2+bx+c=0的解。#include main()float a,b,c,d,disc,x1,x2,realpart,imagpart; scanf(“%f,%f,%f”,&a,&b,&c); if(fabs(a)=1e-6) Printf(is not a quadratic); else disc=b*b-4*a*c; if(fabs(disc)1e-6) x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf(“has distinct real r

4、oots:%8.4f and %8.4fn”,x1,x2); else realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf(“has complex roots:n”); printf(“%8.4f+%8.4fin”, realpart,imagpart); printf(“%8.4f-%8.4fin”, realpart,imagpart); 4、假设工资税率如下,其中s代表工资,r代表税率:s500 r=0%500=s1000 r=5%1000=s2000 r=8%2000=s3000 r=10%3000=3000) r=0.15;

5、g=salary/500; switch(g)case 1: r=0.05; case 2: case 3: r=0.08; case 4: case 5: r=0.10; salary=salary*(1-r); printf(“%dn”,salary);习 题 5一、选择题1、A 2、C 3、C 4、D 5、A 6、A7、A 8、B 9、C 10、B 11、B 12、D二、填空题1、continue2、1n=999或n=0或x=0.0 2xmin或x=min4、1 i10 2 j%3!=05、1t=1 2n=i6、1n 2flag=1 3n7、1ji 21/term8、1sumk 2j-2

6、三、编程题1、#include main()int m,n,p,r,temp; printf(“Please input m,n:”); do scanf(“%d%d”,&m,&n); while(m=0|n=0); if(nm) temp=n; n=m; m=temp; /*确保大数放到n中*/ p=n*m; /*保留n和m的乘积到p中,以便求最小公倍数*/ while(m!=0) /*求n和m的最大公约数*/ r=n%m; n=m; m=r; printf(“最大公约数为:%dn”,n); printf(“最小公倍数为:%dn”,p/n);2、#include main()char c;

7、int letter=0,space=0,digit=0,other=0; printf(“Please input a line character:”); while(c=getchar()!=n) if(c=a&c=A&c=0&c=9) digit+; else other+; printf(“Letter is %d,Space is %d,Digit is %d,Other is %d,”,letter,space,digit,other);3、main()int m,s,i; for(m=2;m1000;m+) s=0; for(i=1; im; i+) if(m%i)=0) s=

8、s+i; if(s=m) printf(“%d its factors are ”,m); for(i=1; im; i+) if(m%i=0) printf(“%d,”,i); printf(“n”); 4、main()int i,a,min,max; scanf(“%d”,&a); min=a;max=a; for(i=2;i=100;i+) scanf(“%d”,&a); if(amax) max=a; printf(“Max=%d,Min=%dn”,max,min);5、#include #define N 20main()int i,t; float a=2,b=1,s=0; for

9、(i=1;i=N;i+) s=s+a/b; t=a; a=a+b; /*将前一项的分子与分母之和作为下一项的分子*/ b=t; /*将前一项的分子作为下一项的分母*/ printf(“Sum=%fn”,s);6、问题分析:设王先生的岁数是x,他夫人的岁数是y,可得到如下方程组:这是一个非线性方程组的求解,无法手算求解,可以用穷举法求解。考虑到实际可能,x、y可以在20100范围内取值,逐一穷兴出x、y所有可能的取值判断是否满足上述方程组,若满足,这一组解就是要求的解。程序如下:main()int x,y; for(x=20;x=100;x+) for(y=20;y=100;y+) if(x*x+y=1053&x+y*y=873) printf(“x=%d y=%dn”,x,y);7、 main() long int k,g,s=0; printf(Please input an integer:); scanf(%ld,&k); do g=k%10; printf(%2d,g); k=k/10; while(k!=0); 8、(1)main()

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号