第19练 6.1 函数的定义、6.2 函数的调用 《编程语言基础——C语言》 (第5版) 一课一练 (湖南)

2026-06-25
| 2份
| 9页
| 3人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 作业-同步练
知识点 函数
使用场景 同步教学
学年 2026-2027
地区(省份) 湖南省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 107 KB
发布时间 2026-06-25
更新时间 2026-06-25
作者 xkw_068401954
品牌系列 上好课·一课一练
审核时间 2026-06-25
下载链接 https://m.zxxk.com/soft/58487504.html
价格 1.00储值(1储值=1元)
来源 学科网

内容正文:

【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《编程语言基础——C语言》(第5版)《一课一练》第19练,内容是6.1 函数的定义、6.2 函数的调用。 《编程语言基础——C语言》(第5版)一课一练 第19练 6.1 函数的定义、6.2 函数的调用 一、单选题 1. 以下关于C语言函数定义的描述中,正确的是( ) A. 函数定义时形参列表必须为空 B. 多个形参类型相同时可简写为 int max(int x, y) C. 函数类型说明符决定了函数的返回值类型 D. 函数体可以省略 2. 关于C语言中函数的值传递,以下说法正确的是( ) A. 形参的值改变会影响实参 B. 将实参的值复制给形参,形参的改变不影响实参 C. 形参和实参共用同一内存单元 D. 实参必须是变量 3. 设有函数 int max(int x, int y) { return x>y?x:y; },以下调用方式中合法的是( ) A. c = max(a, b); 和 c = 2 * max(a, b) + 5; 以及 d = max(max(a,b), c); B. 函数调用限定为语句形式: c = max(a, b); C. 函数调用限定为表达式形式 D. 函数调用限定为参数形式 4. 关于函数原型(函数声明),正确的描述是( ) A. 所有函数调用前都必须写函数原型,否则编译错误 B. 函数原型中形参名可以省略,但形参类型必须与定义一致 C. 函数原型的格式与函数定义完全相同 D. 如果函数定义出现在main()之前,函数原型可以省略 5. 以下函数定义中,正确的是( ) A. int func(x, y) { return x+y; } B. int func(int x, int y) { return x+y; } C. func(int x, int y) { return x+y; } D. void func(int x, int y) { return x+y; } 6. 关于return语句,以下说法不正确的是( ) A. 一个函数中return语句不可超过一条 B. 遇到return语句时,函数立即终止执行并返回指定值 C. 如果return语句中的表达式类型与函数类型不一致,系统进行类型转换 D. void类型的函数可以没有return语句 7. 设有函数调用 c = func(3.5, 'a'); 若 func 的形参类型为 (int, int),则传递后形参的值分别是( ) A. 3.5 和 'a',系统不转换 B. 编译错误,类型不匹配 C. 3 和 97 D. 0 和 0 二、程序运行结果题 8. 以下程序的运行结果是【··】。 #include <stdio.h> int func(int x) { int i, s = 1; for (i = 1; i <= x; i++) s = s * i; return s; } main() { int n = 5; printf("%d ", func(n)); } 三、程序填空题 9. 以下程序的功能是:定义函数max2返回两个整数中的较大值,在main()中调用并输出。请填空。 #include <stdio.h> 【1】 { return x > y ? x : y; } main() { int a = 10, b = 20; printf("%d ", max2(a, b)); } 四、阅读程序改错题 10. 阅读以下程序,该程序的功能是定义swap函数交换两个变量的值。程序中有1处设计缺陷(在当前值传递机制下无法达成目标),请指出所在行号并说明修改意见,不许增删行,在原行上修改。 L1 #include <stdio.h> L2 void swap(int x, int y) L3 { L4 int t; L5 t = x; x = y; y = t; L6 } L7 main() L8 { L9 int a = 5, b = 10; L10 swap(a, b); L11 printf("a=%d, b=%d ", a, b); L12 } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《编程语言基础——C语言》(第5版)《一课一练》第19练,内容是6.1 函数的定义、6.2 函数的调用。 《编程语言基础——C语言》(第5版)一课一练 第19练 6.1 函数的定义、6.2 函数的调用 一、单选题 1. 以下关于C语言函数定义的描述中,正确的是( ) A. 函数定义时形参列表必须为空 B. 多个形参类型相同时可简写为 int max(int x, y) C. 函数类型说明符决定了函数的返回值类型 D. 函数体可以省略 【答案】C 【解析】函数定义时在函数名之前需指定类型说明符(如int、float、void等),它决定了函数返回值的数据类型。选项B错误,同类型形参也不可简写,必须逐个声明。 2. 关于C语言中函数的值传递,以下说法正确的是( ) A. 形参的值改变会影响实参 B. 将实参的值复制给形参,形参的改变不影响实参 C. 形参和实参共用同一内存单元 D. 实参必须是变量 【答案】B 【解析】C语言函数参数传递是单向的值传递:形参和实参在内存中分别占用不同的内存单元,将实参的值传递给形参后,形参单元的值改变不会影响到实参单元中的值。 3. 设有函数 int max(int x, int y) { return x>y?x:y; },以下调用方式中合法的是( ) A. c = max(a, b); 和 c = 2 * max(a, b) + 5; 以及 d = max(max(a,b), c); B. 函数调用限定为语句形式: c = max(a, b); C. 函数调用限定为表达式形式 D. 函数调用限定为参数形式 【答案】A 【解析】有返回值的函数有三种调用方式:①函数语句(如max(a,b);忽略返回值);②函数表达式(如2*max(a,b)+5);③作为函数参数(如max(max(a,b),c))。 4. 关于函数原型(函数声明),正确的描述是( ) A. 所有函数调用前都必须写函数原型,否则编译错误 B. 函数原型中形参名可以省略,但形参类型必须与定义一致 C. 函数原型的格式与函数定义完全相同 D. 如果函数定义出现在main()之前,函数原型可以省略 【答案】D 【解析】一般把函数原型写在main()之前、函数定义写在main()之后。但若函数定义出现在main()之前(如教材例6-1、6-2),则编译器根据函数定义首部即可检查调用合法性,函数原型可以省略。 5. 以下函数定义中,正确的是( ) A. int func(x, y) { return x+y; } B. int func(int x, int y) { return x+y; } C. func(int x, int y) { return x+y; } D. void func(int x, int y) { return x+y; } 【答案】B 【解析】选项A形参未声明类型(传统风格已淘汰);选项C缺少返回值类型说明符(int也不能总省略);选项D是void函数不能返回int值。选项B正确:返回值int,形参类型声明完整。 6. 关于return语句,以下说法不正确的是( ) A. 一个函数中return语句不可超过一条 B. 遇到return语句时,函数立即终止执行并返回指定值 C. 如果return语句中的表达式类型与函数类型不一致,系统进行类型转换 D. void类型的函数可以没有return语句 【答案】A 【解析】一个函数中可以有多个return语句(如if-else各自return),分别根据条件返回各自的值。选项A的说法不正确。其余选项均正确。 7. 设有函数调用 c = func(3.5, 'a'); 若 func 的形参类型为 (int, int),则传递后形参的值分别是( ) A. 3.5 和 'a',系统不转换 B. 编译错误,类型不匹配 C. 3 和 97 D. 0 和 0 【答案】C 【解析】实参与形参类型兼容时,系统按赋值转换规则自动进行类型转换。3.5转换为int得3,字符'a'的ASCII码为97转换为int得97。 二、程序运行结果题 8. 以下程序的运行结果是【··】。 #include <stdio.h> int func(int x) { int i, s = 1; for (i = 1; i <= x; i++) s = s * i; return s; } main() { int n = 5; printf("%d ", func(n)); } 【答案】120 【解析】func(x)函数计算x的阶乘。func(5)执行:s=1,i=1时s=1,i=2时s=2,i=3时s=6,i=4时s=24,i=5时s=120。返回120并输出。 三、程序填空题 9. 以下程序的功能是:定义函数max2返回两个整数中的较大值,在main()中调用并输出。请填空。 #include <stdio.h> 【1】 { return x > y ? x : y; } main() { int a = 10, b = 20; printf("%d ", max2(a, b)); } 【答案】【1】int max2(int x, int y) 【解析】函数定义首部包含三部分:返回值类型(int)、函数名(max2)、形参列表(int x, int y)。注意同类型形参不能简写为int x, y。 四、阅读程序改错题 10. 阅读以下程序,该程序的功能是定义swap函数交换两个变量的值。程序中有1处设计缺陷(在当前值传递机制下无法达成目标),请指出所在行号并说明修改意见,不许增删行,在原行上修改。 L1 #include <stdio.h> L2 void swap(int x, int y) L3 { L4 int t; L5 t = x; x = y; y = t; L6 } L7 main() L8 { L9 int a = 5, b = 10; L10 swap(a, b); L11 printf("a=%d, b=%d ", a, b); L12 } 【答案】程序不会达到交换效果。因为C语言采用值传递,swap中交换的是形参x和y,不影响实参a和b。若需交换实参,应使用指针作为参数(第8章内容)。当前条件下无法实现实参交换。 【解析】值传递是单向的:形参和实参占用不同内存单元,形参x和y的交换不影响实参a和b。要交换实参的值,需要使用指针(传地址),这将在第8章学习。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第19练 6.1 函数的定义、6.2 函数的调用 《编程语言基础——C语言》 (第5版) 一课一练 (湖南)
1
第19练 6.1 函数的定义、6.2 函数的调用 《编程语言基础——C语言》 (第5版) 一课一练 (湖南)
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。