第53练 第10章 文件包含与条件编译《C语言程序设计》(电子工业出版社)一课一练

| 2份
| 7页
| 38人阅读
| 0人下载

内容正文:

编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。 本卷是《C语言程序设计》(电子工业出版社)一课一练的第10章的第53练,内容涵盖第10章预处理命令的10.2~10.3 文件包含与条件编译。 《C语言程序设计》(电子工业出版社)一课一练 第53练 第10章 预处理命令 10.2~10.3 文件包含与条件编译 1、 单项选择题(本题共4小题) 1、关于 C 语言文件包含命令的两种格式#include "文件名"和#include <文件名>,下列描述正确的是( ) A. 两种格式的查找顺序完全相同 B. #include <文件名>会先在当前源文件目录查找,再去系统包含目录查找 C. #include "文件名"会先在当前源文件目录查找,未找到再去系统包含目录查找 D. 自定义头文件只能用#include <文件名>格式 【答案】C 【解析】双引号格式优先查找当前源文件目录,适合引用用户自定义的头文件;尖括号格式直接查找系统包含目录,适合引用标准库头文件,选项 C 正确,其他选项均不符合两种格式的查找规则。 2、下列关于文件包含命令的说法,错误的是( ) A. 一个#include命令只能包含一个被包含文件 B. 文件包含允许嵌套,即被包含的文件中可以再包含其他文件 C. 包含命令的功能是将指定文件插入命令行位置,与当前源程序合并 D. 多个被包含文件可以写在同一个#include命令中 【答案】D 【解析】一个#include命令只能指定一个被包含文件,若需包含多个文件,必须使用多个#include命令,选项 D 错误,其他选项均符合文件包含的规则。 3、条件编译的第一种形式#ifdef 标识符的核心功能是( ) A. 判断标识符是否被#define定义,是则编译程序段 1 B. 判断标识符是否未被#define定义,是则编译程序段 1 C. 判断条件表达式是否为真,是则编译程序段 1 D. 强制编译程序段 1,与标识符是否定义无关 【答案】A 【解析】#ifdef的功能是:如果标识符已被#define定义过,则编译#ifdef后的程序段 1,否则编译#else后的程序段 2(若有),选项 A准确描述了该功能。 4、下列用于防止头文件重复包含的预处理命令,写法正确的是( ) A. #ifdef HEAD_H #define HEAD_H // 头文件内容 #endif B. #ifndef HEAD_H #define HEAD_H // 头文件内容 #endif C. #if HEAD_H #define HEAD_H // 头文件内容 #endif D. #define HEAD_H #ifdef HEAD_H // 头文件内容 #endif 【答案】B 【解析】使用#ifndef判断标识符是否未被定义,若未定义则定义该标识符并编译头文件内容,再次包含时标识符已定义,跳过编译,有效防止重复包含,选项 B 是标准写法。 2、 判断题(本题共3题) 1、#include <stdio.h>和#include "stdio.h"完全等价,没有任何区别。( ) 【答案】× 【解析】两种格式的查找顺序不同:#include <stdio.h>直接在系统包含目录查找,#include "stdio.h"先在当前源文件目录查找,未找到再去系统目录查找,因此并非完全等价。 2、条件编译的第三种形式#if 条件,是根据条件表达式的真假值来决定编译对应的程序段。( ) 【答案】√ 【解析】#if后面的条件表达式值为真(非 0)时,编译程序段 1;值为假(0)时,编译程序段 2,能实现不同条件下的针对性编译,符合该形式的功能。 3、文件包含不允许嵌套,即被包含的文件中不能再使用#include命令包含其他文件。( ) 【答案】× 【解析】文件包含允许嵌套,例如可以在自定义头文件a.h中包含stdio.h,再在主程序中包含a.h,这种嵌套是合法且常用的写法。 3、 填空题(本题共2题) 1、C 语言中,文件包含命令的两种格式分别是#include <文件名>和____。 【答案】#include "文件名" 【解析】双引号格式适合引用用户自定义的头文件,会优先在当前源文件目录查找;尖括号格式适合引用标准库头文件,直接查找系统包含目录。两种格式的查找顺序差异,能满足不同场景的文件引用需求。 2、条件编译中,与#ifdef功能相反的关键字是____,它用于判断标识符是否未被#define定义。 【答案】#ifndef 【解析】#ifndef的功能是:若标识符未被#define定义,则编译后续程序段;否则编译#else后的程序段。该关键字常用于编写头文件时防止重复包含的场景。 4、 读程序写结果题(本题共1题) 1、阅读下面的 C 语言程序,写出程序运行后的输出结果。 【程序代码】 #include <stdio.h> #define STUDENT_NUM 3 int main() { #ifdef STUDENT_NUM printf("当前学生总数:%d ", STUDENT_NUM); #else printf("未定义学生总数 "); #endif return 0; } 【答案】 程序运行结果: 当前学生总数:3 【解析】 程序开头通过#define STUDENT_NUM 3定义了标识符STUDENT_NUM,条件编译命令#ifdef STUDENT_NUM判断该标识符已被定义,因此编译并执行第一个printf语句,输出定义的学生总数。若删除#define行,则会执行第二个printf语句。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。 本卷是《C语言程序设计》(电子工业出版社)一课一练的第10章的第53练,内容涵盖第10章预处理命令的10.2~10.3 文件包含与条件编译。 《C语言程序设计》(电子工业出版社)一课一练 第53练 第10章 预处理命令 10.2~10.3 文件包含与条件编译 1、 单项选择题(本题共4小题) 1、关于 C 语言文件包含命令的两种格式#include "文件名"和#include <文件名>,下列描述正确的是( ) A. 两种格式的查找顺序完全相同 B. #include <文件名>会先在当前源文件目录查找,再去系统包含目录查找 C. #include "文件名"会先在当前源文件目录查找,未找到再去系统包含目录查找 D. 自定义头文件只能用#include <文件名>格式 2、下列关于文件包含命令的说法,错误的是( ) A. 一个#include命令只能包含一个被包含文件 B. 文件包含允许嵌套,即被包含的文件中可以再包含其他文件 C. 包含命令的功能是将指定文件插入命令行位置,与当前源程序合并 D. 多个被包含文件可以写在同一个#include命令中 3、条件编译的第一种形式#ifdef 标识符的核心功能是( ) A. 判断标识符是否被#define定义,是则编译程序段 1 B. 判断标识符是否未被#define定义,是则编译程序段 1 C. 判断条件表达式是否为真,是则编译程序段 1 D. 强制编译程序段 1,与标识符是否定义无关 4、下列用于防止头文件重复包含的预处理命令,写法正确的是( ) A. #ifdef HEAD_H #define HEAD_H // 头文件内容 #endif B. #ifndef HEAD_H #define HEAD_H // 头文件内容 #endif C. #if HEAD_H #define HEAD_H // 头文件内容 #endif D. #define HEAD_H #ifdef HEAD_H // 头文件内容 #endif 2、 判断题(本题共3题) 1、#include <stdio.h>和#include "stdio.h"完全等价,没有任何区别。( ) 2、条件编译的第三种形式#if 条件,是根据条件表达式的真假值来决定编译对应的程序段。( ) 3、文件包含不允许嵌套,即被包含的文件中不能再使用#include命令包含其他文件。( ) 3、 填空题(本题共2题) 1、C 语言中,文件包含命令的两种格式分别是#include <文件名>和____。 2、条件编译中,与#ifdef功能相反的关键字是____,它用于判断标识符是否未被#define定义。 4、 读程序写结果题(本题共1题) 1、阅读下面的 C 语言程序,写出程序运行后的输出结果。 【程序代码】 #include <stdio.h> #define STUDENT_NUM 3 int main() { #ifdef STUDENT_NUM printf("当前学生总数:%d ", STUDENT_NUM); #else printf("未定义学生总数 "); #endif return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

第53练 第10章 文件包含与条件编译《C语言程序设计》(电子工业出版社)一课一练-第1页
1

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。