中职《C语言程序设计(第3版)》(人邮版·2023)第8章 函数 8.4函数的特殊调用形式 教案(表格式)

资源下载
  1. 二一教育资源

中职《C语言程序设计(第3版)》(人邮版·2023)第8章 函数 8.4函数的特殊调用形式 教案(表格式)

资源简介

章节或项目名称 第八章 函数8.4
本次授课类型 理论 □实验 □理实一体 □实训 □实习
班级 地点 周次 星期 节次 授课进度
二十三 2 5、6 符合 □超前 □滞后
教学目标 1、掌握函数的嵌套调用 2、掌握函数的递归调用
教学重点 函数的嵌套调用
教学难点 函数的递归调用
教学设计
教学环节 内容要点 教学方法 与手段 时间 分配
新课引入 请舍友打饭过程 案例法 10分钟
新课介绍 函数的嵌套调用 知识讲授 引导启发 35分钟
函数的递归调用实例演示 知识讲授 引导启发 10分钟
函数的递归调用 知识讲授 引导启发 30分钟
总结归纳 重点掌握函数的嵌套调用,难点为函数的递归调用。 归纳法 5分钟
教学效果及改进思路
一、新课引入
请舍友打饭过程
二、函数的嵌套调用
1.函数嵌套的概念
C语言中各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用,这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。其关系可表示如图8.1所示。
图8.1 函数嵌套调用示意图
2.函数嵌套的举例:利用函数嵌套实现程序设计,求1!+2!+…+10!。
算法设计:编写求阶乘的函数fact;
编写求和的函数sum(其中嵌套调用函数fact);
编写主函数(其中调用函数sum);
程序设计:
int fact(int n)
{
int f=1,i;
for(i=1;i<=n;i++)
f=f*i;
return f;
}
int sum(int h)
{
int i,s=0;
for(i=1;i<=h;i++)
s=s+fact(i);
return s;
}
main()
{
int s;
s=sum(10);
printf("s=%d\n",s);
}
三、函数的递归调用实例演示
古代有位侠客,路上遇见5个人,问第一个人多大年龄了,第一个人说比第二个人大2岁,又问第二个人多大年龄了,第二个人说比第三个人大2岁,又问第三个人多大年龄了,第三个人说比第四个人大2岁,又问第四个人多大年龄了,第四个人说比第五个人大2岁,又问第五个人多大年龄了,第五个人说20岁,侠客感觉到疑惑,怎样才能知道前四个人的年龄呢。旁边有个智者,告诉侠客,自后向前推算,第四个人应该是22岁,第三个人应该是24岁,第二个人应该是26岁,第一个人应该是28岁,这种调用过程称为函数的递归调用。
四、函数的递归调用
1.函数的递归概念
一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。C语言允许函数的递归调用。在递归调用中,主调函数又是被调函数。
2.实例程序设计
int age(int n)
{
if(n==5) //第5个人
return 20; //20岁
else
return age(n+1)+2; //下一个人大2岁
}
main()
{
int s;
s=age(1);
printf("第一个人:%d岁\n",s);
}
五、总结归纳
所学知识为:函数的嵌套调用、函数的递归调用。其中重点知识为函数的嵌套调用。难点知识为函数的递归调用。

展开更多......

收起↑

资源预览