《C语言程序设计教程》课后题答案.doc

上传人:h**** 文档编号:675579 上传时间:2018-10-27 格式:DOC 页数:47 大小:199.50KB
下载 相关 举报
《C语言程序设计教程》课后题答案.doc_第1页
第1页 / 共47页
《C语言程序设计教程》课后题答案.doc_第2页
第2页 / 共47页
《C语言程序设计教程》课后题答案.doc_第3页
第3页 / 共47页
《C语言程序设计教程》课后题答案.doc_第4页
第4页 / 共47页
《C语言程序设计教程》课后题答案.doc_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、C 语言程序设计教程课后题答案第一章一选择题1.A 2.B 3.C 4.D 5.B 6.C二.填空题1.程序2.算法3.main 或主4.编译5.编译6. .obj7.库函数8.文本或 ASCII 码三、编程题1.参考代码如下:#include void main()printf(“金n 木n 水n 火n 土n“);2. 参考代码如下:#include void main() int a,b;scanf(“%d%d“,printf(“%d+%d=%dn“,a,b,a+b);printf(“%d-%d=%dn“,a,b,a-b);printf(“%d*%d=%dn“,a,b,a*b);print

2、f(“%d/%d=%dn“,a,b,a/b);3. 参考代码如下:#include void main()float a,b,h,s;scanf(“%f%f%f“,s=(a+b)*h/2;printf(“s=%fn“,s);第二章一选择题答案及分析:1.B,略2.A,-8 在内存中是以补码(设两个字节)形式存储的3.A,C 语言有 32 个关键字(参见课本第 18 页) ,且 C 语言标识符是区分大小写字母的4.A,略5.D,八进制数据中不能出现数码 86.B,字符常量应该用单引号括起来,答案 D 超出了 ASCII 取值范围(ASCII 的取值范围为0,255)7.C,该字符串中转义字符有三

3、个:、 22 和 n,普通字符有三个:a、 ,和 0,所以字符串长度为 68.C,略9.D,C 语言没有 read 函数和%D 格式符号,且 scanf 函数第二个形参为地址列表10.B,根据题意,scanf 函数输入数据时分隔符号不应该是逗号,应该是空格或回车符,且输入数据时分一行或几行均可11.A,scanf 函数中不允许出现%8.4,%6.2 和%8 这样的格式符号 12.C,既要保证 5 位小数位,还得保证整数位不变,这样数据 12345.67800 用 10 列不能完全显示出来,按 C 语言规定, 12345.67800 原样输出 13.B,printf 函数中格式符号%d ,%o,

4、%x 表示对应的整型数据分别按十进制,八进制和十六进制输出14.C,按 C 语言规定,scanf 函数形参双引号中,如果包含非格式符号,在输入数据时要求原样输入二.填空题答案及分析:1.int float double(略)2.65,89 ,printf 函数中如果格式符号是%d,则输出相应字符的 ASCII 十进制数值3.a=98,b=765.000000,c=4321.000000,scanf 函数中的格式符号%2d%3f%4f,表示将键盘输入的数据 9876543210 按 2,3,4 位分割,然后再分别赋给变量 a,b,c4.scanf(“%lf%lf%lf“, double 类型的变

5、量对应的格式符号是%lf三、编程题1. 参考代码如下:#include void main()int a=97;printf(“%cn“,a);printf(“%dn“,a);printf(“%on“,a);printf(“%xn“,a);程序分析:通过 printf 函数中不同的格式符号,即%c(字符),%d(十进制),%o(八进制),%x(十六进制)输出相应的值。2. 参考代码如下:#include void main()int h,m,minute;scanf(“%d:%d“,minute=h*60+m;printf(“minute=%dn“,minute);程序分析:输入形式为 10:

6、27,故 scanf 函数双引号中两个格式符号 %d 之间必须加入“:” 。3. 参考代码如下:#include void main()float r=6371000,s,v;s=4*3.1415926*r*r;v=3.1415926*4/3*r*r*r;printf(“s=%fnv=%f“,s,v);程序分析:C 语言中的 不代表 3.1415926,可以用各种常量的形式体现出来。4. 参考代码如下:#include void main()int m100,m50,m20,m10,m5,m1,m;scanf(“%d“,m100=m/100;m50=(m-m100*100)/50;m20=(m

7、-m100*100-m50*50)/20;m10=(m-m100*100-m50*50-m20*20)/10;m5=(m-m100*100-m50*50-m20*20-m10*10)/5;m1=m-m100*100-m50*50-m20*20-m10*10-m5*5;printf(“%d 元发工资,人名币各票面的张数为:n“,m);printf(“100 元的张数:%dn“,m100);printf(“50 元的张数:%dn“,m50);printf(“20 元的张数:%dn“,m20);printf(“10 元的张数:%dn“,m10);printf(“5 元的张数:%dn“,m5);pri

8、ntf(“1 元的张数:%dn“,m1);程序分析:人民币的面值分别为 100 元,50 元,20 元,10 元,5 元和 1 元,工资 4367 元除以 100 后得到的商就为 100 元张数,余数再除以 50,得到的商为 50 元的张数,余数再除 20,以此类推就会得出人民币各面值相应的张数。5. 参考代码如下:#include void main()float r1,r2,r3,r;scanf(“%f%f%f“,r=r1*r2*r3/(r1*r2+r2*r3+r1*r3);printf(“三个电阻并联后的总电阻为%fn“,r);程序分析:首先将计算并联电阻值的公式变换一下;再就是考虑要保

