第1章 第4练 宏定义和文件包含《编程语言基础-C语言》(高教版第5版)一课一练

2026-03-16
| 2份
| 5页
| 49人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 C语言程序设计高教版(第五版)全一册
年级 高一
章节 1.7 宏定义和文件包含
类型 作业-同步练
知识点 C语言概述
使用场景 同步教学
学年 2026-2027
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 131 KB
发布时间 2026-03-16
更新时间 2026-03-16
作者 xkw_063129603
品牌系列 上好课·一课一练
审核时间 2026-03-16
下载链接 https://m.zxxk.com/soft/56844851.html
价格 1.00储值(1储值=1元)
来源 学科网

内容正文:

编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《编程语言基础——C语言》(高教版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。 本卷是《编程语言基础——C语言》(高教版)一课一练的第1章的第4练,内容涵盖第1章 C语言概述的1.7 宏定义和文件包含。 《编程语言基础——C语言》(高教版)第4练 第1章 C语言概述 1.7 宏定义和文件包含(解析版) 一、单项选择题(本题共5小题) 1、关于C语言中的宏定义,下列说法正确的是( ) A. 宏定义是C语句,必须在行末加上分号 B. 宏名必须有类型 C. 宏定义是在程序运行时进行替换的 D. 宏定义只是进行简单的字符替换,不分配内存单元 【答案】D 【解析】宏定义是预处理命令,不是C语句,因此不用加分号;宏名无类型,宏参数也无类型;宏替换发生在编译预处理阶段,不占运行时间;宏展开时只是简单字符替换。 2、以下关于文件包含命令#include的说法,错误的是( ) A. 一个#include命令只能指定一个被包含文件 B. 使用尖括号<>包含头文件时,系统只在当前目录下查找 C. 文件包含可以嵌套使用 D. 使用双引号""包含头文件时,系统先在当前目录查找,若找不到再到系统目录查找 【答案】B 【解析】使用尖括号<>时,系统直接到存放库函数头文件的系统目录中查找;使用双引号""时,先在用户当前目录查找,找不到再到系统目录查找。一个#include命令只能包含一个文件,文件包含允许嵌套。 3、若有宏定义:#define MUL(x) x*x,则表达式MUL(2+3)的展开结果是( ) A. (2+3)*(2+3) B. 2+3*2+3 C. 25 D. 2+3*2+3=11 【答案】B 【解析】宏展开只是简单的字符替换,不会自动添加括号。MUL(2+3)展开为"2+3*2+3"。 4、关于带参宏和函数的区别,下列叙述正确的是( ) A. 宏调用占用运行时间,函数调用不占运行时间 B. 宏的参数有类型检查,函数的参数无类型检查 C. 宏替换会使源程序变长,函数调用不会使源程序变长 D. 宏和函数都在运行时分配内存单元 【答案】C 【解析】 宏替换在预处理阶段完成,不占运行时间;函数调用在运行时分配内存、进行参数传递,占运行时间。宏无类型,不作类型检查;函数有类型,要求实参形参类型一致。 5、关于C语言中的宏定义,下列叙述中正确的是( ) A. 带参数的宏展开时,实参先计算表达式值,再替换到宏体中 B. 宏定义只能定义不带参数的宏名 C. 使用#define定义的宏名在程序编译期间始终有效,无法取消 D. 宏定义中使用#运算符可以将宏参数转换为字符串 【答案】D 【解析】宏展开只是字符替换,不会预先计算实参表达式的值。宏定义可以定义带参数的宏名,也可以定义不带参数的宏名,#是预处理运算符,称为“字符串化运算符”,用于将宏参数转换为字符串常量。 二、判断题(本题共5小题) 1、 宏定义中,宏名与字符串之间可以有空格,例如"#define PI 3.14"是正确的。( ) 【答案】× 【解析】宏定义的格式为"#define 宏名 字符串",宏名与字符串之间必须用空格分隔,但字符串内部不应有多余空格影响含义。 2、使用#include命令时,被包含的文件必须以".h"为后缀名。( ) 【答案】× 【解析】在C/C++中,#include指令可以包含任何文本文件,并不强制要求文件后缀名为.h。 3、宏定义可以嵌套使用,即在定义一个宏时可以引用已经定义的宏。( ) 【答案】√ 【解析】 宏定义支持嵌套。 4、带参宏在展开时,如果实参是表达式,会先计算出结果再替换到宏体中。( ) 【答案】× 【解析】 宏展开只是单纯的字符替换,不会预先计算实参表达式的值。实参表达式原样替换到宏体中,最终结果取决于运算符优先级。 5、文件包含时必须用<>括起来。( ) 【答案】× 【解析】使用尖括号<>时,系统直接到存放库函数头文件的系统目录中查找;使用双引号""时,先在用户当前目录查找,找不到再到系统目录查找。一个#include命令只能包含一个文件,文件包含允许嵌套。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《编程语言基础——C语言》(高教版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。 本卷是《编程语言基础——C语言》(高教版)一课一练的第1章的第4练,内容涵盖第1章 C语言概述的1.7 宏定义和文件包含。 《编程语言基础——C语言》(高教版)第4练 第1章 C语言概述 1.7 宏定义和文件包含(原卷版) 一、单项选择题(本题共5小题) 1、关于C语言中的宏定义,下列说法正确的是( ) A. 宏定义是C语句,必须在行末加上分号 B. 宏名必须有类型 C. 宏定义是在程序运行时进行替换的 D. 宏定义只是进行简单的字符替换,不分配内存单元 2、以下关于文件包含命令#include的说法,错误的是( ) A. 一个#include命令只能指定一个被包含文件 B. 使用尖括号<>包含头文件时,系统只在当前目录下查找 C. 文件包含可以嵌套使用 D. 使用双引号""包含头文件时,系统先在当前目录查找,若找不到再到系统目录查找 3、若有宏定义:#define MUL(x) x*x,则表达式MUL(2+3)的展开结果是( ) A. (2+3)*(2+3) B. 2+3*2+3 C. 25 D. 2+3*2+3=11 4、关于带参宏和函数的区别,下列叙述正确的是( ) A. 宏调用占用运行时间,函数调用不占运行时间 B. 宏的参数有类型检查,函数的参数无类型检查 C. 宏替换会使源程序变长,函数调用不会使源程序变长 D. 宏和函数都在运行时分配内存单元 5、关于C语言中的宏定义,下列叙述中正确的是( ) A. 带参数的宏展开时,实参先计算表达式值,再替换到宏体中 B. 宏定义只能定义不带参数的宏名 C. 使用#define定义的宏名在程序编译期间始终有效,无法取消 D. 宏定义中使用#运算符可以将宏参数转换为字符串 二、判断题(本题共5小题) 1、 宏定义中,宏名与字符串之间可以有空格,例如"#define PI 3.14"是正确的。( ) 2、使用#include命令时,被包含的文件必须以".h"为后缀名。( ) 3、宏定义可以嵌套使用,即在定义一个宏时可以引用已经定义的宏。( ) 4、带参宏在展开时,如果实参是表达式,会先计算出结果再替换到宏体中。( ) 5、文件包含时必须用<>括起来。( ) 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

第1章 第4练 宏定义和文件包含《编程语言基础-C语言》(高教版第5版)一课一练
1
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。