- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计教案(第6章第2次课)
周次:第 周 课次:第 课 授课时间:年 月 日 章节内容: 第六章 函数与预处理
教学目标:
通过本章的学习,要求能熟练函数的定义和调用方法,掌握函数的嵌套调用和递归调用,理解变量的定义域和存储类别,掌握内部函数和外部函数,并能够在不同情况下灵活选择函数来解决实际问题。掌握编译预处理命令的使用方法。函数和预处理命令是编写模块化程序的重要方法,这将为编写比较复杂的程序设计的学习打下基础。
教学重点:
函数的定义;函数的定义和函数调用;
函数的定义和函数调用;
函数的参数传递。
教学难点:
函数的参数传递;
递归调用;
变量的作用域和存储特性。
教学方法和授课手段
多媒体教室,电子课件,机房实验室。
教学过程:
预备(复习):回顾上次课内容(5分钟)
课前提问(5 分钟)
课程引入:介绍本课程的学习目的、主要学习内容和学习方法。(10分钟)
课程新授:(60分钟)
6.5 函数的嵌套调用和递归调用
6.5.1 函数的嵌套调用实例
【例 = 1!+2!+ …… + n!(n∈[1,20]的整数,从键盘输入)。
算法设计要点:
本案例可以设计2个函数:factor( )用于求n!;sum( )通过调用factor( )来实现求∑。
【启动Visual C++】|【新建工程】|【新建源程序文件】:选中【C++ Source File】项
输入如下代码:
/* 源文件名:Li6_4.c
功能:求阶乘和 */
#include stdio.h
long factor(int n)/*定义求阶乘函数factor()*/
{
int i;
long f=1;
for(i=1;i=n;i++)
f=f*i;
return f;
}
long sum(int m)/*定义求和函数sum()*/
{
int i;
long s=0;
for(i=1;i=m;i++)
s+=factor(i);/*调用factor()函数*/
return s;
}
void main()
{
int n;
long s;
printf(please input a number:);
scanf(%d,n);
s=sum(n);/*调用sum()函数*/
printf(1!+2!+....+%d!=%ld\n,n,s);
}
6.5.2 函数的嵌套调用说明
一般地说,函数的嵌套调用是指,在执行被调用函数时,该函数又调用其它函数的情形。
C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。这与其它语言的子程序嵌套的情形是类似的。
注意:被调用函数执行完毕后,将返回到调用函数的断点继续执行。
简言之,谁调用,返回到谁的断点继续执行。
6.5.3 函数的递归调用实例
【例6.5】用递归方法计算n!(1! = 1,n! = (n-1)! * n (n≥2))
算法分析:
1) 根据计算n!的递归定义可知,为了计算n!,必须首先计算(n-1)!;以此类推,直至1!(1! = 1)。
2) 依据1!求2!=1!*2,再依据2!求3!=2!*3;同理,依据(n-1)!求n!= (n-1)!*n。
【启动Visual C++】|【新建工程】|【新建源程序文件】:选中【C++ Source File】项
输入如下代码:
/* 源文件名:Li6_5.c
功能:利用递归求一个数的阶乘 */
#include stdio.h
long factor(int n)/*定义求阶乘函数factor()*/
{
int i;
long f;
if(n1)
f=n*factor(n-1);
else
f=1;
return f;
}
void main()
{
int n;
long s;
printf(please input a number:);
scanf(%d,n);
s=factor(n);/*调用factor()函数*/
printf(%d!=%ld\n,n,s);
}
编译、连接、和运行程序。程序运行后,屏幕显示:
6.5.4函数的递归调用说明
一个函数在它的函数体内调用它自身称为递归调用。这种函数称为递归函数。C语言允许函数的递归调用。在递归调用中,主调函数又是被调函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层。
6.6内部函数和外部函数
6.6.1 内部函数
一个函数如果只能被本文件中其它
您可能关注的文档
- 一个撞击问题的联想.doc
- 公司国内外上市条件及对比.docx
- 六上科学三、四、五单元练习题(含答案).doc
- 六年级上册知识点及公式.doc
- 工作分析与工作评价-6.ppt
- 命令-命令行操作.doc
- 小学六年级语言积累汇总.docx
- 脚手架工程预防监控方案.doc
- 2012年中级经济师-经济基础知识配套习题(第4章).doc
- (财务管理) 第2章 财务估价模型.ppt
- 北京交通大学《机器人技术及应用》2022-2023学年第一学期期末试卷.doc
- 河北省保定市蠡县部分学校2025届九年级下学期中考一模数学试卷(含解析).docx
- 2025届北京海淀区高三二模高考语文试卷试题(含答案详解).docx
- 北京交通大学《管理信息系统综合专题》2021-2022学年第一学期期末试卷.doc
- 2025届北京东城区高三二模高考语文试卷试题(含答案详解).docx
- 海南省琼海市2024届九年级下学期中考二模数学试卷(含解析).docx
- 北京交通大学《管理信息系统综合专题》2022-2023学年第一学期期末试卷.doc
- 2025届北京昌平区高三二模高考语文试卷试题(含答案详解).docx
- 北京交通大学《管理信息系统》2023-2024学年第一学期期末试卷.doc
- 北京交通大学《高级综合英语》2021-2022学年第一学期期末试卷.doc
文档评论(0)