第7章 第6、7节:函数的嵌套调用和递归调用(教案)-《C语言程序设计》(电子工业出版社)上好课
2026-04-30
|
5页
|
47人阅读
|
0人下载
精品
内容正文:
《7.6、7.7节:函数的嵌套调用和递归调用》教案
课 题
函数的嵌套调用和递归调用
课 型
新授课
课 时
2课时
授课班级
授课时间
授课教师
教材分析
本节课选自王新萍主编《C 语言程序设计》第 7 章第 6、7 节,是函数模块的进阶内容,承接函数定义、调用与参数传递的基础,深入讲解嵌套调用与递归调用。教材先介绍函数嵌套调用的执行流程,再引入递归调用的核心要素(终止条件、递推关系),并通过阶乘、斐波那契数列等典型案例,帮助学生理解递归的思想与应用。本节是模块化编程的深化,为后续复杂算法实现奠定基础,也是对口升学考试中程序设计题的高频考点,对培养学生的逻辑与抽象思维至关重要。
学情分析
授课对象为中职计算机应用专业对口升学学生,已掌握函数的定义、调用与参数传递,能编写简单的模块化程序,但对 “函数调用函数” 的嵌套流程、递归的自调用逻辑较为陌生,容易混淆嵌套与递归的执行过程,对递归的终止条件、递推关系理解存在困难。学生具备基础编程能力,但在分析递归程序的执行流程时,容易陷入逻辑混乱,需要通过具象化案例与分步拆解,帮助他们突破这一学习难点,建立清晰的逻辑思维。
学习目标
【知识目标】
①函数嵌套调用和递归调用的基本概念
②嵌套执行流程与递归核心要素(终止条件、递推关系)
【能力目标】
①运用嵌套调用实现结构清晰的模块化程序
②运用递归思想解决阶乘、斐波那契、汉诺塔等典型问题
【素养目标】
①深度培养逻辑思维与抽象思维能力;②深刻体会分治思想与模块化设计的工程价值;
学习重难点
【学习重点】
函数嵌套调用的执行流程;
递归调用的核心要素(终止条件、递推关系)与典型应用。
【学习难点】
理解嵌套调用中函数的执行顺序;
掌握递归调用的执行过程,理解递归的终止条件与递推关系,避免无限递归问题。
教学方法
讲授法、示范操作演示法
课前准备
阅读教材、上网查询相关知识,阅读教材7.6、7.7节内容。
教学媒体
多媒体教学
教学过程
教学环节
教师活动设计
学生活动设计
设计意图
活动一:
创设情境
生成问题
1. 以 “现代化餐厅点餐” 为情境,用顾客、服务员、后厨的角色类比main函数、一级函数、二级函数,讲解 “顾客(main)发起需求,服务员(一级函数)拆解任务,后厨(二级函数)执行子任务” 的流程。
2. 引导学生理解 “层层调用、层层返回” 的过程,将餐厅工作流程与函数嵌套调用建立关联,点明嵌套调用的核心逻辑。
3. 引出本节课的两个核心问题:函数如何嵌套调用、什么是递归调用,明确学习目标。
1. 跟随教师的餐厅情境类比,主动分享自己对点餐流程的理解,尝试将角色分工与函数调用建立关联。
2. 思考 “函数调用函数” 的执行顺序,带着对嵌套与递归的疑问进入新知学习。
3. 明确本节课的学习目标,做好学习准备。
1. 用学生熟悉的餐厅点餐场景降低抽象概念的理解门槛,激发学习兴趣。
2. 通过生活化类比,帮助学生建立对嵌套调用执行流程的具象认知,为后续讲解嵌套与递归调用奠定基础,自然引出本节课的核心内容。
活动二:
函数的嵌套调用
1.新知讲授
(1)教师讲解“函数嵌套调用的概念”,重点讲析“C语言允许函数嵌套调用,禁止函数嵌套定义”。
(2)图文分析讲解“嵌套调用的执行流程”,并对“嵌套调用的执行流程“进行详解。
2.例题分析
题目:教材例题“【7.7】计算s=22!+32!”
分析讲解例题程序代码,并对执行流程进行拆解,最后展示运行结果。
3.背诵记忆
罗列并展示重要知识点内容,要求学生在规定的时间内完成知识点的识记,并通过教师开展的问答抽查,要求识记不牢固的学生利用课后时间继续完成记忆巩固。
4.课堂问答
教师展示课堂问答题目,要求学生自主思考并主动回答问题,给予学生肯定评价并鼓励学生积极参与课堂互动。
5.课堂练习
题目1:编写一个程序,计算一个三角形的面积。要求将“获取底”、“获取高”、“计算面积”这三个核心功能分别封装成独立的函数,并通过嵌套调用的方式实现整个计算逻辑。
题目2:题目要求:编写一个程序,实现对学生三门核心课程(语文、数学、英语)成绩的平均分计算(定义总分函数、平均分函数)。
教师展示题目并简单分析题目算法思维,要求学生分组讨论,以小组合作的形式对练习题开展程序代码的编写,并确保编写的程序代码能正常运行在计算机编译软件。
1. 跟随教师学习嵌套调用的执行流程与语法规则,记录核心知识点;
2. 分析教材例题的代码逻辑,理解嵌套调用的执行顺序,主动参与知识点背诵与课堂问答,巩固定义与流程;
3. 分组讨论课堂练习,将 “获取底高、计算面积”“求和、求平均分” 封装为独立函数,合作编写并调试嵌套调用代码,在实践中掌握嵌套调用的规范写法。
1. 通过教师讲解与图文拆解,帮助学生系统理解嵌套调用的概念与执行流程,明确 “允许调用、禁止定义” 的语法规则,突破嵌套执行顺序的理解难点;
2. 结合例题与实操练习,让学生在真实场景中体会嵌套调用的优势,强化模块化编程思维,提升代码组织能力;
3. 通过问答与小组合作,检验学生对嵌套调用的掌握情况,培养学生将复杂任务拆解为子函数的实践能力,为后续递归调用的学习奠定基础。
活动三:
函数的递归调用
1.新知讲授
(1)视频播放引入“函数递归调用的概念”。
(2)教师讲解“函数递归调用的概念”,分析其核心定义和核心思想。
(3)分析并讲解“递归的两大核心要素”,即“递归终止条件”和“递归递推关系”。
(4)分析讲解“无限递归的危害”。
2.例题分析
题目1:用递归法计算n!
题目2:典型问题 Hanoi 塔问题
图文分析并讲解2道例题的程序思维,分析程序代码,帮助学生掌握递归在编程中应用方式及其执行流程。
3.背诵记忆
罗列并展示重要知识点内容,要求学生在规定的时间内完成知识点的识记,并通过教师开展的问答抽查,要求识记不牢固的学生利用课后时间继续完成记忆巩固。
4.课堂问答
教师展示课堂问答题目,要求学生自主思考并主动回答问题,给予学生肯定评价并鼓励学生积极参与课堂互动。
5.课堂练习
题目1:递归计算幂次方
题目2:递归计算斐波那契数列
教师展示题目并分析题目算法思维,要求学生分组讨论,以小组合作的形式对练习题开展程序代码的编写,并确保编写的程序代码能正常运行在计算机编译软件。
1. 观看视频理解递归概念,跟随教师学习递归的核心要素,记录终止条件与递推关系的要点,理解无限递归的危害;
2. 分析阶乘、汉诺塔问题的代码逻辑,主动参与知识点背诵与课堂问答,巩固递归核心概念;
3. 分组讨论幂次方、斐波那契数列的递归实现思路,合作编写并调试代码,在实践中掌握递归程序的编写方法。
1. 通过视频讲解与图文拆解,帮助学生理解递归调用的核心思想,突破递归终止条件与递推关系的理解难点,规避无限递归问题;
2. 结合典型案例分析,让学生体会递归思想的应用场景,强化分治与模块化编程思维;
3. 通过问答与小组实操,检验学生对递归调用的掌握情况,提升学生运用递归解决典型问题的能力,培养逻辑与抽象思维。
课堂小结
作业布置
【课堂小结】
本节课我们学习了函数的嵌套调用与递归调用:理解了嵌套调用 “层层调用、层层返回” 的执行流程,明确了 “允许嵌套调用、禁止嵌套定义” 的规则;掌握了递归调用的核心要素 —— 终止条件与递推关系,认识了无限递归的危害,并通过阶乘、汉诺塔等案例体会了递归思想的应用,深化了模块化与分治编程思维。
【作业布置】
1. 尝试使用非递归(迭代)方法实现斐波那契数列,并对比递归效率。
2. 有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。问第4个学生岁数,他说比第3个学生大2岁。问第3个学生,又说比第2个学生大2岁。问第2个学生,说比第1个学生大2岁。最后问第1个学生,他说是10岁。编写程序求出第5个学生多大。
3.编写一个求X的Y次幂的递归函数,X为double型,Y为int型,要求从主函数输入X,Y的值,调用函数求其幂。
板书设计
教学反思
本节课通过餐厅点餐类比与案例拆解,帮助学生理解了嵌套与递归调用的核心逻辑,学生对嵌套调用的流程掌握较好,但部分学生对递归的执行过程仍存在困惑,后续需增加分步执行演示;小组练习中个别学生参与度不足,可通过分层任务设计提升全员参与度,同时需补充更多趣味递归案例,降低理解门槛。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
资源预览图
1
2
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。