第八章测试
1.以下关于宏替换的叙述不正确的是( )。
A:宏替换只是字符替换
B:宏替换不占用运行时间
C:宏替换不占用编译时间
D:宏名无类型

答案:C
2.关于预处理命令的描述正确的是( )。
A:预处理指令也是C语句
B:预处理是指完成宏替换和文件包含中指定文件的调用
C:一个包含文件中不可以再包含其他的文件
D:在C源程序中,凡是行首以#标识的控制行都是预处理命令
3.在宏定义 #define PI 3.14159中,用宏名 PI代替一个( )。
A:字符串
B:常量
C:单精度数
D:双精度数
4.在"文件包含"预处理语句的使用形式中,当# include后面的文件名用" "(双引号)括起时,寻找被包含文件的方式是( )。
A:仅仅搜索源程序所在目录
B:直接按系统设定的标准方式搜索目录
C:仅仅搜索当前目录
D:先在源程序所在目录搜索,再按系统设定的标准方式搜索
5.在"文件包含"预处理语句的使用形式中,当#include 后面的文件名用< >(尖括号)括起时,寻找被包含文件的方式是( )。
A:先在源程序所在目录搜索,再按系统设定的标准方式搜索
B:直接按系统设定的标准方式搜索目录
C:仅仅搜索当前目录
D:仅仅搜索源程序所在目录
6.若有宏定义如下:
#define M(x,y) (x*y)
int a;
a=M(1+2,3);
则执行下列语句后,a的值为( )。
A:9
B:5
C:7
7.若有宏定义如下:
#define X 5
#define Y X+1
#define Z Y*X/2
int a;
a = Y;
printf("%d\n”, Z) ;
printf("%d\n”,--a) ;
则执行以下 printf语句后,输出结果是( )。
A:7; 5
B:7; 6
C:12; 6
D:12; 5
8.C语言提供的预处理功能包括条件编译,其基本形式为:
#XXX标识符
程序段 1
#else
程序段 2
#endif
这里 XXX可以是( )。
A:ifdef或 include
B:define或 include
C:ifdef或 ifndef或 if
D:ifdef或 ifndef或 define
9.C语言中,宏定义的有效范围从定义开始处到源文件结束处,但可以用( )来提前解除宏定义的作用。
A:endif
B:#indefine
C:undef
D:#ifdef
10.以下在任何情况下计算平方数时都不会引起二义性的宏定义是( )。
A:#define POWER(x) (x)*(x)
B:define POWER(x) ((x)*(x))
C:#define POWER(x) (x*x)
D:#define POWER(x) x*x

温馨提示支付 ¥4.99 元后可查看付费内容,请先翻页预览!
点赞(32) dxwkbang
返回
顶部