以下关于宏替换的说法正确的有( )
- AA. 宏替换是文本替换
- BB. 宏替换有类型检查
- CC. 宏参数是文本替换
- DD. 宏替换不占用运行时间
- EE. 宏替换有调用开销
- FF. 宏替换只能替换一次
- GG. 宏替换占用运行时间
- HH. 宏不能有参数
以下关于#define和const的说法正确的有( )
- AA. #define和const完全相同
- BB. const有类型检查
- CC. #define有作用域
- DD. const定义的是常量
- EE. #define不能定义常量
- FF. const不占用存储空间
- GG. #define有类型检查
- HH. const是预处理指令
以下关于宏定义的说法错误的有( )
- AA. #define是预处理指令
- BB. 宏定义没有分号
- CC. 宏替换在编译前进行
- DD. 宏没有调用开销
- EE. 宏定义必须加分号
- FF. 宏有调用开销
- GG. 宏是文本替换
- HH. 宏参数是文本替换
以下关于头文件重复包含的说法正确的有( )
- AA. 头文件重复包含浪费编译时间
- BB. #ifndef可以防止重复包含
- CC. 重复包含不影响编译
- DD. #pragma once可以防止重复包含
- EE. 头文件不能重复包含
- FF. 重复包含不影响运行
- GG. #define可以防止重复包含
- HH. 重复包含是允许的
以下关于#undef的说法正确的有( )
- AA. #undef取消宏定义
- BB. #undef后宏仍有效
- CC. #undef必须指定宏名
- DD. #undef必须指定新值
- EE. #undef不能用于函数宏
- FF. #undef可以取消变量
- GG. #undef是必需的
- HH. #undef不能用于取消宏
以下关于宏函数定义的说法正确的有( )
- AA. 宏函数参数要用括号
- BB. 宏函数不需要括号
- CC. 整个表达式要用括号
- DD. 参数可能多次求值
- EE. 宏函数比函数效率低
- FF. 宏函数没有副作用
- GG. 宏函数有类型检查
- HH. 宏函数不能有参数
以下关于#if、#ifdef、#ifndef的说法正确的有( )
- AA. #if后面跟表达式
- BB. #ifdef检查宏是否定义
- CC. #ifndef检查宏是否未定义
- DD. 三者完全等价
- EE. #if只能用于宏
- FF. #ifdef后面只能是0或1
- GG. #ifndef不能与#else连用
- HH. 三者不能嵌套
以下关于预处理指令的说法正确的有( )
- AA. 预处理指令以#开头
- BB. 预处理指令不是C语句
- CC. 预处理指令在运行时执行
- DD. 预处理在编译前执行
- EE. 预处理指令必须缩进
- FF. 预处理指令必须大写
- GG. 预处理指令是C语句
- HH. 预处理指令在函数内
以下关于文件包含的说法正确的有( )
- AA. 文件包含插入指定文件内容
- BB. #include只能包含.h文件
- CC. 嵌套包含可能导致重复定义
- DD. 使用条件编译可以防止重复包含
- EE. #include不能嵌套
- FF. #include一次只能包含一个文件
- GG. 包含的文件必须存在
- HH. #include只能在开头
以下关于宏的参数的说法正确的有( )
- AA. 宏的参数是文本替换
- BB. 宏的参数有类型
- CC. 宏的参数可能多次求值
- DD. 宏的参数不是变量
- EE. 宏的参数必须是常量
- FF. 宏的参数不能是表达式
- GG. 宏的参数只求值一次
- HH. 宏的参数是值传递
#define是C语言的语句
以下关于#if defined的说法正确的有( )
- AA. defined是预处理运算符
- BB. #if defined(MACRO)检查宏是否定义
- CC. defined可以用在任何地方
- DD. #if defined与#ifdef完全等价
- EE. defined必须在#if外面使用
- FF. #if defined不能与#else连用
- GG. #if defined只能检查变量
- HH. defined是C运算符
宏定义通常用大写字母表示
宏替换没有类型检查
#include "file.h"和#include 查找路径相同
宏替换在编译前进行
#undef用于取消已定义的宏
条件编译在程序运行时判断
宏替换有函数调用开销
宏定义必须以分号结束
本页仅提供题目与选项供学习参考,不含答案。如需系统练习、自动判分与错题本,欢迎前往主站《NCRE计算机等级考试二级(C语言程序设计)》在线练习。