一、选择题
1、对宏命令的处理是_ ___
A、在程序执行时进行的
B、在对程序中其他语句进行编译前进行的
C、在程序连接时进行的
D、与程序中其他语句同时进行编译
2、下面对编译预处理的叙述正确的是_ _____
A、预处理命令只能位于程序的开始处
B、预处理功能是指完成宏替换和文件包含的调用
C、只要行首以“#”标识的控制行都是预处理命令
D、编译预处理就是对源程序进行初步的语法检查
3、以下叙述中不正确的是()。
A)预处理命令行都必须以#号开始
B)在程序中凡是以#号开始的语句行都是预处理命令行
C)C程序在执行过程中对预处理命令行进行处理
D)以下是正确的宏定义#define IBM-PC
4、以下叙述中正确的是()。
A)在程序的一行上可以出项多个有效的预处理命令行
B)使用带参的宏时,参数的类型应与宏定义时的一致
C)宏替换不占用运行时间,只占编译时间
D)在以下定义中C R是称为”宏名”的标识符#define C R 045
5、#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
6、以下程序的运行结果是()。
#define MIN(x,y) (x)
main()
{int i=10,j+15,k;
k+10*MIN(i,j);
printf(“%d\n”,k);-
A)10 B)15 C)100 D)150
7、在宏定义#define PI 3.14159中,用宏名PI代替一个()。
A)常量B)单精度数C)双精度数D)字符串
8、以下程序的运行结果是()
#include”stdio.h”
#define FUDGE(y) 2.84+y
#define PR(a) printf(“%d”,(int)(a))
#define PRINT1(a) PR(a);put char(‘\n’)
main()
{int x=2;