参考答案第9章编译预处理一、选择题12345678910ADCDCDABBD1112131415161718CCBCABAB二、编程题略
习题一、选择题(1)编译预处理的工作是在(A)完成的
A)编译前B)编译时C)编译后D)执行时(2)以下选项汇总,(D)不属于编译预处理
A)宏定义B)文件包含C)条件编译D)连接(3)以下选项中,(C)是C语句
A)#includeB)#definePI3
1415926C)j++;D)a=3(4)以下叙述中错误的是(D)
A)在程序中凡是以“#”开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号结束C)“#defineMAX3”是合法的预处理命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(5)以下关于宏的叙述中正确的是(C)
A)宏名必须用大写字母表示B)宏定义必须位于源程序中所有语句之前C)宏展开没有数据类型限制D)宏调用比函数调用耗费时间(6)在宏定义#definePI3
1415926中,用宏名代替一个(D)
A)单精度数B)双精度数C)常量D)字符串(7)设有宏定义#defineABabcd,则宏展开时(A)
A)宏名A用Babcd替换B)宏名AB用abcd替换C)宏名A和宏名B都用abcd替换D)语法错误,无法替换(8)若程序中有宏定义行#defineN100,则以下叙述中正确的是(B)
A)宏定义行中定义了标识符N的值为整数100B)对C源程序进行预处理时,用100替换标识符NC)对C源程序进行编译时,用100替换标识符ND)在运行时,用100替换标识符N(9)以下程序的运行结果是(B)
#include#defineM5#defineNM+Mvoidmain(){intk;k=N*N*5;printf("%d\n",k);}A)500B)55C)125D)程序有错无输出结果(10)以下程序的运行