单选题
1、第126题 (1.0分) 题号:689 以下叙述中不正确的是()。
A
预处理命令行都必须以#号开始
B
在程序中凡是以#号开始的语句行都是预处理命令行
C
C程序在执行过程中对预处理命令行进行处理
D
以下是正确的宏定义 #define IBM_PC
答案解析
正确答案:C
解析:
这道题考查的是 C 语言中**预处理(Preprocessing)**的基本概念和执行阶段。我们需要逐一分析各个选项,找出叙述**不正确**的一项。
**选项分析:**
* **A. 预处理命令行都必须以#号开始**
* **分析**:这是正确的。在 C 语言中,所有的预处理指令(如 `#include`, `#define`, `#ifdef`, `#pragma` 等)都必须以井号 `#` 开头,且通常位于行的起始位置(前面可以有空白字符)。
* **结论**:叙述正确。
* **B. 在程序中凡是以#号开始的语句行都是预处理命令行**
* **分析**:这是正确的。编译器在扫描源代码时,识别到以 `#` 开头的行,就会将其交给预处理器处理。如果 `#` 后面跟随的不是合法的预处理指令,预处理器会报错,但从语法分类上讲,它们确实属于预处理命令行的范畴。
* **结论**:叙述正确。
* **C. C程序在执行过程中对预处理命令行进行处理**
* **分析**:这是**错误**的。C 语言的编译过程分为几个阶段:预处理 -> 编译 -> 汇编 -> 链接。
* **预处理阶段**发生在**编译之前**。预处理器会在源代码被正式编译成机器码之前,处理所有的宏定义、文件包含和条件编译指令。
* 当程序最终生成可执行文件并**执行(运行)**时,预处理指令早已消失,它们不会出现在目标代码中,因此程序在运行时根本不知道也不处理这些指令。
* **结论**:叙述错误。
* **D. 以下是正确的宏定义 #define IBM_PC**
* **分析**:这是正确的。`#define` 用于定义宏。语法格式为 `#define 标识符 [替换列表]`。如果省略替换列表(即只写 `#define IBM_PC`),这表示定义了一个名为 `IBM_PC` 的宏,其替换文本为空。这种形式常用于条件编译(例如配合 `#ifdef IBM_PC` 使用),是合法的语法。
* **结论**:叙述正确。
**总结:**
题目要求选出**不正确**的叙述。选项 C 混淆了“预处理阶段”和“程序执行阶段”,预处理是在编译前完成的,而不是在程序运行时进行的。
因此,正确答案是 **C**。
题目纠错
c语言选择判断题库
相关题目
单选题
1、第133题 (1.0分) 题号:170 关于return语句,下列正确的说法是()。
单选题
1、第132题 (1.0分) 题号:128若int类型数据占两个字节,则下列语句的输出为()。int k=-1; printf(”%d,%u\n”,k,k);
单选题
1、第131题 (1.0分) 题号:705 若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是()。
单选题
1、第130题 (1.0分) 题号:167 下列语句中,不正确的是()。
单选题
1、第129题 (1.0分) 题号:651 以下定义语句中,错误的是()。
单选题
1、第128题 (1.0分) 题号:125 下列程序的输出结果是()。
单选题
1、第127题 (1.0分) 题号:639 以下能正确定义数组并正确赋初值的语句是()。
单选题
1、第126题 (1.0分) 题号:689 以下叙述中不正确的是()。
单选题
1、第125题 (1.0分) 题号:603 以下符合C语言语法的赋值表达式是()。
单选题
1、第124题 (1.0分) 题号:141 为了提高程序的运行速度,在函数中对于整型或指针可以使用()型的变量。
