谭浩强C程序设计第三版课后答案整本书.doc

上传人:h**** 文档编号:171228 上传时间:2018-07-13 格式:DOC 页数:129 大小:643.50KB
下载 相关 举报
谭浩强C程序设计第三版课后答案整本书.doc_第1页
第1页 / 共129页
谭浩强C程序设计第三版课后答案整本书.doc_第2页
第2页 / 共129页
谭浩强C程序设计第三版课后答案整本书.doc_第3页
第3页 / 共129页
谭浩强C程序设计第三版课后答案整本书.doc_第4页
第4页 / 共129页
谭浩强C程序设计第三版课后答案整本书.doc_第5页
第5页 / 共129页
点击查看更多>>
资源描述

1、C 程序设计(第三版)课后习题参考解答 1.6 写一个程序,输入 a,b,c 三个值,输出其中最大者。 解: main ( ) int a,b,c,max; printf(“请输入三个数 a,b,c: n”); scanf(“%d,%d,%d”, max=a; if (max void main ( ) char c1=a, c2=b, c3=c, c4=101, c5=116; printf (“a%c b%ct c%ct abcn”, c1, c2, c3); printf (“tb%c %c”, c4, c5); 解: 程序运行的结果为: aa bb cc abc A N 3 7 要将“

2、 China”译成密码,密码规律是:用原来的字母后面第 4 个字母代替原来的字母。例如,字母“ A”后面第 4 个字母是“ E”,用“ E”代替“ A”。因此,“ China”应译为“ Glmre”。请编一程序,用赋初值的方法使 c1,c2,c3,c4,c5 这 5 个变量的值分别为 C, h, i, n, a,经过运算,使 c1,c2,c3,c4,c5 的值分别变为 G, l, m, r, e,并输出。 解: main ( ) char cl=C, c2=h, c3=i, c4=n, c5=a; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf(“密码是 c

3、 c c c cn, c1, c2, c3, c4, c5); 运行结果: 密码是 Glmre 3 8 例 2.6 能否改成如下: main ( ) int c1, c2; (原为 char c1, c2) c1=97; c2=98; printf (“%c %cn”, c1, c2); printf (“%d %dn”, c1, c2); 解: 可以。因为在可输出的字符范围内,用整型和用字符型作用相同。 3 9 求下面算术表达式的值。 ( 1) x+a%3*(int)(x+y)%2/4 设 x=2.5, a=7, y=4.7 ( 2) (float)(a+b)/2+(int)x%(int)y

4、 设 a=2, b=3, x=3.5, y=2.5 解: ( 1) 2.5 ( 2) 3.5 3 10 写出程序运行的结果。 main ( ) int i, j, m, n; i=8; j=10; m=+i; n=j+; printf (“%d, %d, %d, %d”, i, j, m, n); 解: 运行结果为: 9, 11, 9, 10 3 11 写出下面赋值的结果。格中写了数值的是要将它赋给其他类型的变量,将所有空格填上赋值后的数值。 int 99 42 char d unsigned int 76 65535 float 53.65 long int 68 解: int 99 100

5、 76 53 68 42 1 char c d L 5 D * unsigned int 99 100 76 53 68 42 65535 float 99.000000 100.000000 76.000000 53.65 68.000000 42.000000 65535.000000 long int 99 100 76 53 68 42 65535 3.12 出下面表达式运算后 a 的值,设原来 a=12。设 a 和 n 都已定义为整型变量。 ( 1) a+=a ( 2) a-=2 ( 3) a*=2+3 ( 4) a/=a+a ( 5) a%=(n%=2), n 的值等于 5 ( 6

6、) a+=a-=a*=a 解: ( 1) 24 ( 2) 10 ( 3) 60 ( 4) 0 ( 5) 0 ( 6) 0 第 4 章 最简单的 C 程序设计 顺序程序设计 4.4 若 a=3, b=4, c=5, x=1.2, y=2.4, z=-3.6, u=51247, n=128765, c1=a, c2=b,想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 要求输出的结果如下: a= 3 b= 4 c= 5 x= 1.200000,y= 2.400000,z= -3.600000 x+y= 3.60 y+z=-1.20 z+x=-2.40 u= 51247 n=

7、128765 c1=a or 97(ASCII) c2=b or 98(ASCII) 解: main ( ) int a,b,c; long int u,n; float x,y,z; char c1,c2; a=3;b=4;c=5; x=1.2;y=2.4;z= -3.6; u=51247;n=128765; c1=a;c2=b; printf(“n”); printf(“a=%2d b=%2d c=%2dn”,a,b,c); printf(“x=%.6f,y=%.6f,z=%.6fn”,x,y,z); printf(“x+y= %.2f y+z=%.2f z+x=%.2fn”,x+y,y+

8、z,z+x); printf(“u=%6ld n=%9ldn”,u,n); printf(“c1=%c or %d(ASCII)n”,c1,c1); printf(“c2=%c or %d(ASCII)n”,c2,c2); 4 5 请写出下 面程序的输出结果: main ( ) int a=5,b=7; float x=67.8564,y=-789.124; char c=A; long n=1234567; unsigned u=65535; printf(“%d%dn”,a,b); printf(“%3d%3dn”,a,b); printf(“%f,%fn”,x,y); printf(“%

9、-10f,%-10fn”,x,y); printf(“%8.2f, %8.2f,%4f, %4f, %3f, %3fn”,x,y,x,y,x,y); printf(“%e,%10.2en”,x,y); printf(“%c,%d,%o,%xn”,c,c,c,c); printf(“%ld,%lo,%xn”,n,n,n); printf(“%u,%o,%x,%dn”,u,u,u,u); printf(“%s,%5.3sn”,”COMPUTER”,”COMPUTER”); 运行结果: 5 7 5 7 67.856400, -789.124023 67.856400 , -789.124023 67

10、.86, -789.12,67.8564,-789.1240,67.856400,-789.124023 6.785640e+01, -7.9e+02 A,65,101,41 1234567,4553207,d687 65535,177777,ffff,-1 COMPUTER, COM 可以发现,输出数据中若有负号、 e 和小数点,这些字符也占位。 4.6 用下面的 scanf 函数输入数据,使 a=3, b=7, x=8.5, y=71.82, c1=A, c2=a。问在键盘上如何输入? #include void main() int a , b; float x , y; char c1

11、 ,c2; scanf(“a=%d b=%d”, scanf(“ %f %e”, scanf(“ %c %c”, 解: a=3 b=7 8.5 71.82 A a 4.7 下面的 scanf 函数输入数据,使 a=10, b=20, c1=A, c2=a, x=1.5, y=-3.75, z=67.8,请问在键盘上如何输入数据? scanf(“%5d%5d%c%c%f%f%*f,%f”, 解: main ( ) int a,b;float x,y,z; char c1,c2; scanf(“%5d%5d%c%c%f%f%*f,%f”, printf(“a=%d, b=%d, c1=%c, c2

12、=%c, x=%6.2f, y=6.2f, z=6.2fn”),a,b,c1,c2,x,y,z); 运行情况如下: 10 20Aa1.5 3.75 1.5,67.8 (此行为输入的数据,其中为空格) a=10, b=20, c1=A, c2=a, x=1.50, y=-3.75, z=67.80 (此行为输出) 说明: 按 %5d 格式的要求输入 a 和 b 时,要先键入三个空格,然后再键入 10 与 20。 %*f 是用来禁止赋值的。在输入时,对应于 %*f 的地方,随意打入了一个数 1.5,该值不会赋给任何变量。 4.8 圆半径 r=1.5,圆柱高 h=3,求圆周长,圆面积,圆球表面积,圆

13、球体积,圆柱体积。用 scanf 输入 数据,输出计算结果,输出时要求有文字说明,取小数点后 2 位数字。请编程序。 解: main ( ) float pi,h,r,l,s,sq,vq,vz; pi=3.1415926; printf(“请输入圆半径 r,圆柱高 h: n”); scanf(“%f,%f”, l=2*pi*r; s=r*r*pi; sq=4*pi*r*r; vq=3.0/4.0*pi*r*r*r; vz=pi*r*r*h; printf(“圆周长为 : l=%6.2fn”,l); printf(“圆面积为 : s=%6.2fn”,s); printf(“圆球表面积为 : sq

14、=%6.2fn”,sq); printf(“圆球体积为 : sv=%6.2fn”,vq); printf(“圆柱体积为 : sz=%6.2fn”,vz); 运行结果: 请输入圆半径 r, 圆柱高 h: 1.5, 3 圆周长为 : l=9.42 圆面积为 : s=7.07 圆球表面积为 : sq=28.27 圆球体积为 : sv=7.95 圆柱体积为 : sz=21.21 4.9 输入一个华氏温度,要求输出摄氏温度,公式为 C=(5/9)(F-32) 输出要有文字说明,取 2 位小数。 解: main ( ) float c,f; printf(“请输入一个华氏温度 : n”); scanf(“

15、%f”, c=(5.0/9.0)*(f-32); /*注意 5 和 9 要用实型表示,否则 5/9 的值为 0*/ printf(“摄氏温度为 : %5.2fn”,c); ; 运行结果: 请输入 一个华氏温度: 78 摄氏温度为: 25.56 第 5 章 选择结构程序设计 5.2 语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”? 解: 设有一个逻辑表达式,若其结果为“真”,则以 1 表示;若其结果为“假”,则以 0 表示。但是判断一个逻辑量的值时,以 0 代表“真”,以非 0 代表“假”。例如 3 printf(“请输入 3 个整数 : ”); scanf(“%d,%d,%d”, if (ab) if (bc) printf(“max=%dn”,c); else printf(“max=%dn”,b); else if (ac) printf(“max=%dn”,c); else printf(“max=%dn”,a); 运行结果: 请输入 3 个整数 : 12, 34, 9 max=34 方法二:使用条件表达式,可以使程序更简明,清晰。 main ( ) int a,b,c,temp,max ; printf(“请输入 3 个整数 : ”); scanf(“%d,%d,%d”,

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

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

Copyright © 2018-2021 Wenke99.com All rights reserved

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

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

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