练习题8参考答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

练习题8参考答案

二、填空题

1. C 提供的预处理功能主要有条件编译、_宏定义、文件包含等三种。

2. C 规定预处理命令必须以 # 开头;定义宏的关键字是_define 。

3.在预编译时将宏名替换成字符串的过程称为宏展开。

4. 预处理命令不是 C 语句,不必在行末加分号。

5. 以头文件 stdio.h 为例,文件包含的两种格式为: #include_,_#include “stdio.h”。

6.下面程序的运行结果为 12 。

7.以下程序的输出结果是 28 。

8.以下程序输出的结果是 c=0 。

三、程序设计题

1. 定义一个带参的宏,求两个整数的余数。通过宏调用,输出求得的结果。

程序设计如下:

#include

#define R(m,n) (m)%(n)

void main()

{

int m,n;

printf("enter two integers:\n");

scanf("%d%d",&m,&n);

printf("remainder=%d\n",R(m,n));

}

2. 分别用函数和带参的宏,从 3 个数中找出最大者。

程序设计如下:

#include

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

int max3(int a,int b,int c)

{

int m;

m=a>b?a:b;

m=m>c?m:c;

return m;

}

void main()

{

int m,n,k;

printf("enter 3 integer:\n");

scanf("%d%d%d",&m,&n,&k);

printf("1. MACRO max=%d\n",MAX(MAX(m,n),k));

printf("2. function max=%d\n",max3(m,n,k));

}

3. 输入一个整数 m,判断它能否被 3 整除。要求利用带参的宏实现。程序设计如下:

#include

#define DIVIDEDBY3(m) (m)%3==0

void main()

{ int m;

printf("enter a integer:\n");

scanf("%d",&m);

if(DIVIDEDBY3(m))

printf("%d is divided by 3\n",m);

else

printf("%d is not divided by 3\n",m);

}

相关文档
最新文档