C语言程序设计 教案 7-3函数的嵌套与递归.docx

C语言程序设计 教案 7-3函数的嵌套与递归.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

《C语言程序设计》教案

课程名称

C语言程序设计

任课教师

总课时

64

教学课题

求小组若干门课程的总分及平均分

授课班级

授课日期

课时

2

教学目标

知识目标:1.掌握函数的嵌套调用的方法

2.掌握函数的递归调用的方法

能力目标:能够使用函数实现多个学生多门课成绩的排序

素质目标:团队合作能力、团队互助,自我学习的习惯、爱好和能力

重点难点

嵌套调用和递归调用

教学方法

演示、讲解、启发

教学资源

教材《C语言程序设计》

设备准备

VC++6.0,极域电子教室软件,分发工作任务单

教学环节(教学过程)

教学内容

教师活动

学生活动

教学目标

课时

1

发布任务

进行任务的问题描述和分析

倾听、思考

让学生理解任务要求和思路

10分钟

2

理论讲解

讲授函数调用

倾听、思考

预备需要的理论知识

15分钟

3

举例

通过一个案例进一步讲解函数的调用

倾听、思考

通过实际应用帮助学生理解理论知识

20分钟

4

应用

布置两个相关题目

思考、解答

通过做相关练习题帮助学生更好的理解相关知识

45分钟

教学内容(详细):

一.函数的嵌套调用

C语言定义的函数都是互相独立的,函数间不能嵌套定义,即在一个函数体内不能再定义另一个函数,但可以嵌套调用,也就是说在调用一个函数的过程中,该函数又调用另一个函数。

【例7-7】输入两个数,编写函数,分别求该两数的最大公约数和最小公倍数,在主函数中输入两个数,调用函数,输出公倍数和公约数。

问题分析

问题分析

算法设计首先需要两个自定义函数,分别用来求两数的最大公约数和最小公倍数。在主函数中输入两整数,作为实参调用函数。

算法设计

(1)定义2个整型变量m和n。

(2)以整型变量作实参调用函数。

(3)输出公约数和公倍数。

求公约数的算法:

定义一个循环变量,循环范围从2个整型变量中较小值~1。

循环判断该两个整型变量能否整除循环变量,如果能整除,则返回循环变量的值,否则继续循环。

求公倍数的算法:

定义1个变量存储公倍数。

公倍数等于两个数的乘积除以公约数。

返回公倍数。

传统流程图

传统流程图

图7-15最大公约数、最小公倍数和主函数流程图

程序代码

程序代码

#includestdio.h

intfnMax(intn,intm)

{

inti;

for(i=n;i=1;i--)

if(m%i==0n%i==0)

returni;

}

longfnMin(intn,intm)

{

longi;

i=m*n/fnMax(n,m);

returni;

}

voidmain()

{

intiNum1,iNum2;

intiMax;

longiMin;

printf(\nInputtwonumber:);

scanf(%d%d,iNum1,iNum2);

iMax=fnMax(iNum1,iNum2);

iMin=fnMin(iNum1,iNum2);

printf(thecommondivisoris%d,thecommonmultipleis%ld,iMax,iMin);

}

程序执行的结果为:

说明

说明

(1)程序中main()函数调用fnMax()、fnMin()函数完成求最大公约数和最小公倍数的任务,fnMin()函数调用fnMax()函数计算最小公倍数。在执行fnMin()函数时又调用fnMax()函数,即为函数的嵌套调用。

main()函数fnMax()函数fnMin()函数(2)无论函数在何处调用,调用结束后都会返回到调用该函数的地方。本例main()函数、fnMin()函数和fnMax()函数调用关系如图7-16所示。

main()函数

fnMax()函数

fnMin()函数

voidfnMax(intn,intm){返回函数的值

voidfnMax(intn,intm)

{

返回函数的值

}

voidfnMin(intn,intm)

{

i=m*n/fnMax(n,m);

返回函数的值

}

voidmain()

{

fnMin(iNum1,iNum2)

}

③②

④①

⑤⑧

⑦⑨

二.函数的递归调用

在调用一个函数的过程中又直接地或间接地调用该函数本身,称为函数的递归调用。显然,递归调用是嵌套调用的特例。

C语言提供两种形式的递归调用:

直接递归调用:指函数直接调用函数本身的形式,其执行过程如图7-17所示。

间接递归调用:指函数调用其他函数,其他函数又调用原函数的形式,其执行过程如图7-17所示。

图7-17执行过

您可能关注的文档

文档评论(0)

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

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档