网站大量收购独家精品文档,联系QQ:2885784924

C程序设计教案(第6章第2次课).doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 内部函数 一个函数如果只能被本文件中其它

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档