C语言题库第7章宏定义与预处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七章宏定义与预处理一.单项选择
1. 以下程序的运行结果是( D )。
#include
#define ADD(x) x+x
int main ( )
{
int m=1,n=2,k=3,sum ;
sum = ADD(m+n)*k ;
printf(“%d\n”,sum) ;
return 0;
}
A.18
B.9
C.12
D.10
2. 以下程序的运行结果是( C )。
#include
#define MIN(x,y) (x)>(y) ? (x) : (y)
int main ( ) {
int i=10, j=15 , k;
k = 10*MIN(i,j);
printf(“%d\n”,k);
return 0;
}
A.15
B.100
C.10
D.150
3. 以下程序的运行结果是( A )。
#include
#define X 5
#define Y X+1
#define Z Y*X/2
int main ( ) {
int a=Y;
printf(“%d\n”,Z);
printf(“%d\n”,--a);
return 0;
}
A.75
B.125
C.76
D.126
4. 以下程序的运行结果是( C )。
#include
#define DOUBLE(r) r*r
int main ( ) {
int x=1,y=2,t;
t = DOUBLE(x+y) ;
printf (“%d\n”,t); return 0;
}
A.7
B.6
C.5
D.8
5. 在“文件包含”预处理命令形式中,当#include后面的文件名用””(双引号)括起时,寻找被包含文件的方式是( C )。
A.仅仅搜索源程序所在目录
B.直接按系统设定的标准方式搜索目录
C.先在源程序所在目录中搜索,再按系统设定的标准方式搜索
D.仅仅搜索当前目录
6. 若有定义
#define N 2
#define Y(n) ((N+1)*n)
则执行语句z=2*(N+Y(5));后,z的值为( C )。
A.无确定值
B.语句有错误
C.34
D.70
7. 若有定义#define MOD(x,y) x%y,则执行下面语句后的输出为( A )。
int z,a=15;
float b=100;
z=MOD(b,a);
printf(“%d\n”,z++);
A.有语法错误
B.11
C.10
D.6
8. 在任何情况下计算平方数都不会引起二义性的宏定义是( B )
A.#define POWER(x) (x)*(x)
B.#define POWER(x) ((x)*(x))
C.#define POWER(x) (x*x)
D.#define POWER(x) x*x
9. 在宏定义#define PI 3.1415926中,用宏名PI代替一个( D )。
A.双精度数
B.常量
C.单精度数
D.字符串
10. 以下叙述不正确的是( A )。
A.C程序在执行过程中对预处理命令行进行处理
B.在程序中凡是以#开始的语句行都是预处理命令行
C.预处理命令行可以出现在C程序中任意一行上
D.预处理命令行都必须以#开始
11. 以下叙述中正确的是( A )。
A.宏替换不占用运行时间,只占用编译时间
B.C语言的编译预处理就是对源程序进行初步的语法检查
C.在程序的一行上可以出现多个有效的预处理命令行
D.使用带参数的宏时,参数的类型应与宏定义时的一致
12. 在“文件包含”预处理命令形式中,当#include后名的文件名用<>(尖括号)括起时,寻找被包含文件的方式是( B )。
A.先在源程序所在目录中搜索,再按系统设定的标准方式搜索
B.直接按系统设定的标准方式搜索目录
C.仅仅搜索源程序所在目录
D.仅仅搜索当前目录
13. 以下有关宏替换的叙述不正确的是( A )。
A.宏名必须用大写字母表示
B.宏名无类型
C.宏替换只是字符替换
D.宏替换不占用运行时间