1、c语言程序设计第三版谭浩强课后习题答案汇编c语言程序设计第三版谭浩强课后习题答案【篇一:c语言程序设计第三版谭浩强课后习题答案完整版】ude stdio.h void main() printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); printf(very good! n); printf(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n); 1.6 #include stdio.h void main() fl
2、oat max(float x,float y,float z); float a,b,c; printf(请分别输入a,b,c:n); scanf(%f,%f,%f,a,b,c); printf(max=%f,max(a,b,c); float max(float x,float y,float z) float m,n; m=xy? x: y; n=mz? m: z; return(n); 3.6 #include stdio.h void main() char c1=a,c2=b,c3=c,c4=101,c5=116; printf(“a%c b%ctc%ctabcn”,c1,c2,c
3、3); printf(“tb%c %cn”,c4,c5); 3.9.1 #include stdio.h void main() double x=2.5,y=4.7,z; int a=7; z=x+a%3*(int)(x+y)%2/4; printf(该表达式的值为:%f,z); 3.9.2 #include stdio.h void main() int a=2,b=3; float x=3.5,y=2.5,z; z=(float)(a+b)/2+(int)x%(int)y; printf(该表达式的值为:%f,z); 4.5 #include stdio.h void main() in
4、t a=5,b=7; double 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,n,n,n); printf(%ld,%lo,%xn,n,n,n);
5、 printf(%u,%o,%x,%dn,u,u,u,u);printf(%s,%5.3sn,computer,computer); 4.6 #include stdio.h void main() int a,b; float x,y; char c1,c2; scanf(a=%d b=%d,a,b); scanf( %f %e,x,y); scanf( %c %c,c1,c2); 4.7 #includestdio.h void main() int a,b; float x,y,z; char c1,c2; scanf(%5d%5d,a,b); scanf(%f%f%*f%f,x,y,z
6、); scanf(%c%c,c1,c2); 4.8 #include stdio.h #define pi 3.14 void main() float r,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(圆周长为:%.2fn,l); printf(圆面积为:%.2fn,s1); printf(圆球表面积为:%.2fn,s2); printf(圆球体积为:%.2fn,v1); printf(圆柱体积为:%.2f
7、n,v2); 5.5 #include stdio.h void main() float x,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 #include stdio.h void main() float b; int a; printf(请输入该同学的成绩:n); scanf(%f,b); while (b0|b100) printf(输入有误,请重新输入:n); scanf
8、(%f,b); a= int(b/10); if(a6) a=5; switch(a) case 10: case 9: printf(该同学为等级:a);break; case 8: printf(该同学为等级:b);break; case 7: printf(该同学为等级:c);break; case 6: printf(该同学为等级:d);break; case 5: printf(该同学为等级:e);break; #include stdio.h #include math.h void main() int x,y,m,n,i=1,j=0; printf(请给出一个不多于5位的正整数
9、: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语言程序设计+谭浩强+第三版+课后习题答案】 * very good! * 解: mian() printf(“*”); printf(“n”); printf(“very good!n”); printf(“n”); printf(“*”); 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。 解: mian() int a,b,c,max; pr
10、intf(“请输入三个数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() char c1=a,c2=b,c3=c,c4=101,c5=116; printf(“a%cb%ctc%ctabcn”,c1,c2,c3); printf(“tb%c %c”,c4,c5); 解: aabbccabc an 3.7 要将china译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母例如,字母a后面
11、第4个字母是ee代替a。因此,china应译为glmre。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,c、h、i、n、a,经过运算,使c1、c2、c3、c4、c5分别变为g、l、m、r、e,并输出。 解: #include stdio.h main() char c1=c,c2=h,c3=i,c4=n,c5=a;c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf(密码是%c%c%c%c%cn,c1,c2,c3,c4,c5); 运行结果: 密码是glmre 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4
12、 设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() 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.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
13、 解: (1) 24 (2) 10 (3) 60(4) 0 (5) 0(6) 0 第四章 44若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() int a=3,b=4,c=5;long int u=51274,n=128765; float x=1.2,y=2.4,z=3
14、.6; char c1=a,c2=b; printf(a=%2d b=%2d c=%2dn,a,b,c); printf(x=%f,y=%f,z=%fn,x,y,z); printf(x+y=%5.2f y+z=%5.2f z+x=%5.2fn,x+y,y+z,z+x); printf(u=%6ld n=%9ldn,u,n); printf(%s %s %d%sn,c1=a,or,c1,(ascii); printf(%s %s %d%sn,c2=a,or,c2,(ascii); main() int a,b;float x,y;char c1c2; scanf(a=%d_b=%d,a,b);
15、 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() float r,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=%.2fn,c1); printf(sa=%.2fnsb=%.2fnva=%.2fnvb=%.2fn,sa,sb,va,vb); 49输入一个华氏温度,要求输出摄氏温度。公式为 c=
16、5(f-32)/9 输出要求有文字说明,取位2小数。 main() float f,c; scanf(%f,f); c=5*(f-32)/9; printf(c=%.2f,c); 410编程序,用getchar函数读入两个字符给c1、c2,然后分别用函数和函数输出这两个字符。并思考以下问题:(1)变量c1、c2应定义为字符型或整形?抑二者皆可?(2)要求输出c1和c2值的ascii码,应如何处理?用putchar函数还是printf函数?(3)整形变量与字符变量是否在任何情况下都可以互相代替?如: char c1,c2; 与 int c1,c2; 是否无条件的等价? #includestdio
17、.h main() char c1,c2; c1=getchar();c2=getchar(); putchar(c1);putchar(n);putchar(c2);putchar(n); #includestdio.h main() char c1,c2; c1=getchar();c2=getchar(); printf(c1=%d c2=%dn,c1,c2); printf(c1=%c c2=%cn,c1,c2); 第五章 5.1 什么是算术运算?什么是关系运算?什么是逻辑运算? 解:略。 5.2 c语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”? 解:设有一个逻辑表
18、达式,若其结果为“真”,则以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,由键盘输入,输出其中最大的数。 解: 方法一 #include stdio.h main() int a,b,c; pr
19、intf(请输入3个整数:); scanf(%d,%d,%d,a,b,c); 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); 方法二:使用条件表达式,可以使程序更加简明、清晰。 程序如下: #include stdio.h main() int a,b,c,temp,max; printf(请输入3个整数:); scanf(%d,%d,%d,a,b,c); temp=(ab)?a:b; max=(tempc)?temp:
20、c; printf(3个整数的最大数是%dn”,max); 5.5 有一函数: 写一程序,输入x值,输出y值。 解: #include stdio.h main() int x,y; printf(输入x:); scanf(%d,x); if(x1) y=x; printf(x=%3d, y=x=%dn,x,y);【篇三:谭浩强_c语言程序设计(第三版)课后习题答案】/p 4-8 #include iostream #define pi 3.1415 void main() float r,h,rl,ra,ss,sv,cv; printf(输入圆的半径和圆柱的高nn); scanf(%f%f,
21、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(圆周长为:%fnn圆面积为:%fnn圆球表面积为:%fnn圆球体积为:%fnn圆柱体积为:%fnn,rl,ra,ss,sv,cv); 4-9 #include iostream void main() float f,c; printf(输入一个华氏温度nn); scanf(%f,f); c=5*(f-32)/9; printf(摄氏温度为:%.2fnn,c); 第五章 5-4 #include iostreamvoid main() int a,
22、b,c,max; printf(输入三个整数a,b,cnn); scanf(%d%d%d,a,b,c); if(ab) max=a; else max=b; if(maxc) max=c; printf(最大的数为:%dnn,max); 5-5 #include iostream void main() float x,y; printf(输入xnn); scanf(%f,x); if(x1) y=x; else if(x10) y=2*x-1; else y=3*x-11; printf(y=%fnn,y); 5-6 #include iostream void main() float m
23、; int n; printf(输入成绩nn); scanf(%f,m); n=m/10; switch(n) case 0: case 1: case 2: case 3: case 4: case 5:printf(enn);break; case 6:printf(dnn);break; case 7:printf(cnn);break; case 8:printf(bnn);break; case 9: case 10:printf(ann);break; 5-7 #include iostream #include math.h void main() int a,b,c,i,j,n
24、; printf(输入五位正整数nn); scanf(%d,a); printf(nn); c=a; for(i=1;i+) b=c%10; c=c/10; printf(%d,b); if(c=0) printf(nn); printf(正整数为%d位数nn,i);break; c=a;for(j=i-1;j=0;j-) n=pow(10,j); b=c/n; c=c%n; printf(%dn,b); 5-8 if语句: #include iostream void main() int i; float bonus; printf(输入当月利润inn); scanf(%d,i); if(
25、i=100000) bonus=i/10; else if(i=200000) bonus=10000+(i-100000)*7.5/100; else if(i=400000) bonus=10000+7500+(i-200000)*5/100; else if(i=600000) bonus=10000+7500+10000+(i-400000)*3/100; else if(i=1000000) bonus=10000+7500+10000+6000+(i-600000)*1.5/100; else bonus=10000+7500+10000+6000+6000+(i-1000000)
26、*1/100; printf(应发奖金数为:%fnn,bonus); switch语句: #include iostream void main() int i,n; float bonus; printf(输入当月利润inn); scanf(%d,i);if(i1000000) n=10; else n=i/100000; switch(n) case 0:bonus=i/10;break; case 1:bonus=10000+(i-100000)*7.5/100;break; case 2: case 3:bonus=10000+7500+(i-200000)*5/100;break;
27、case 4: case 5:bonus=10000+7500+10000+(i-400000)*3/100;break; case 6: case 7: case 8: case 9:bonus=10000+7500+10000+6000+(i-600000)*1.5/100;break; case 10:bonus=10000+7500+10000+6000+6000+(i-1000000)*1/100;break; printf(应发奖金数为:%fnn,bonus); 5-9 #include iostream void main() int a,b,c,d,temp,min;contribution n. 贡献 printf(输入四个数a,b,c,dnn); scanf(%d%d%d%d,a,b,c,d);effect n. 结果;效力 if(ab)n. 喷泉;源泉 update vt. 更新;使现代化 temp=a;reaction n. 反应;回应 a=b;hover vi. 盘旋 b=temp;n.同伴;同志;伙伴 volcanology n. 火山学 if(ac)folk adj. 民间的 blister n. 水泡 temp=a; a=c; c=temp;
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2