当前位置:文档之家› 练习题8参考答案

练习题8参考答案

练习题8参考答案
二、填空题
1. C 提供的预处理功能主要有条件编译、_宏定义、文件包含等三种。

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

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

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

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

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

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

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

三、程序设计题
1. 定义一个带参的宏,求两个整数的余数。

通过宏调用,输出求得的结果。

程序设计如下:
#include <stdio.h>
#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 <stdio.h>
#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 <stdio.h>
#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);
}。

相关主题