9、留小数位,故变量类型设置为实型,注意格式符号为%f。6. 参考代码如下:#include void main()int x,a,b,c,d,y;scanf(“%d“,a=x%10;b=x/10%10;c=x/100%10;d=x/1000;y=a*1000+b*100+c*10+d;printf(“%d 逆置各位数后的值为%dn“,x,y);程序分析:1234 除以 10 的余数就是 4,商再除以 10 的余数就是 3,1234 除以 100 再除以10 取余就是 2,1234 除以 1000 就是 1。也可以用其他的表达式求出各位数值,例如输入数据 1234 中的 4,可以用公式 a=x-d

10、*1000-c*100-b*10 来计算。7. 参考代码如下:#include void main()float F,C;printf(“请输入华氏温度:“);scanf(“%f“,C=5.0/9*(F-32);printf(“华氏温度%f 对应的摄氏温度为%fn“,F,C);程序分析:5/9 的值为 0,所以要写成 5.0/9,5/9.0 或 5.0/9.0,还要注意变量类型为实型,且对应的格式符号为%f。8. 参考代码如下:#include void main()char ch1,ch2,ch3;printf(“请输入三个数字字符:“);scanf(“%c%c%c“,printf(“将数字

11、字符转换为数字%d,%d,%dn“,ch1-0,ch2-48,ch3-0);程序分析:通过键盘输入三个数字字符时要连续输入,不要加任何分隔符号,例如 121 等,另外,数字字符输出时遇到格式符号%d 将输出相应数字字符的 ASCII 值,但任何一个数字字符的 ASCII 值减去字符 0 的 ASCII 值,再对应%d 格式符号输出时,就是数字字符对应的数字,例如2-0=2。9.不能得到指定的输出结果,参考代码如下:void main( )int a, b, c,x, y;scanf(“%d%d%d“,x=a*b;y=x*c;printf(“a=%d,b=%d,c=%dn“,a,b,c);pri

12、ntf(“x=%d,y=%dn“,x,y);程序分析:scanf(“%d,%d,%d“,a,b,c);scanf 函数第二类形参是地址列表,所以语句改为scanf(“%d,%d,%d“,而这个语句对应的键盘输入形式为 2,3,4。为了满足题目要求,scanf 语句改为 scanf(“%d%d%d“,。另外,printf 函数双引号只能出现一对,且双引号中需要在相应的位置上添加 a=等这样的字符串才能原样输出;还有整型变量对应格式符号是%d 等。第三章一选择题1.A 2.C 3.C 4.D 5.C 6.B 7.C 8.B 9.A 10.A 11.A 12.B 13.D 14.A 15.B 16.

13、C 17.C 18.C 19.C 20.C 21.C 22.B 23.C 24.C 25.A 26.B 27.A 28.A 29.C 30.A 31.C 32.C二.填空题1.非零 零2.passwarm3.5252524.fabs(x)55.x%y=06.if(1=0 xvoid main(void)float x,y;printf(“Please input the value of x:“);scanf(“%f“,if(x-5printf(“请输入三角形三边的长度:n“);scanf(“%f%f%f“,if(a+bcelse if(a=belseprintf(“该三角形是一般三角形n“)

14、;elseprintf(“不能构成三角形n“);3. 参考代码如下:#includevoid main(void)float M,N,menoy;printf(“请输入购买金额:“);scanf(“%f“,if(M=100int in;printf(“请输入购买金额:“);scanf(“%f“,in=M/100;switch(in)case 0:N=0;break;case 1:N=1.5;break;case 2:N=2.5;break;case 3:N=3.5;break;case 4:N=4.5;break;case 5:N=5.5;break;default :N=6;break;me

15、noy=M*(1-N/100);printf(“实际支付金额:%f,返还的金额:%fn“,menoy,M-menoy);5. 参考代码如下:#includevoid main(void)float x,max;printf(“Enter a number:“);scanf(“%f“,max=x;while(x0)printf(“Enter a number:“);scanf(“%f“,if(xmax)max=x;if(max0)printf(“The largest number entered was %fn“,max);6. 参考代码如下:#includevoid main(void)fl

16、oat M,N,menoy;printf(“请输入购买金额:“);scanf(“%f“,while(M0)if(M=100int i;for(i=1;i=0)positivesum+=number;else negativesum+=number;total+=number;printf(“positive sum %f,negative sum %f,total %fn“,positivesum,negativesum,total);8. 参考代码如下:#includevoid main(void)int i,sum=0,k=1;for(i=1;ivoid main(void)float i,sum=0,k=1;for(i=1;k=1e-4;i+)sum=sum+k;k=k/i;printf(“e=%fn“,sum);10. 参考代码如下:#includevoid main(void)float i,sum=0,n=2,d=1,temp;for(i=1;i=20;i+)sum=sum+n/d;temp=n;n=n+d;

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

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。