C语言程序设计第三版谭浩强
课后习题答案完整版
第一章
1.5请参照本章例题,编写一个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; 
  printf(“请输入三个数a,b,c:\n”); 
  scanf(“%d,%d,%d”,&a,&b,&c); 
  max=a; 
  if(max<b) 
max=b; 
if(max<c) 
max=c; 
  printf(“最大数为:“%d”,max); 
第三章 
3.6写出以下程序运行的结果。 
  main() 
  {char c1=’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’,并输出。 
解: 
#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%c\n",c1,c2,c3,c4,c5); 
运行结果: 
密码是Glmre 
input not supported英雄联盟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() 
{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 
解: 
  (1) 24    (2) 10    (3) 60  (4) 0    (5) 0  (6) 0 
web app fifa22第四章 
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 
c1=ˊaˊ_or_97(ASCII) 
c2=ˊbˊ_or_98(ASCII) 
main() 
{int a=3,b=4,c=5; 
long int u=51274,n=128765; 
float x=1.2,y=2.4,z=3.6; 
char c1=’a’,c2=’b’; 
printf("a=%2d b=%2d c=%2d\n",a,b,c); 
printf("x=%f,y=%f,z=%f\n",x,y,z); 
printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x); 
printf("u=%6ld n=%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)"); 
4.7用scanf下面的函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=ˊAˊ,c2=ˊaˊ,问在键盘上如何输入? 
main() 
int a,b;float x,y;char c1c2; 
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 
4.8设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 
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=%.2f\n",C1); 
printf("Sa=%.2f\nSb=%.2f\nVa=%.2f\nVb=%.2f\n",Sa,Sb,Va,Vb); 
putchar函数
4.9输入一个华氏温度,要求输出摄氏温度。公式为 
c=5(F-32)/9 
输出要求有文字说明,取位2小数。
main() 
{float F,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)整形变量与字符变量是否在任何情况下都可以互相代替?如: 
char c1,c2; 
与 
int c1,c2; 
是否无条件的等价? 
#include"stdio.h" 
main() 
{char c1,c2;  手机网站不支持下载的视频怎么下载
c1=getchar();c2=getchar(); 
putchar(c1);putchar(’\n’);putchar(c2);putchar(’\n’); 
#include"stdio.h" 
main() 
{char c1,c2;  自驾游网站模板
c1=getchar();c2=getchar(); 
printf("c1=%d c2=%d\n",c1,c2); 
printf("c1=%c c2=%c\n",c1,c2); 
第五章 
5.1  什么是算术运算?什么是关系运算?什么是逻辑运算? 
解:略。 
 
5.2  C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”? 
解:设有一个逻辑表达式,若其结果为“真”,则以1表示;若其结果为“假”,则以0表示。但是判断一个逻辑量的值时,以0代表“真”,以非0代表“假”。例如3&&5的值为“真”,系统给出3&&5的值为1。 
 
5.3  写出下面各逻辑表达式的值。设a=3,b=4,c=5。 
(1)  a+b>c&&b==c 
(2)  a||b+c&&b-c 
(3)  !(a>b)&&!c||1 
(4)  !(x=a)&&(y=b)&&0 
(5)  !(a+b)+c-1&&b+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; 
printf("请输入3个整数:"); 
scanf("%d,%d,%d",&a,&b,&c); 
if(a<b) 
if(b<c)  printf("max=%d\n",c); 
else  printf("max=%d\n",b); 
else  if(a<c)  printf("max=%d\n",c); 
else  printf("max=%d\n",a); 
 
 
方法二:使用条件表达式,可以使程序更加简明、清晰。 
程序如下: 
#include <stdio.h> 
main() 
{ int a,b,c,temp,max; 
printf("请输入3个整数:"); 
scanf("%d,%d,%d",&a,&b,&c); 
temp=(a>b)?a:b;          /* 将a和b中的大者存人temp中 */ 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。