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