第六部分 预处理命令 ·1 · 第六部分 预处理命令 6 .1 选择题 1. 下面叙述中正确的是( )。 A. 带参数的宏定义中参数是没有类型的 B. 宏展开将占用程序的运行时间 C. 宏定义命令是 C语言中的一种特殊语句 D. 使用#include命令包含的头文件必须以“.h”为后缀 2. 下面叙述中正确的是( )。 A. 宏定义是 C语句,所以要在行末加分号 B. 可以使用#undef命令来终止宏定义的作用域 C. 在进行宏定义时,宏定义不能层层嵌套 D. 对程序中用双引号括起来的字符串内的字符,与宏名相同的要进行置换 3. 在“文件包含”预处理语句中,当#include后面的文件名用双引号括起时,寻找被包含文件的方式为( )。 A. 直接按系统设定的标准方式搜索目录 B. 先在源程序所在目录搜索,若找不到,再按系统设定的标准方式搜索 C. 仅仅搜索源程序所在目录 D. 仅仅搜索当前目录 4. 下面叙述中不正确的是( )。 A. 函数调用时,先求出实参表达式,然后带入形参。而使用带参的宏只是进行简单的字符替换 B. 函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进行的,在展开时也要分配内存单元,进行值传递 C. 对于函数中的实参和形参都要定义类型,二者的类型要求一致,而宏不存在类型问题,宏没有类型 D. 调用函数只可得到一个返回值,而用宏可以设法得到几个结果 5. 下面叙述中不正确的是( )。 A. 使用宏的次数较多时,宏展开后源程序长度增长。而函数调用不会使源程序变长 B. 函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进行的,在展开时不分配内存单元,不进行值传递 C. 宏替换占用编译时间 D. 函数调用占用编译时间 6. 下面叙述中正确的是( )。 A. 可以把 define和 if定义为用户标识符 B. 可以把 define定义为用户标识符,但不能把 if定义为用户标识符 C. 可以把 if定义为用户标识符,但不能把 define定义为用户标识符 D. define和 if都不能定义为用户标识符 7. 下面叙述中正确的是( )。 A.#define和 printf都是 C语句 B.#define是 C语句,而 printf不是 C.printf是 C语句,但#define不是 D.#define和 printf都不是 C语句 第六部分 预处理命令 ·2 · 8. 以下叙述中正确的是( )。 A. 用#include包含的头文件的后缀不可以是“.a” B. 若一些源程序中包含某个头文件;当该头文件有错...