编译预处理(几个小题目,附答案)
编译预处理一、选择题
1.以下叙述中正确的是 c
a)在程序的一行上可以出现多个有效的预处理命令行
b)使用带参的宏时,参数的类型应与宏定义时的一致
c)宏替换不占用运行时间,只占用编译时间
d)在以下定义中C R是称为“宏名”的标识符
#define C R 045
2.以下程序的运行结果是______b__.
#define MIN(x,y) (x)<(y)?(x):(y)
main()
{int i=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n",k);
}
a)10 b)15 c)100 d)150
3.若有宏定义如下:
#define X 5
#define Y X+1
#define Z Y*X/2
则执行以下printf语句后,输出结果是___d____.
int a;a=Y;
printf("%d\n",Z);
printf("%d\n",--a);
a)7 b)12 c)12 d)7
6 6 5 5
4.请读程序:
#include <stdio.h
#define MUL(x,y) (x)*y
main()
{
int a=3,b=4,c;
c=MUL(a++,b++);
printf("%d\n",c);
}
上面程序的输出结果是_____a_____.
a)12 b)15 c)20 d) 16
5.对下面程序段:
#define A 3
#define B(a) ((A+1)*a)
...
x=3*(A+B(7));
正确的判断是____b_____.
a)程序错误,不许嵌套宏定义
b)x=93
c)x=21
d)程序错误,宏定义不许有参数
6.以下正确的描述是____c________.
a)C语言的预处理功能是指完成宏替换和包含文件的调用还有条件编译
b)预处理指令只能位于C源程序文件的首部
c)凡是C源程序中行首以"#"标识的控制行都是预处理指令
d)C语言的编译预处理就是对源程序进行初步的语法检查
7.在"文件包含"预处理语句的使用形式中,当#include后面的文件名用< >(尖括号)括起时,找寻被包含文件的方式是c____.
a)仅仅搜索当前目录
b)仅仅搜索源程序所在目录
c)直接按系统设定的标准方式搜索目录
d)先在源程序所在目录搜索,再按照系统设定的标准方式搜索
qq:群211273085,欢迎大家踊跃交流。