1 编译预处理习题 一.单项选择题 1
在宏定义#define A 3
897678中,宏名A 代替一个( )
A) 单精度数 B) 双精度数 C) 常量 D) 字符串 2
以下叙述中正确的是 A)预处理命令行必须位于源文件的开头 B)在源文件的一行上可以有多条预处理命令 C)宏名必须用大写字母表示 D)宏替换不占用程序的运行时间 3
C语言的编译系统对宏命令的处理( )
A) 在程序运行时进行的 B) 在程序连接时进行的 C) 和C程序中的其它语句同时进行的 D) 在对源程序中其它语句正式编译之前进行的 4
在文件包含预处理语句的中,被包含文件名用“< >”括起时,寻找被包含文件的方式是( )
A) 直接按系统设定的标准方式搜索目录 B) 先在源程序所在目录搜索,再按系统设定的标准方式搜索 C) 仅仅在源程序所在目录搜索 D) 仅仅搜索当前目录 5
以下说法中正确的是 A)#define和printf 都是C语句 B)#define是C语句,而 printf 不是 C)printf 是C语句,但#define不是 D)#define和printf 都不是C语句 6
#define A 3
897678 #include main( ) { printf(“A=%f ”,A); } 程序运行结果为( )
897678=3
897678 B) 3
897678=A C) A=3
897678 D) 无结果 7
有宏定义:#define LI(a,b) a*b #define LJ(a,b) (a)*(b) 在后面的程序中有宏引用:x=LI(3+2,5+8); y=LJ(3+2,5+8); 则 x、y的值是( )
A) x=65,y=65 B) x=21,y=65 C) x=65,y=21 D)x=21,y=21 8
有以下程序 # defi