- 23
- 0
- 约 4页
- 2017-06-07 发布于重庆
- 举报
c语言7编译预处理
七、编译预处理
(一)选择题
1、以下叙述中正确的是_________。
A.在程序的一行上可以出现多个有效的预处理命令行
B.使用带参的宏时,参数的类型应与宏定义时的一致
C.宏替换不占用运行时间,只占用编译时间
D.在以下定义中C R是称为“宏名”的标识符
#define C R 045
2、以下程序的运行结果是_________。
#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语句后,输出结果是_________。
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.12 B.15 C.20 D. 16
5、对下面程序段:
#define A 3
#define B(a) ((A+1)*a)
...
x=3*(A+B(7));
正确的判断是_________。
A.程序错误,不许嵌套宏定义
B.x=93
C.x=21
D.程序错误,宏定义不许有参数
6、以下正确的描述是_________。
A.C语言的预处理功能是指完成宏替换和包含文件的调用
B.预处理指令只能位于C源程序文件的首部
C.凡是C源程序中行首以#标识的控制行都是预处理指令
D.C语言的编译预处理就是对源程序进行初步的语法检查
7、在文件包含预处理语句的使用形式中,当#include后面的文件名用 (尖括号)括起时,找寻被包含文件的方式是_________。
A.仅仅搜索当前目录
B.仅仅搜索源程序所在目录
C.直接按系统设定的标准方式搜索目录
D.先在源程序所在目录搜索,再按照系统设定的标准方式搜索
8、有以下程序
#define P 3
void F(int x){return(P*x*x);}
main()
{printf(%d\n,F(3+5));}
程序运行后的输出结果是_________。
A.192 B.29 C.25 D.编译出错
9、请读程序:
#define ADD(x) x+x
main()
{int m=1,n=2,k=3; int sum=ADD(m+n)*k;
printf(sum=%d,sum);
}
上面程序的运行结果是_________。
A.sum=9 B.sum=10 C.sum=12 D.sum=18
10、预处理命令是以_________开头的
A.\ B.# C. D.%
11、有关宏定义的正确说明是_________。
A.可出现在一行中的任何位置
B.只能放在程序的开头,且每个宏定义单独占一行
C.可以出现在程序的任何位置
D.以#开头的行,可出现在程序的任何位置,通常每一个宏定义只能单独占一行,使用字符\可实现一个宏定义占用若干行。
12、执行下面的程序后,a的值是_________。
# define SQR (x) x*x
main()
{int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf(“%d\n”,a);}
A.10 B.1
C.9 D.20
15.下列运行时输入2,5,8,运行结果是_________。
#define MAX(a,b) ((a)(b)?(a):(b))
main()
{int a,b,c;
scanf(“%d,%d,%d”,a,b,C);
printf(“%d\n”,MAX(MAX(A,B
原创力文档

文档评论(0)