c语言程序设计第三版谭浩强课后习题答案汇编Word格式文档下载.docx
《c语言程序设计第三版谭浩强课后习题答案汇编Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c语言程序设计第三版谭浩强课后习题答案汇编Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
![c语言程序设计第三版谭浩强课后习题答案汇编Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-12/17/06e0eb87-3d06-4feb-b662-b084ddabe30a/06e0eb87-3d06-4feb-b662-b084ddabe30a1.gif)
inta=5,b=7;
doublex=67.8564,y=-789.124;
charc=a;
longn=1234567;
unsignedu=65535;
printf(%d%d\n,a,b);
printf(%3d%3d\n,a,b);
printf(%f,%f\n,x,y);
printf(%-10f,%-10f\n,x,y);
printf(%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n,x,y,x,y,x,y);
printf(%e,%10.2e\n,x,y);
printf(%c,%d,%o,%x\n,n,n,n);
printf(%ld,%lo,%x\n,n,n,n);
printf(%u,%o,%x,%d\n,u,u,u,u);
printf(%s,%5.3s\n,computer,computer);
4.6
inta,b;
floatx,y;
charc1,c2;
scanf(a=%db=%d,a,b);
scanf(%f%e,x,y);
scanf(%c%c,c1,c2);
4.7
#includestdio.h
floatx,y,z;
scanf(%5d%5d,a,b);
scanf(%f%f%*f%f,x,y,z);
scanf(%c%c,c1,c2);
4.8
#definepi3.14
floatr,h,l,s1,s2,v1,v2;
printf(请输入r,h的值:
scanf(%f,%f,r,h);
l=2*pi*r;
s1=pi*r*r;
s2=4*s1;
v1=4/3*pi*r*r*r;
v2=s1*h;
printf(圆周长为:
%.2f\n,l);
printf(圆面积为:
%.2f\n,s1);
printf(圆球表面积为:
%.2f\n,s2);
printf(圆球体积为:
%.2f\n,v1);
printf(圆柱体积为:
%.2f\n,v2);
5.5#includestdio.h
printf(请输入x的值:
scanf(%f,x);
if(x1)
y=x;
else
if(x=1x10)
y=2*x-1;
y=3*x-11;
printf(x与y的值分别为:
\n%f,%f,x,y);
printf(\n);
5.6#includestdio.h
{
floatb;
inta;
printf(请输入该同学的成绩:
scanf(%f,b);
while(b0||b100)
printf(输入有误,请重新输入:
a=int(b/10);
if(a6)a=5;
switch(a)
case10:
case9:
printf(该同学为等级:
a);
break;
case8:
b);
case7:
c);
case6:
d);
case5:
e);
#includemath.h
intx,y,m,n,i=1,j=0;
printf(请给出一个不多于5位的正整数:
scanf(%d,x);
while(x=0||x=100000)
{printf(输入有误\n请给出一个不多于5位的正整数:
scanf(%d,x);
for(n=0;
n5;
n++)
y=int(x/pow(10,n));
【篇二:
c语言程序设计+谭浩强+第三版+课后习题答案】
>
**************************
verygood!
解:
mian()
{printf(“**************************”);
printf(“\n”);
printf(“verygood!
\n”);
printf(“**************************”);
1.6编写一个程序,输入a、b、c三个值,输出其中最大值。
{inta,b,c,max;
printf(“请输入三个数a,b,c:
scanf(“%d,%d,%d”,a,b,c);
max=a;
if(maxb)
max=b;
if(maxc)
max=c;
printf(“最大数为:
“%d”,max);
第三章
3.6写出以下程序运行的结果。
main()
{charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;
printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);
printf(“\t\b%c%c”,c4,c5);
aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabc
aㄩn
3.7要将china译成密码,译码规律是:
用原来字母后面的第4个字母代替原来的字母.例如,字母a后面第4个字母是e.e代替a。
因此,china应译为glmre。
请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’c’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’g’、’l’、’m’、’r’、’e’,并输出。
{charc1=’c’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;
c1+=4;
c2+=4;
c3+=4;
c4+=4;
c5+=4;
printf(密码是%c%c%c%c%c\n,c1,c2,c3,c4,c5);
运行结果:
密码是glmre
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
设a=2,b=3,x=3.5,y=2.5
(1)2.5
(2)3.5
3.10写出程序运行的结果。
{inti,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.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.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。
想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。
a=_3__b=_4__c=_5
x=1.200000,y=2.400000,z=-3.600000
x+y=_3.600__y+z=-1.20__z+x=-2.40
{inta=3,b=4,c=5;
longintu=51274,n=128765;
floatx=1.2,y=2.4,z=3.6;
charc1=’a’,c2=’b’;
printf(a=%2db=%2dc=%2d\n,a,b,c);
printf(x=%f,y=%f,z=%f\n,x,y,z);
printf(x+y=%5.2fy+z=%5.2fz+x=%5.2f\n,x+y,y+z,z+x);
printf(u=%6ldn=%9ld\n,u,n);
printf(%s%s%d%s\n,c1=’a’,or,c1,(ascii));
printf(%s%s%d%s\n,c2=’a’,or,c2,(ascii));
inta,b;
floatx,y;
charc1c2;
scanf(a=%d_b=%d,a,b);
scanf(_x=%f_y=%e,x,y);
scanf(_c1=%c_c2=%c,c1,c2);
a=3_b=7
_x=8.5_y=71.82
_c1=a_c2=a
{floatr,h,c1,sa,sb,va,vb;
c1=2*3.14*r;
sa=3.14*r*r;
sb=4*sa;
va=4*3.14*r*r*r/3;
vb=sa*h;
printf(c1=%.2f\n,c1);
printf(sa=%.2f\nsb=%.2f\nva=%.2f\nvb=%.2f\n,sa,sb,va,vb);
4.9输入一个华氏温度,要求输出摄氏温度。
公式为
c=5(f-32)/9
输出要求有文字说明,取位2小数。
{floatf,c;
scanf(%f,f);
c=5*(f-32)/9;
printf(c=%.2f,c);
4.10编程序,用getchar函数读入两个字符给c1、c2,然后分别用函数和函数输出这两个字符。
并思考以下问题:
(1)变量c1、c2应定义为字符型或整形?
抑二者皆可?
(2)要求输出c1和c2值的ascii码,应如何处理?
用putchar函数还是printf函数?
(3)整形变量与字符变量是否在任何情况下都可以互相代替?
如:
charc1,c2;
与
intc1,c2;
是否无条件的等价?
{charc1,c2;
c1=getchar();
c2=getchar();
putchar(c1);
putchar(’\n’);
putchar(c2);
printf(c1=%dc2=%d\n,c1,c2);
printf(c1=%cc2=%c\n,c1,c2);
第五章
5.1什么是算术运算?
什么是关系运算?
什么是逻辑运算?
略。
5.2c语言中如何表示“真”和“假”?
系统如何判断一个量的“真”和“假”?
设有一个逻辑表达式,若其结果为“真”,则以1表示;
若其结果为“假”,则以0表示。
但是判断一个逻辑量的值时,以0代表“真”,以非0代表“假”。
例如35的值为“真”,系统给出35的值为1。
5.3写出下面各逻辑表达式的值。
设a=3,b=4,c=5。
(1)a+bcb==c
(2)a||b+cb-c
(3)!
(ab)!
c||1
(4)!
(x=a)(y=b)0
(5)!
(a+b)+c-1b+c/2
(1)0
(2)1
(3)1
(4)0
(5)1
5.4有3个整数a、b、c,由键盘输入,输出其中最大的数。
方法一
{inta,b,c;
printf(请输入3个整数:
);
scanf(%d,%d,%d,a,b,c);
if(ab)
if(bc)printf(max=%d\n,c);
elseprintf(max=%d\n,b);
elseif(ac)printf(max=%d\n,c);
elseprintf(max=%d\n,a);
方法二:
使用条件表达式,可以使程序更加简明、清晰。
程序如下:
{inta,b,c,temp,max;
temp=(ab)?
a:
b;
max=(tempc)?
temp:
c;
printf(3个整数的最大数是%d\n”,max);
5.5有一函数:
写一程序,输入x值,输出y值。
{intx,y;
printf(输入x:
{y=x;
printf(x=%3d,y=x=%d\n,x,y);
【篇三:
谭浩强_c语言程序设计(第三版)课后习题答案】
/p>
4-8
#includeiostream
#definepi3.1415
floatr,h,rl,ra,ss,sv,cv;
printf(输入圆的半径和圆柱的高\n\n);
scanf(%f%f,r,h);
rl=2*pi*r;
ra=pi*r*r;
ss=4*pi*r*r;
sv=4*pi*r*r*r/3;
cv=ra*h;
%f\n\n圆面积为:
%f\n\n圆球表面积为:
%f\n\n圆球体积为:
%f\n\n圆柱体积为:
%f\n\n,rl,ra,ss,sv,cv);
4-9
floatf,c;
printf(输入一个华氏温度\n\n);
printf(摄氏温度为:
%.2f\n\n,c);
5-4
voidmain()
inta,b,c,max;
printf(输入三个整数a,b,c\n\n);
scanf(%d%d%d,a,b,c);
if(ab)max=a;
elsemax=b;
if(maxc)max=c;
printf(最大的数为:
%d\n\n,max);
5-5
printf(输入x\n\n);
if(x1)y=x;
elseif(x10)y=2*x-1;
elsey=3*x-11;
printf(y=%f\n\n,y);
5-6
floatm;
intn;
printf(输入成绩\n\n);
scanf(%f,m);
n=m/10;
switch(n)
case0:
case1:
case2:
case3:
case4:
printf(e\n\n);
printf(d\n\n);
printf(c\n\n);
printf(b\n\n);
printf(a\n\n);
5-7
inta,b,c,i,j,n;
printf(输入五位正整数\n\n);
scanf(%d,a);
printf(\n\n);
c=a;
for(i=1;
;
i++)
b=c%10;
c=c/10;
printf(%d,b);
if(c==0)
printf(正整数为%d位数\n\n,i);
for(j=i-1;
j=0;
j--)
n=pow(10,j);
b=c/n;
c=c%n;
printf(%d\n,b);
5-8
if语句:
inti;
floatbonus;
printf(输入当月利润i\n\n);
scanf(%d,i);
if(i=100000)bonus=i/10;
elseif(i=200000)bonus=10000+(i-100000)*7.5/100;
elseif(i=400000)bonus=10000+7500+(i-200000)*5/100;
elseif(i=600000)bonus=10000+7500+10000+(i-400000)*3/100;
elseif(i=1000000)bonus=10000+7500+10000+6000+(i-600000)*1.5/100;
elsebonus=10000+7500+10000+6000+6000+(i-1000000)*1/100;
printf(应发奖金数为:
%f\n\n,bonus);
switch语句:
inti,n;
if(i1000000)n=10;
elsen=i/100000;
bonus=i/10;
bonus=10000+(i-100000)*7.5/100;
bonus=10000+7500+(i-200000)*5/100;
bonus=10000+7500+10000+(i-400000)*3/100;
bonus=10000+7500+10000+6000+(i-600000)*1.5/100;
bonus=10000+7500+10000+6000+6000+(i-1000000)*1/100;
5-9
inta,b,c,d,temp,min;
contributionn.贡献printf(输入四个数a,b,c,d\n\n);
scanf(%d%d%d%d,a,b,c,d);
effectn.结果;
效力if(ab)
n.喷泉;
源泉{
updatevt.更新;
使现代化temp=a;
△reactionn.反应;
回应a=b;
△hovervi.盘旋b=temp;
n.同伴;
同志;
伙伴}
△volcanologyn.火山学if(ac)
folkadj.民间的{
△blistern.水泡temp=a;
a=c;
c=temp;