练习题8参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习题8参考答案
二、填空题
1. C 提供的预处理功能主要有条件编译、_宏定义、文件包含等三种。
2. C 规定预处理命令必须以 # 开头;定义宏的关键字是_define 。
3.在预编译时将宏名替换成字符串的过程称为宏展开。
4. 预处理命令不是 C 语句,不必在行末加分号。
5. 以头文件 stdio.h 为例,文件包含的两种格式为: #include
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);
}