内容正文:
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《编程语言基础——C语言》(高教版第五版) 一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《编程语言基础——C语言》(高教版第五版) 一课一练的第1章的第7练,内容涵盖第1章C语言概述的1.7 宏定义和文件包含 。
《编程语言基础——C语言》(高教版第五版) 第7练
第1章 C语言概述
1.7 宏定义和文件包含
1、 单项选择题(本题共5小题)
1、以下关于宏定义的说法,正确的是( )
A. 宏定义必须以分号结尾
B. 宏名与括号之间可以加空格
C. 宏名一般用大写字母表示
D. 宏定义只能是不带参数的
【答案】C
【解析】宏定义一般不以分号结尾(除非有特别需要),A 选项错误;宏名与括号之间加空格就会成为不带参数的宏定义,所以不能加空格,B 选项错误;宏定义有不带参数和带参数两种形式,D 选项错误;习惯上,宏名一般用大写字母表示,C 选项正确。
2、使用文件包含命令时,以下说法正确的是( )
A. “#include < 文件名>” 只能用于包含库函数的头文件
B. “#include “文件名”” 只能用于包含用户文件的头文件
C. “#include < 文件名 >” 系统会先在用户当前目录搜索文件
D. “#include “文件名”” 系统会先在系统指定路径搜索文件
【答案】A
【解析】“#include < 文件名 >” 时,C 编译系统将在系统指定的路径下搜索尖括号中的文件,一般适用于包含库函数的头文件,A 选项正确;“#include “文件名”” 系统首先会在用户当前的目录中搜索双引号中的文件,若找不到再按系统指定的路径搜索,既可以用于包含用户文件的头文件,也可以包含库函数头文件,B 选项错误;“#include < 文件名 >” 是直接在系统指定路径搜索文件,C 选项错误;“#include “文件名”” 是先在用户当前目录搜索文件,D 选项错误。
3、若有宏定义 “#define MAX (a,b) (a>b?a:b)”,则 “MAX (3,5)” 宏展开后为( )
A. 3
B. 5
C. (3>5?3:5)
D. 3>5?3:5
【答案】C
【解析】根据带参数的宏展开原则,凡遇形参则以实参代替,非形参字符则原样保留,所以 “MAX (3,5)” 宏展开后为 “(3>5?3:5)”,选 C。
4、下面关于宏定义和文件包含的共同点,说法正确的是( )
A. 都属于 C 语句
B. 都必须以分号结尾
C. 都以 “#” 开头
D. 都用于实现程序的具体功能
【答案】C
【解析】宏定义和文件包含都属于编译预处理命令,以 “#” 开头,C 选项正确;它们都不属于 C 语句,A 选项错误;一般情况下都不以分号结尾(宏定义除非有特别需要),B 选项错误;它们的作用是给 C 语言编译系统提供信息,不是实现程序的具体功能,D 选项错误。
5、若有宏定义 “#define ADD (x,y) x+y”,执行 “int result = ADD (2,3) * 4;” 后,result 的值为( )
A. 20
B. 14
C. 24
D. 32
【答案】B
【解析】宏展开后 “int result = ADD (2,3) * 4;” 变为 “int result = 2+3 * 4;”,根据运算符优先级,先计算乘法再计算加法,结果为 2 + 12 = 14,选 B。
2、 判断题(本题共3题)
1、宏定义中的宏名只能用大写字母表示。( )
【答案】×
【解析】习惯上符号常量名(宏名)用大写字母表示,但也可以用小写,只是前后必须一致,所以该说法错误。
2、“#include <stdio.h>” 和 “#include “stdio.h”” 的作用是完全一样的。( )
【答案】×
【解析】“#include <stdio.h>” 系统会在系统指定的路径下搜索文件,“#include “stdio.h”” 系统首先会在用户当前的目录中搜索文件,若找不到再按系统指定的路径搜索,二者作用不同,所以该说法错误。
3、带参数的宏定义中,宏名与括号之间不能加空格。( )
【答案】√
【解析】如果宏名与括号之间加空格,就会成为不带参数的宏定义,所以该说法正确。
3、 读程序写结果题(本题共1小题)
1、以下程序运行时,会输出什么结果?
#include <stdio.h>
#define MULTIPLY(x,y) x*y
int main() {
int result = MULTIPLY(2 + 3, 4);
printf("%d
", result);
return 0;
}
【答案】11
【解析】宏展开后 “int result = MULTIPLY (2 + 3, 4);” 变为 “int result = 2 + 3 * 4;”,根据运算符优先级,先计算乘法再计算加法,结果为 2 + 12 = 14,所以最终输出 14。
4、 程序设计题(本题共1小题)
1、编写一个程序,使用宏定义计算两个数的平方和。输入两个整数,输出它们的平方和。
【答案】
#include <stdio.h>
#define SQUARE_SUM(x,y) (x)*(x)+(y)*(y)
int main() {
int a, b;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
int result = SQUARE_SUM(a, b);
printf("这两个数的平方和是:%d
", result);
return 0;
}
【解析】首先使用宏定义 “#define SQUARE_SUM (x,y) (x)(x)+(y)(y)” 来计算两个数的平方和。在主函数中,提示用户输入两个整数,使用 scanf 函数获取用户输入的两个整数,然后调用宏定义计算平方和并将结果存储在 result 变量中,最后使用 printf 函数输出结果。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《编程语言基础——C语言》(高教版第五版) 一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《编程语言基础——C语言》(高教版第五版) 一课一练的第1章的第7练,内容涵盖第1章C语言概述的1.7 宏定义和文件包含 。
《编程语言基础——C语言》(高教版第五版) 第7练
第1章 C语言概述
1.7 宏定义和文件包含
1、 单项选择题(本题共5小题)
1、以下关于宏定义的说法,正确的是( )
A. 宏定义必须以分号结尾
B. 宏名与括号之间可以加空格
C. 宏名一般用大写字母表示
D. 宏定义只能是不带参数的
2、使用文件包含命令时,以下说法正确的是( )
A. “#include < 文件名>” 只能用于包含库函数的头文件
B. “#include “文件名”” 只能用于包含用户文件的头文件
C. “#include < 文件名 >” 系统会先在用户当前目录搜索文件
D. “#include “文件名”” 系统会先在系统指定路径搜索文件
3、若有宏定义 “#define MAX (a,b) (a>b?a:b)”,则 “MAX (3,5)” 宏展开后为( )
A. 3
B. 5
C. (3>5?3:5)
D. 3>5?3:5
4、下面关于宏定义和文件包含的共同点,说法正确的是( )
A. 都属于 C 语句
B. 都必须以分号结尾
C. 都以 “#” 开头
D. 都用于实现程序的具体功能
5、若有宏定义 “#define ADD (x,y) x+y”,执行 “int result = ADD (2,3) * 4;” 后,result 的值为( )
A. 20
B. 14
C. 24
D. 32
2、 判断题(本题共3题)
1、宏定义中的宏名只能用大写字母表示。( )
2、“#include <stdio.h>” 和 “#include “stdio.h”” 的作用是完全一样的。( )
3、带参数的宏定义中,宏名与括号之间不能加空格。( )
3、 读程序写结果题(本题共1小题)
1、以下程序运行时,会输出什么结果?
#include <stdio.h>
#define MULTIPLY(x,y) x*y
int main() {
int result = MULTIPLY(2 + 3, 4);
printf("%d
", result);
return 0;
}
4、 程序设计题(本题共1小题)
1、编写一个程序,使用宏定义计算两个数的平方和。输入两个整数,输出它们的平方和。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$