第29练 单元7 函数的定义、调用与返回值《C语言程序设计》(高教版第2版)一课一练
|
2份
|
7页
|
39人阅读
|
0人下载
内容正文:
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(高教版第2版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(高教版第2版)一课一练的单元7的第29练,内容涵盖单元7“考试系统”的模块化设计的7.2.1~7.2.2 函数的定义、调用与返回值。
《C语言程序设计》(高教版第2版)一课一练 第29练
单元7 “考试系统”的模块化设计
7.2.1~7.2.2 函数的定义、调用与返回值
1、 单项选择题(本题共5小题)
1、以下符合 C 语言无参无返回值函数定义规则的语句是( )
A. void print () { printf ("Hello"); }
B. void print (int a) { printf ("Hello"); }
C. int print () { printf ("Hello"); }
D. void main () { void print () { printf ("Hello"); } }
【答案】A
【解析】选项 A 符合无参无返回值函数的定义格式:返回值类型为 void,参数列表为 void(无参);选项 B 是有参函数,不符合无参要求;选项 C 定义为 int 型却没有返回值,违反返回值规则;选项 D 属于函数嵌套定义,C 语言不允许在函数内部定义另一个函数。
2、关于 C 语言函数调用中的值传递,下列说法正确的是( )
A. 形参的值修改后会同步影响主调函数中的实参
B. 实参和形参共用同一块内存单元
C. 实参仅将值传递给形参,形参的修改不会影响实参
D. 值传递是双向的,实参和形参可以互相传递数据
【答案】C
【解析】值传递是单向传递,实参和形参占用独立的内存单元,形参仅接收实参的副本,形参的修改不会反馈到实参,这是 C 语言函数参数传递的核心规则。
3、以下属于 “函数调用作为另一个函数的参数” 的正确写法是( )
A. max (a, b);
B. result = max (a, b);
C. max (max (a, b), c);
D. int max (a,b);
【答案】C
【解析】选项 C 中,内层的max(a,b)作为外层max函数的一个实参,符合 “函数调用作为函数参数” 的调用方式;选项 A 是函数调用语句,选项 B 是函数调用作为表达式,选项 D 只是函数声明,不是函数调用,不符合要求。
4、如果定义函数时未指定返回值类型,C 语言编译器默认的函数返回值类型是( )
A. void
B. int
C. char
D. float
【答案】B
【解析】根据 C 语言语法规则,若定义函数时省略返回值类型,编译器默认其返回值类型为 int 型,无需显式声明。
5、关于空函数的作用,下列描述正确的是( )
A. 空函数无法被调用
B. 空函数的函数体为空,调用时不执行任何操作,常用于项目预留功能接口
C. 空函数必须有返回值
D. 空函数会导致程序报错
【答案】B
【解析】空函数的核心作用是在项目开发中预留功能接口,方便后续扩充功能,函数体为空,调用时不执行任何操作,不会报错,也可以定义为 void 类型无返回值。
2、 判断题(本题共4题)
1、C 语言中允许在一个函数内部定义另一个函数,比如在 main 函数中定义 print 函数。( )
【答案】×
【解析】C 语言规定函数不能嵌套定义,所有函数必须在全局范围定义,仅能在函数内部调用其他函数,不能在函数内定义新函数。
2、函数调用时,实参的值传递给形参,形参的数值修改后会直接改变主调函数中实参的数值。( )
【答案】×
【解析】值传递是单向传递,实参和形参占用独立的内存单元,形参的修改仅作用于自身的内存单元,不会影响主调函数中的实参。
3、如果定义函数时未指定返回值类型,系统默认该函数的返回值类型为 int 型。( )
【答案】√
【解析】这是 C 语言的语法默认规则,若开发者未显式声明函数返回值类型,编译器会自动将其视为 int 型函数。
4、空函数的函数体为空,调用时不执行任何操作,通常用于项目开发中预留后续扩充功能的接口。( )
【答案】√
【解析】空函数是模块化开发的常用技巧,提前定义函数名作为接口,方便后续补充功能代码,保持程序结构清晰。
3、 程序填空题(本题共1题)
1、题目描述:以下程序用于定义函数求三个整数的最小值,主函数输入三个整数后调用该函数,最终输出最小值,请补充缺失代码;
#include <stdio.h>
// 定义求三个整数最小值的函数
(1)____ min_three( (2)____ ) {
int temp = x < y ? x : y;
// 返回最小值
(3)____ temp < z ? temp : z;
}
int main() {
int a, b, c, result;
printf("请输入三个整数:
");
scanf("%d%d%d", &a, &b, &c);
// 调用函数并接收返回值
result = (4)____;
printf("三个数中的最小值是:%d
", result);
return 0;
}
【答案】
(1) int
(2) int x, int y, int z
(3) return
(4) min_three (a, b, c)
【解析】
(1) 函数需要返回整数类型的最小值,因此函数返回值类型声明为 int,符合函数返回值类型与返回数据一致的规则;
(2) 函数需要接收三个整数作为参数,因此定义三个 int 型形参 x、y、z,与主调函数中输入的实参类型匹配,保证值传递的正确性;
(3) 需要通过 return 语句将计算得到的最小值返回给主调函数,这是有返回值函数的必要语法,否则无法将结果传递回主函数;
(4) 调用自定义的 min_three 函数,将输入的三个变量 a、b、c 作为实参传递给形参,实现函数调用并接收返回的最小值,赋值给 result 变量用于输出。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(高教版第2版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(高教版第2版)一课一练的单元7的第29练,内容涵盖单元7“考试系统”的模块化设计的7.2.1~7.2.2 函数的定义、调用与返回值。
《C语言程序设计》(高教版第2版)一课一练 第29练
单元7 “考试系统”的模块化设计
7.2.1~7.2.2 函数的定义、调用与返回值
1、 单项选择题(本题共5小题)
1、以下符合 C 语言无参无返回值函数定义规则的语句是( )
A. void print () { printf ("Hello"); }
B. void print (int a) { printf ("Hello"); }
C. int print () { printf ("Hello"); }
D. void main () { void print () { printf ("Hello"); } }
2、关于 C 语言函数调用中的值传递,下列说法正确的是( )
A. 形参的值修改后会同步影响主调函数中的实参
B. 实参和形参共用同一块内存单元
C. 实参仅将值传递给形参,形参的修改不会影响实参
D. 值传递是双向的,实参和形参可以互相传递数据
3、以下属于 “函数调用作为另一个函数的参数” 的正确写法是( )
A. max (a, b);
B. result = max (a, b);
C. max (max (a, b), c);
D. int max (a,b);
4、如果定义函数时未指定返回值类型,C 语言编译器默认的函数返回值类型是( )
A. void
B. int
C. char
D. float
5、关于空函数的作用,下列描述正确的是( )
A. 空函数无法被调用
B. 空函数的函数体为空,调用时不执行任何操作,常用于项目预留功能接口
C. 空函数必须有返回值
D. 空函数会导致程序报错
2、 判断题(本题共4题)
1、C 语言中允许在一个函数内部定义另一个函数,比如在 main 函数中定义 print 函数。( )
2、函数调用时,实参的值传递给形参,形参的数值修改后会直接改变主调函数中实参的数值。( )
3、如果定义函数时未指定返回值类型,系统默认该函数的返回值类型为 int 型。( )
4、空函数的函数体为空,调用时不执行任何操作,通常用于项目开发中预留后续扩充功能的接口。( )
3、 程序填空题(本题共1题)
1、题目描述:以下程序用于定义函数求三个整数的最小值,主函数输入三个整数后调用该函数,最终输出最小值,请补充缺失代码;
#include <stdio.h>
// 定义求三个整数最小值的函数
(1)____ min_three( (2)____ ) {
int temp = x < y ? x : y;
// 返回最小值
(3)____ temp < z ? temp : z;
}
int main() {
int a, b, c, result;
printf("请输入三个整数:
");
scanf("%d%d%d", &a, &b, &c);
// 调用函数并接收返回值
result = (4)____;
printf("三个数中的最小值是:%d
", result);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$