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

上传人:小** 文档编号:55663118 上传时间:2018-10-03 格式: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页
点击查看更多>>
资源描述

《谭浩强c程序设计第三版课后答案(整本书).doc》由会员分享,可在线阅读,更多相关《谭浩强c程序设计第三版课后答案(整本书).doc(129页珍藏版)》请在金锄头文库上搜索。

1、C 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

2、cc abcA N37 要将“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; prin

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

4、.5,y=2.5 解:解: (1)2.5 (2)3.5 310 写出程序运行的结果。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,10311 写出下面赋值的结果。格中写了数值的是要将它赋给其他类型的变量,将所有空格填上赋值后的数值。int9942chard unsigned int7665535float53.65long int68解:解:int99100765368421charcdL5D* unsigned int99100765368

5、4265535float99.00 0000100.0000 0076.00000 053.6568.00000042.00000065535.0000 00long int9910076536842655353.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)a+=a-=a*=a 解:解: (1)24 (2)10 (3)60 (4)0 (5)0 (6)0 第第 4 章章 最简单的最简单的 C 程序设计程序设计顺序程序顺序程序设计设计

6、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=3b=4c=5 x= 1.200000,y= 2.400000,z= -3.600000x+y=3.60y+z=-1.20z+x=-2.40 u= 51247n=128765 c1=aor97(ASCII) c2=bor98(ASCII) 解:解: main ( ) int a,b,c;long int u,n;float x,y,z;char c1,c2;a=3;b=4;

7、c=5;x=1.2;y=2.4;z= -3.6;u=51247;n=128765;c1=a;c2=b;printf(“n”);printf(“a=%2db=%2dc=%2dn”,a,b,c);printf(“x=%.6f,y=%.6f,z=%.6fn”,x,y,z);printf(“x+y=%.2fy+z=%.2fz+x=%.2fn”,x+y,y+z,z+x);printf(“u=%6ldn=%9ldn”,u,n);printf(“c1=%c or %d(ASCII)n”,c1,c1);printf(“c2=%c or %d(ASCII)n”,c2,c2); 45 请写出下面程序的输出结果:m

8、ain ( ) 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(“%-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

9、,%lo,%xn”,n,n,n);printf(“%u,%o,%x,%dn”,u,u,u,u);printf(“%s,%5.3sn”,”COMPUTER”,”COMPUTER”); 运行结果:57 57 67.856400, -789.12402367.856400, -789.124023 67.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,-1COMPUTER,COM 可以发现,输出数据中若

10、有负号、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 ,c2; scanf(“a=%d b=%d”, scanf(“ %f %e”, scanf(“ %c %c”, 解:a=3b=7 8.571.82 Aa4.7 下面的 scanf 函数输入数据,使 a=10,b=20,c1=A,c2=a,x=1.5,y=-3.75,z=67.8,请问在键盘上如何输入数据?scanf(“%5

11、d%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=%c, x=%6.2f, y=6.2f, z=6.2fn”),a,b,c1,c2,x,y,z); 运行情况如下:1020Aa1.5 3.751.5,67.8 (此行为输入的数据,其中为空格) a=10, b=20, c1=A, c2=a, x=1.50, y=-3.75, z=67.80 (此行为输出) 说明:说明:按%5d 格式的要求输入 a 和 b

12、 时,要先键入三个空格,然后再键入 10 与 20。%*f 是用来禁止赋值的。在输入时,对应于%*f 的地方,随意打入了一个数 1.5,该值不会赋给 任何变量。4.8 圆半径 r=1.5,圆柱高 h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。用 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;v

13、q=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=%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.214.9 输入一个华氏温度,要求输出摄氏温度,公式为 C=(5

14、/9)(F-32)输出要有文字说明,取 2 位小数。解:解: main ( ) float c,f;printf(“请输入一个华氏温度:n”); scanf(“%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 表 示

15、。但是判断一个逻辑量的值时,以 0 代表“真” ,以非 0 代表“假” 。例如 3printf(“请输入 3 个整数:”);scanf(“%d,%d,%d”,if (ab)? a:b; /* 将 a 和 b 中的大者存入 temp 中 */max=(tempc)? temp:c; /* 将 a 和 b 中的大者与 c 比较,取最大者 */printf(“3 个整数中最大数是%dn”,max); 方法三:ab?(ac?a:c):(bc?b:c)运行结果:请输入 3 个整数:12,34,93 个整数的最大数是 34。5.5 有一函数: 10113101121xxxxxx y写一程序,输入 x 值,输出 y 值。 解:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

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