c语言程序设计第三版谭浩强课后习题答案汇编.docx
- 文档编号:5508753
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:18
- 大小:19.47KB
c语言程序设计第三版谭浩强课后习题答案汇编.docx
《c语言程序设计第三版谭浩强课后习题答案汇编.docx》由会员分享,可在线阅读,更多相关《c语言程序设计第三版谭浩强课后习题答案汇编.docx(18页珍藏版)》请在冰豆网上搜索。
c语言程序设计第三版谭浩强课后习题答案汇编
c语言程序设计第三版谭浩强课后习题答案
【篇一:
c语言程序设计第三版谭浩强课后习题答案完整版】
udestdio.h
voidmain()
{
printf(*********************************\n);
printf(verygood!
\n);printf(*********************************\n);
}
1.6
#includestdio.h
voidmain()
{
floatmax(floatx,floaty,floatz);
floata,b,c;
printf(请分别输入a,b,c:
\n);
scanf(%f,%f,%f,a,b,c);
printf(max=%f,max(a,b,c));
}
floatmax(floatx,floaty,floatz)
{
floatm,n;
m=xy?
x:
y;
n=mz?
m:
z;
return(n);
}
3.6
#includestdio.h
voidmain()
{
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\n”,c4,c5);
}
3.9.1
#includestdio.h
voidmain()
{
doublex=2.5,y=4.7,z;
inta=7;
z=x+a%3*(int)(x+y)%2/4;
printf(该表达式的值为:
%f,z);
}
3.9.2
#includestdio.h
voidmain()
{
inta=2,b=3;
floatx=3.5,y=2.5,z;
z=(float)(a+b)/2+(int)x%(int)y;
printf(该表达式的值为:
%f,z);
}
4.5
#includestdio.h
voidmain()
{
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
#includestdio.h
voidmain()
{
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
voidmain()
{
inta,b;
floatx,y,z;
charc1,c2;
scanf(%5d%5d,a,b);
scanf(%f%f%*f%f,x,y,z);
scanf(%c%c,c1,c2);
}
4.8
#includestdio.h
#definepi3.14
voidmain()
{
floatr,h,l,s1,s2,v1,v2;
printf(请输入r,h的值:
\n);
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
voidmain()
{
floatx,y;
printf(请输入x的值:
\n);
scanf(%f,x);
if(x1)
y=x;
else
if(x=1x10)
y=2*x-1;
else
y=3*x-11;
printf(x与y的值分别为:
\n%f,%f,x,y);
printf(\n);
}
5.6#includestdio.h
voidmain()
{
floatb;
inta;
printf(请输入该同学的成绩:
\n);
scanf(%f,b);
while(b0||b100)
{
printf(输入有误,请重新输入:
\n);
scanf(%f,b);
}
a=int(b/10);
if(a6)a=5;
switch(a)
{
case10:
case9:
printf(该同学为等级:
a);break;
case8:
printf(该同学为等级:
b);break;
case7:
printf(该同学为等级:
c);break;
case6:
printf(该同学为等级:
d);break;
case5:
printf(该同学为等级:
e);break;
}
}
#includestdio.h
#includemath.h
voidmain()
{
intx,y,m,n,i=1,j=0;
printf(请给出一个不多于5位的正整数:
\n);
scanf(%d,x);
while(x=0||x=100000)
{printf(输入有误\n请给出一个不多于5位的正整数:
\n);scanf(%d,x);
}
for(n=0;n5;n++)
{
y=int(x/pow(10,n));
【篇二:
c语言程序设计+谭浩强+第三版+课后习题答案】
>**************************
verygood!
**************************
解:
mian()
{printf(“**************************”);
printf(“\n”);
printf(“verygood!
\n”);
printf(“\n”);
printf(“**************************”);
}
1.6编写一个程序,输入a、b、c三个值,输出其中最大值。
解:
mian()
{inta,b,c,max;
printf(“请输入三个数a,b,c:
\n”);
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’,并输出。
解:
#includestdio.h
main()
{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写出程序运行的结果。
main()
{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
main()
{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));
}
main()
{
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
main()
{floatr,h,c1,sa,sb,va,vb;
scanf(%f,%f,r,h);
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小数。
main()
{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;
是否无条件的等价?
#includestdio.h
main()
{charc1,c2;
c1=getchar();c2=getchar();
putchar(c1);putchar(’\n’);putchar(c2);putchar(’\n’);
}
#includestdio.h
main()
{charc1,c2;
c1=getchar();c2=getchar();
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,由键盘输入,输出其中最大的数。
解:
方法一
#includestdio.h
main()
{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);
}
方法二:
使用条件表达式,可以使程序更加简明、清晰。
程序如下:
#includestdio.h
main()
{inta,b,c,temp,max;
printf(请输入3个整数:
);
scanf(%d,%d,%d,a,b,c);
temp=(ab)?
a:
b;
max=(tempc)?
temp:
c;
printf(3个整数的最大数是%d\n”,max);
}
5.5有一函数:
写一程序,输入x值,输出y值。
解:
#includestdio.h
main()
{intx,y;
printf(输入x:
);
scanf(%d,x);
if(x1)
{y=x;
printf(x=%3d,y=x=%d\n,x,y);
【篇三:
谭浩强_c语言程序设计(第三版)课后习题答案】
/p>4-8
#includeiostream
#definepi3.1415
voidmain()
{
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;
printf(圆周长为:
%f\n\n圆面积为:
%f\n\n圆球表面积为:
%f\n\n圆球体积为:
%f\n\n圆柱体积为:
%f\n\n,rl,ra,ss,sv,cv);
}
4-9
#includeiostream
voidmain()
{
floatf,c;
printf(输入一个华氏温度\n\n);
scanf(%f,f);
c=5*(f-32)/9;
printf(摄氏温度为:
%.2f\n\n,c);
}
第五章
5-4
#includeiostream
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
#includeiostream
voidmain()
{
floatx,y;
printf(输入x\n\n);
scanf(%f,x);
if(x1)y=x;
elseif(x10)y=2*x-1;
elsey=3*x-11;
printf(y=%f\n\n,y);
}
5-6
#includeiostream
voidmain()
{
floatm;
intn;
printf(输入成绩\n\n);
scanf(%f,m);
n=m/10;
switch(n)
{
case0:
case1:
case2:
case3:
case4:
case5:
printf(e\n\n);break;
case6:
printf(d\n\n);break;
case7:
printf(c\n\n);break;
case8:
printf(b\n\n);break;
case9:
case10:
printf(a\n\n);break;
}
}
5-7
#includeiostream
#includemath.h
voidmain()
{
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(\n\n);
printf(正整数为%d位数\n\n,i);break;
}
}
c=a;
for(j=i-1;j=0;j--)
{
n=pow(10,j);
b=c/n;
c=c%n;
printf(%d\n,b);
}
}
5-8
if语句:
#includeiostream
voidmain()
{
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语句:
#includeiostream
voidmain()
{
inti,n;
floatbonus;
printf(输入当月利润i\n\n);
scanf(%d,i);
if(i1000000)n=10;
elsen=i/100000;
switch(n)
{
case0:
bonus=i/10;break;
case1:
bonus=10000+(i-100000)*7.5/100;break;
case2:
case3:
bonus=10000+7500+(i-200000)*5/100;break;
case4:
case5:
bonus=10000+7500+10000+(i-400000)*3/100;break;
case6:
case7:
case8:
case9:
bonus=10000+7500+10000+6000+(i-600000)*1.5/100;break;
case10:
bonus=10000+7500+10000+6000+6000+(i-1000000)*1/100;break;}
printf(应发奖金数为:
%f\n\n,bonus);
}
5-9
#includeiostream
voidmain()
{
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;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 第三 版谭浩强 课后 习题 答案 汇编