《C程序设计》(谭浩强著)课后答案下载

时间:2017-04-25 08:35:49 C语言答案 我要投稿

《C程序设计》(谭浩强著)课后答案下载

  《c程序设计》是2010年清华大学出版社出版的图书,作者是谭浩强。以下是由阳光网小编整理关于《C程序设计》(谭浩强著)课后答案下载地址,希望大家喜欢!

  点击进入:《C程序设计》(谭浩强著)课后答案下载地址

  《C程序设计》(谭浩强著)课后答案预览

  9.1定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。

  #define CHANGE(a,b,t) t=a;a=b;b=a

  main()

  {int c,d,s;

  scanf("%d,%d",&c,&d);

  CHANGE(c,d,s);

  printf("c=%d,d=%d\n",c,d);

  }

  9.2输入两个整数,求他们相除的余数。用带参的宏来实现,编程序。

  #define Q(a,b) a%b

  main()

  {int c,d,t;

  scanf("%d %d",&c,&d);

  t=Q(c,d);

  printf("t=%d\n",t);

  }

  9.3三角形面积为:

  其中S=(a+b+c)/2,a、b、c为三角形的三边。定义两个带参的宏S,一个用来求area,另一个宏用来求。写程序,在程序中用带实参的宏名来求面积area。

  #include"math.h"

  #define SSS(m,n,k) (m+n+k)/2

  #define AQRT(m,n,k) sqrt(SSS(m,n,k)*(SSS(m,n,k)-m)*(SSS(m,n,k)-n)*(SSS(m,n,k)-k))

  main()

  {float a,b,c,s,area;

  scanf("%f %f %f",&a,&b,&c);

  s=SSS(a,b,c);

  area=AQRT(a,b,c);

  printf("s=%.3f area=%.3f\n",s,area);

  }

  或

  #include"math.h"

  #define SSS(m,n,k) (m+n+k)*0.5

  #define AQRT(m,n,k) sqrt(((m+n+k)/2)*((m+n+k)/2-m)*((m+n+k)/2-n)*((m+n+k)/2-k))

  main()

  {float a,b,c,t,area;

  scanf("%f %f %f",&a,&b,&c);

  t=SSS(a,b,c);

  area=AQRT(a,b,c);

  printf("t=%.3f;area=%.3f\n",t,area);

  }

  或

  #include"math.h"

  #define SSS(m,n,k) ((m+n+k)/2)

  #define AQRT(m,n,k,m,n,k,m,n,k,m,n,k,m,n,k,m,n,k,m,n,k,m,n,k,m,n,k) sqrt(SSS*(SSS-m)*(SSS-n)*(SSS-k))

  main()

  {float a,b,c,t,area;

  scanf("%f %f %f",&a,&b,&c);

  t=SSS(a,b,c);

  area=AQRT(a,b,c,a,b,c,a,b,c,a,b,c,a,b,c,a,b,c,a,b,c,a,b,c,a,b,c);

  printf("t=%.3f;area=%.3f\n",t,area);

  }

  9.4给年份year,定义一个宏,以判别该年份是否闰年。提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的.形式为

  #define LEAP_YEAR(y) (读者设计的字符串)

  在程序中用以下语句输出结果:

  if (LEAP_YEAR(year)) printf("%d is a leap year",year);

  else printf ("%d is not a leap year",year);

  #define LEAPYEAR(y) y%4

  main()

  {int y;

  scanf("%d",&y);

  if(LEAPYEAR(y)) printf("%d is a not leap year\n",y);

  else printf("%d is a lear year\n",y);

  }

  9.6请设计输出实数的格式,包括:⑴一行输出一个实数;⑵一行内输出两个实数;⑶一行内输出三个实数。实数用"6.2f"格式输出。

  #define PR1(x) printf("%6.2f\n",x)

  #define PR2(x) printf("%6.2f\t%6.2f\n",x,x)

  #define PR3(x) printf("%6.2f\t%6.2f\t%6.2f\n",x,x,x)

  main()

  {float a;scanf("%f",&a);

  PR1(a);PR2(a);PR3(a);

  }

  9.7设计所需的各种各样的输出格式(包括整数、实属、字符串等),用一个文件名"fornat.h",把信息都放到这个文件内,另编一个程序文件,用命令#include "fornat.h"以确保能使用这些格式。

  分别用函数和带参的宏,从三个数中找出最大的数。

  #define MAX(a,b,c) (a>((b>c)? b:c))? a:((b>c)? b:c)

  main()

  {float x,y,z,t;

  scanf("%f,%f,%f",&x,&y,&z);

  t=MAX(x,y,z);

  printf("%.4f\n",t);

  }

  9.10用条件编译方法实现以下功能:

  输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下一字母(如’a’变成’b’……’z’变成’a’其它字符不变)。用命令来控制是否要译成密码。例如:

  #define CHANGE 1

  则输出密码。若:

  #define CHANGE 0

  则不译为密码,按原码输出。

  #define CHANGE 1

  main()

  {char str[80],c;int i=0;

  gets(str);

  while(str[i]!=’\0’)

  {

  #if CHANGE

  if(str[i]==90||str[i]==122) str[i]=str[i]-25;

  else if(str[i]>=65&&str[i]<90||str[i]>=97&&str[i]<122) str[i]=str[i]+1;

  #endif

  i++;

  }

  puts(str);

  }

  或

  #define CHANGE 1

  main()

  {char str[80],*c;int i=0;

  gets(str);c=str;

  while(*c!=’\0’)

  {

  #if CHANGE

  if(*c==90||*c==122) *c=*c-25;

  else if(*c>=65&&*c<90||*c>=97&&*c<122) *c=*c+1;

  #endif

  c++;

  }

  puts(str);

  }


【《C程序设计》(谭浩强著)课后答案下载】相关文章:

1.C程序设计第四版(谭浩强著)课后答案下载

2.C语言程序设计(杨勇著)课后答案下载

3.C程序设计(李玲玲著)课后答案下载

4.《C程序设计》谭浩强第四版课后答案下载

5.C语言程序设计教程第三版(谭浩强 张基温著)课后答案下载

6.C语言程序设计(陈明晰著)课后答案下载

7.C语言程序设计(张世禄著)课后答案下载

8.C语言程序设计(解晨光著)课后答案下载