[C语言程序设计](谭浩强)教材课后习题答案.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《[C语言程序设计](谭浩强)教材课后习题答案.pdf》由会员分享,可在线阅读,更多相关《[C语言程序设计](谭浩强)教材课后习题答案.pdf(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、L 5 请参照本章例题,编写一个C程序,输出以下信息:Ve r y Go o d!解:m i an ()p r i n t f (*);p r i n t f(“n”);p r i n t f(Ve r y Go o d!n );p r i n t f(“n”);p r i n t f(*);)1.6 编写一个程序,输入a、b、c 三个值,输出其中最大值。解:m i an ()i n t a,b,c,m ax;p r i n t f (“请输入三个数 a,b,c:n );s can f (a%d,%d,%d ,&a,&b,&c);m ax=a;i f(m ax b)m ax=b;i f(m a
2、x 101,c5=116;p r i n t f(a%cb%ct c%ct abcn,cl,c2,c3);p r i n t f(t b%c%cw,c4,c5);)解:aa U bb L-l LJ L-J cc L_|U LJ LJ L-l M abcA u N3.7 要将C h i n a译成密码,译码规律是:用原来字母后面的第4 个字母代替原来的字母.例如,字母A后面第4 个字母是E.竺代替A。因此,C h i n a”应译为Gh n r e”。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为J C 二 h,、,i ,r/、,a经过运算,使 cl、c2、c3、c4
3、、c5分别变为G、1、m、r、e 并输出。解:#i n cl u d e m ai n ()ch ar cl=,C ,c2=h,c3=,i ,c4=,n ,c5=,a ;cl+=4;c2+=4;c3+=4;c4+=4;c5+=4;p r i n t f (密码是%c%c%c%c%cn,cl,c2,c3,c4,c5);运行结果:密码是Gl m r e3.9求下面算术表达式的值。(1)x+a%3*(i n t)(x+y)%2/4设 x=2.5,a=7,y=4.7(2)(f l o at)(a+b)/2+(i n t)x%(i n t)y设 a=2,b=3,x=3.5,y=2.5(1)2.5(2)3
4、.53.10写出程序运行的结果。m ai n()(i n t i,j,m,n;i=8;j=10;m=+i;n=j+;p r i n t f (%d,%d,%d,%dv,i,j,m,n);解:9,11,9,103.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)6 0(4)0(5)0(6)0第四章4.4 若 a=3,b=4,c=5,x=l.2,y=2.4,z=-3.6,u=5127 4,n=1287 6 5,
5、cl=f a,c2=f b 想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。a=3 b=4 c=5x=l.200000,y=2.400000,z=-3.6 00000 x+y=_3.6 00_ _y+z=-l.20_ _z+x=-2.40cl=xax_o r _97(ASC II)c2=b x_o r _98(ASC II)m ai n()i n t a=3,b=4,c=5;l o n g i n t u=5127 4,n=1287 6 5;f l o at x=l.2,y=2.4,z=3.6;ch ar cl=,af,c2=,b ;p r i n t f Ca=%2d b
6、=%2d c=%2d n”,a,b,c);p r i n t f (z/x=%f,y=%f,z=%f n”,x,y,z);p r i n t f (x+y=5.2f y+z=%5.2f z+x=%5.2f n ,x+y,y+z,z+x);p r i n t f (z/u=%6 1d n=%91d n,z,u,n);p r i n t f (z/%s%s%d%s n,cl=a,o r,cl,(ASC II)”);p r i n t f (z,%s%s%d%s n,c2=a ,o r ,c2,(ASC II);4.7 用 s can f 下面的函数输入数据,使 a=3,b=7,x=8.5,y=7
7、1.82,cl=A ,c2=a ,问在键盘上如何输入?m ai n ()(i n t a,b;f l o at x,y;ch ar cl c2;s can f (a=%d _b=%d ,&a,&b);s can f (_x二 f _y 二%e,&x,&y);s can f (,_cl=%c_c2=%c,/,&cl,&c2);)a=3 b=7_x=8.5_y=7 1.82_cl=A_c2=a4.8 设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体枳。用 s can f 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。m ai n()f l
8、 o at r,h,C l,Sa,Sb,Va,Vb;s can f (f,&r,&h);C l=2*3.14*r;Sa=3.14*r*r;Sb=4*Sa;Va=4*3.14*r*r*r/3;Vb=Sa*h;p r i n t f C C 1=%.2f n,C l);p r i n t f C Sa=%.2f n Sb=%.2f n Va=%.2f n Vb=%.2f n ,Sa,Sb,Va,Vb);)4.9 输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9输出要求有文字说明,取位2 小数。m ai n()f l o at F,c;sc a nf&F);c=5*(F-32)/9;
9、p r i n t f (z,c=%.2f”,c);)4.10编程序,用 g e t ch ar 函数读入两个字符给cl、c 2,然后分别用函数和函数输出这两个字符。并思考以下问题:(1)变量cl、c2应定义为字符型或整形?抑二者皆可?(2)要求输出cl 和 c2值的ASC II码,应如何处理?用 p u t ch ar 函数还是p r i n t f 函数?(3)整形变量与字符变量是否在任何情况下都可以互相代替?如:ch ar cl,c2;与i n t cl,c2;是否无条件的等价?f t i n cl u d e s t d i o.h m ai n ()ch ar cl,c2;cl=g
10、e t ch ar 0;c2=g e t ch ar();p u t ch ar(cl);p u t c h a rnf);p u t ch ar(c2);p u t c h a rnf);)Si n cl u d e s t d i o.h m ai n()ch ar cl,c2;cl=g e t ch ar();c2=g e t ch ar();p r i n t f (,zcl=%d c2=%d n ,cl,c2);p r i n t f (,cl=%c c2=%cnz,,cl,c2);)第五章5.1 什么是算术运算?什么是关系运算?什么是逻辑运算?解:略。5.2 C 语言中如何表示“真
11、”和“假”?系统如何判断一个量的“真”和“假”?解:设有一个逻辑表达式,若其结果为“真”,则 以 1 表示;若其结果为“假”,则以0 表示。但是判断个逻辑量的值时,以 0 代 表“真”,以非0 代 表“假”。例如3&5 的值为“真。系统给出3&5 的值为1。5.3 写出下面各逻辑表达式的值。设 a=3,b=4,c=5 o(1)a+bc&b=c(2)a|b+caab-c(3)!(ab)&!c|1 1(4)!(x=a)&(y=b)&0(5)!(a+b)+c-l&b+c/2解:(1)0(2)1(3)1(4)0(5)15.4 有 3 个整数a、b、c,由键盘输入,输出其中最大的数。解:方法一#i nc
12、lu de mai n()i nt a,b,c;p r i nt f(”请输入3 个整数:”);s canf(线d,%d,%d,&a,&b,&c);i f(ab)i f(bc)p r i nt f(max=%dn”,c);els e p r i nt f(max=%dn”,b);els e i f(ac)p r i nt f(,max=%dn,/,c);els e p r i nt f(max=%dn”,a);方法二:使用条件表达式,可以使程序更加简明、清晰。程序如下:t t i nclu de mai n()i nt a,b,c,t emp,max;p r i nt f(”请输入3 个整数:
13、);s canf(%d,%d,%d,&a,&b,&c);t emp=(ab)?a:b;/*将 a 和 b 中的大者存入t emp 中*/max=(t emp c)?t emp:c;/*将 a 和 b 中的大者与c 比较,取最大者*/p r i nt f(3个整数的最大数是%dn ,max);5.5 有一函数:写i程序,输入x值,输出y值。解:#i nclu de mai n()i nt x,y;p r i nt f(输入 x:);sc a n f&x);i f(x l)/*x l*/y=x;p r i nt f(z/x=%3d,els e i f(x 1 0)y=2*x T;p r i nt
14、f(/,x=%3d,)els e y=3*x-ll;p r i nt f(,x=%3d,y=x=%dn,x,y);/*lx-1 0*/y=2*x-l=%dn/,,x,y);/*x 2 1 O */y=3*x-ll=%dn,x,y);)5.6给一个百分制成绩,要求输出等级A,、,B、,C、分 为 B,7 0、7 9分为C,6 0分以下为D。解:程序如下:#i nclu de mai n()flo at s co r e;char gr ade;p r i nt f(请输入学生成绩:);s canf(%f,ft s co r e);w hi le(s co r e1 00|i(s co r e0)
15、p r i nt f(n输入有误,请重新输入:);s canf(%f,&s co r e);)s w i t ch(i nt)(s co r e/1 0)cas e 1 0:cas e 9:gr ade=A;br eak;cas e 8:gr ade=B ;br eak;、E 90 分以上为A,8 090cas e 7:gr ade=C ;br eak;cas e 6:gr ade=D ;br eak;cas e 5:cas e 4:cas e 3:cas e 2:cas e 1:cas e 0:gr ade=E;p r i nt f(成绩是%5.I f,相应的等级是%c。n,s co r e
16、,gr ade);)说明:对输入的数据进行检查,如小于0或大于1 00,要求重新输入。(i nt)(s co r e/1 0)的作用 是 将(s co r e/1 0)的值进行强制类型转换,得到一个整型值。5.7给定一个不多于5位的正整数,要求:求它是几位数;分别打印出每一位数字;按逆序打印出各位数字。例如原数为3 2 1,应输出1 2 3。解:#i nclu de mai n()lo ng i nt nu m;i nt i ndi v,t en,hu ndr ed,t ho u s and,t en_t ho u s and,p lace;/*分别代表个位、十位、百位、千位、万位和位数*/p
17、 r i nt f(请输入一个整数(0 99999):);s canf(,z%ld,z,&nu m);i f(nu m9999)p lace=5;els e i f(nu m999)p lace=4;els e i f(nu m99)p lace=3;els e i f(nu m9)p lace=2;els e p lace=l;p r i nt f(p lace=%dn,p lace);t er i-t ho u s and=nu m/1 0000;t ho u s and=nu m/1 000%1 0;hu ndr ed=nu m/1 00/1 0;t en=nu m%1 00/1 0;i
18、 ndi v=nu m%1 0;s w i t ch(p lace)cas e 5:p r i nt f(,z%d,%d,%d,%d,%d,?,t en_t ho u s and,t ho u s and,hu ndr ed,t en,i ndi v);p r i nt f(n反序数字为;);p r i nt f(z,%d%d%d%d%dnz,,i ndi v,t en,hu ndr ed,t ho u s and,t en_t ho u s and);br eak;cas e 4:p r i nt f(%d,%d,%d,%d,t ho u s and,hu ndr ed,t en,i ndi
19、 v);p r i nt f(n反序数字为:);p r i nt f(/z%d%d%d%dn,z,i ndi v,t en,hu ndr ed,t ho u s and);br eak;cas e 3:p r i nt f(%d,%d,%d,hu ndr ed,t en,i ndi v);p r i nt f(n反序数字为:);p r i nt f(/z%d%d%dn/z,i ndi v,t en,hu ndr ed);br eak;cas e 2:p r i nt f(z z%d,%d,z,t en,i ndi v);p r i nt f(n反序数字为:);p r i nt f(z,%d%d
20、nz/,i ndi v,t en);br eak;cas e 1:p r i n t f i n d i v);p r i nt f(n反序数字为:);p r i nt f(%dn,i ndi v);br eak;)5.8 企业发放的奖金根据利润提成。利 润 I 低于或等于1 0万元时,奖金可提成1 0%;利润高 于 1 0万元,低于2 0万 元(1 0000(KIW 2 00000)时,其 中 1 0万元按1 0%提成,高 于 1 0万元的部分,可提成7.5%;2 00000GW 400000时,其中2 0万元仍按上述办法提成(下同),高于2 0万元的部分按5%提成;4000001 0000
21、00时,超 过 1 00万元的部分按1%提成。从键盘输入当月利润I,求应发放奖金总数。要求:(1)用 i f语句编程序;(2)用 s w i t ch语句编程序。解:计算利润时,要特别注意不同利润的不同提成比例。例如,利润为1 5 万元,其中有1 0万元按1 0%的比例提成,另外5 万元则按7.5%提成。(1)用 i f语句编程序。#i nclu de mai n()lo ng i;flo at bo nu s,bo nl,bo n2,bo n4,bo n6,bo nlO;bo nl=1 00000*0.1;/*利润为1 0万元时的奖金*/bo n2=bo nl+1 00000*0.07 5;
22、/*利润为 2 0 万元时的奖金*/bo n4=bo n2+2 00000*0.05;/*利润为 40 万元时的奖金*/bo n6=bo n4+2 00000*0.03;/*利润为 6 0 万元时的奖金*/bo nl0=bo n6+400000*0.01 5;/*利润为 1 00 万元时的奖金*/p r i nt f(请输入利润i:);sc a n f&i);i f(i=1 00000)bo nu s=i*0.1;/*利润在1 0万元以内按0.1 提成奖金*/e l s e if(i=20 0 0 0 0)b o n u s=b o n l+(i-10 0 0 0 0)*0.0 7 5;/*利
23、润在 10 万至 20 万元时的奖金*/e l s e if(i=4 0 0 0 0 0)b o n u s=b o n 2+(i-20 0 0 0 0)*0.0 5;/*利润在 20 万至 4 0 万元时的奖金*/e l s e if(i=6 0 0 0 0 0)b o n u s=b o n 4+(i-4 0 0 0 0 0)*0.0 3;/*利润在 4 0 万至 6 0 万元时的奖金*/e l s e if(i b o n 4 b o n 6 ho n l O;然后再加上各区间附加部分的奖金。(2)用 s w it c h语句编程序。输入利润i,确定相应的提成等级b ra n c h根据
24、b ra n c h确定奖金值0 奖金=i*0.11 奖金=b o n l+(iT0 5)*0.0 7 52 奖金=b o n 2+(i-2*10 5)*0.0 534 奖金=b o n 4+(i-4*10 5)*0.0 356 奖金=b o n 6+(i-6*10 5)*0.0 1578910 奖金二b o n l 0+(iT0 6)*0.0 1输出奖金#in c l u d e m a in()l o n g i;f l o a t b o n u s,b o n l,b o n 2,b o n 4,b o n 6,b o n l O;in t c;b o n l=l 0 0 0 0 0*
25、0.1;b o n 2=b o n l+10 0 0 0 0*0.0 7 5;b o n 4=b o n 2+20 0 0 0 0*0.0 5;b o n 6=b o n 4+20 0 0 0 0*0.0 3;b o n l 0=b o n 6+4 0 0 0 0 0*0.0 15;p rin t f (请输入利润i:);scanf&i);c=i/10 0 0 0 0;if(c 10)c=10;s w it c h(c)c a s e 0:b o n u s=1*0.1;b re a k;c a s e 1:b o n u s=b o n 1+(i-10 0 0 0 0)*0.0 7 5;b
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 谭浩强 教材 课后 习题 答案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内