- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 4
PAGE 4
周次:第 周 课次:第 课 授课时间:年 月 日
章节内容:第六章 函数与预处理
教学目标:
通过本章的学习,要求能熟练函数的定义和调用方法,掌握函数的嵌套调用和递归调用,理解变量的定义域和存储类别,掌握内部函数和外部函数,并能够在不同情况下灵活选择函数来解决实际问题。掌握编译预处理命令的使用方法。函数和预处理命令是编写模块化程序的重要方法,这将为编写比较复杂的程序设计的学习打下基础。
教学重点:
函数的定义;函数的定义和函数调用;
函数的定义和函数调用;
函数的参数传递。
教学难点:
函数的参数传递;
递归调用;
变量的作用域和存储特性。
教学方法和授课手段
多媒体教室,电子课件,机房实验室。
教学过程:
预备(复习):回顾上次课内容(5分钟)
课前提问(5 分钟)
课程引入:介绍本课程的学习目的、主要学习内容和学习方法。(10分钟)
课程新授:(60分钟)
6.5 函数的嵌套调用和递归调用
6.5.1 函数的嵌套调用实例
【例6.4】计算∑ = 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 内部函数
一个函数如果只能被本文件中其它函数所调用,称为内部函数。内部函数又称静态函数。在定义内部函数时在函数名和函
您可能关注的文档
- 《C语言程序设计》课程.doc
- 《C语言程序设计案例教程(第四版)》全套章节习题答案.docx
- 《C语言程序设计案例教程(第四版)》章节习题答案第1章基本知识.doc
- 《C语言程序设计案例教程(第四版)》章节习题答案第2章算法.doc
- 《C语言程序设计案例教程(第四版)》章节习题答案第4章.doc
- 《C语言程序设计案例教程(第四版)》章节习题答案第5章.doc
- 《C语言程序设计案例教程(第四版)》章节习题答案第6章.doc
- 《C语言程序设计案例教程(第四版)》章节习题答案第7章.doc
- 《C语言程序设计案例教程(第四版)》章节习题答案第8章结构体、共用体和枚举类型.doc
- 《C语言程序设计案例教程(第四版)》章节习题答案第9章位运算.doc
最近下载
- 高中地理人教版必修 第二册第三章 产业区位因素第三节 服务业区位因素及其变化.pptx
- 医养中心营销策划方案.pdf VIP
- 2025年医疗服务行业人力资源报告:医护人员职业发展现状与趋势.docx
- 电气设备-独家解析-特斯拉4680电池结构与工艺设计-杭州车知知.docx
- 民族团结进步.pptx VIP
- 【OBE课程改革】《统计学》课程教学模式创新与实践.pdf VIP
- 武汉地区区域工程地质及水文地质概况、成井方法、基坑工程连通性抽水试验、降水水位计算与预测、回灌试验技术要求.pdf VIP
- 生产车间5s管理制度.docx VIP
- 【完整版】视频会议系统_本科毕业论文设计.docx VIP
- 国新基金组织架构.docx VIP
文档评论(0)