6.2 函数的嵌套调用和递归调用(课件)-高二《程序设计基础》同步教学(北京理工版)

2023-07-30
| 15页
| 144人阅读
| 6人下载
普通

资源信息

学段 中职
学科 职教专业课
课程 程序设计基础
教材版本 -
年级 高二
章节 -
类型 课件
知识点 -
使用场景 同步教学
学年 2023-2024
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 PPTX
文件大小 103 KB
发布时间 2023-07-30
更新时间 2023-07-30
作者 匿名
品牌系列 -
审核时间 2023-07-30
下载链接 https://m.zxxk.com/soft/40132886.html
价格 0.00储值(1储值=1元)
来源 学科网

内容正文:

6.2 函数的嵌套调用和递归调用 6.2.1函数的嵌套调用 1.引例 例6.9 验证任意偶数为两个素数之和并输出这两个素数。 假设验证的数放在变量x中,可依次从x中减去i,i从2变化到x/2,步骤如下: (1)i初值为2。 (2)判断i是否是素数。若是,执行步骤(3);若不是,执行步骤(5)。 (3)判断x-i是否是素数,若是,执行步骤(4);若不是,执行步骤(5)。 (4)输出结果。 (5)使i增1。 (6)重复执行步骤(2),直到i>x/2。 下一页 返回 6.2 函数的嵌套调用和递归调用 2.说明 (1)C语言不允许函数嵌套定义,但允许在一个函数的函数体中出现对另一个函数的调用。所谓函数的嵌套调用是指在执行被调用函数时,被调用函数又调用了其它函数。这与其它语言的子程序嵌套调用的情形是类似的,其关系可表示为如图6-1。 上一页 下一页 返回 6.2 函数的嵌套调用和递归调用 (2)图6-1表示了两层嵌套的情形。其执行过程是: 执行main()函数中调用f1()函数的语句时,即转去执行f1()函数;在f1()函数中调用f2()函数时,又转去执行f2()函数;f2()函数执行完毕,返回f1()函数的断点,继续执行其后续语句;f1()函数执行完毕,返回main()函数的断点,继续执行后续语句。 上一页 下一页 返回 6.2 函数的嵌套调用和递归调用 6.2.2函数的递归调用 1.引例 例6.11 用递归法计算n!。 long power(int n) { long f; if (n>1) f=power(n-1)*n; else f=1; return (f); } 上一页 下一页 返回 6.2 函数的嵌套调用和递归调用 main() { int n; long y; printf("Input a integer number: "); scanf("%d",&n); y=power(n); printf("%d!=%ld ",n,y); getch(); } 上一页 下一页 返回 6.2 函数的嵌套调用和递归调用 2.说明 (1)函数的递归调用是C语言的一大特色,递归函数既是主调函数,同时又是被调用函数,执行递归函数将反复调用其自身。每调用一次就进入新的一层。例如,在图6-2中,函数f()为直接递归函数,函数f1()和函数f2()为间接递归函数。 上一页 下一页 返回 6.2 函数的嵌套调用和递归调用 (2)如果递归函数无休止地调用其自身,这当然是不正确的。为了防止递归调用无终止地进行,必须在函数内有终止递归调用的手段。常用的办法是加条件判断,满足某种条件后就不再作递归调用,然后逐层返回。这个条件称为递归结束条件。 (3)递归调用的执行过程分析 运行例6.11程序时,输入值为5,即求5!。在主函数中的调用语句即为y=power(5),进入power()函数后,由于n=5,大于1,故执行f=power(n-1)*n,即f=power(5-1)*5。该语句对power()函数作递归调用,即power(4)。逐次递归展开,如图6-3所示。 上一页 返回 6.3 内部变量与外部变量 6.3.1内部变量 1.内部变量的概念和定义 在一个函数(包括main()函数)内部或复合句内部定义的变量称为内部变量,自然,函数的形参属于内部变量。内部变量只在该函数范围内或该复合句范围内有效。也就是说,内部变量的作用域局限于定义它的函数或复合句内部,在此函数之外或此复合句之外就不能使用这些变量了。所以内部变量也称局部变量。 下一页 返回 6.3 内部变量与外部变量 2.说明 (1)主函数main()中定义的内部变量,也只能在主函数中使用,其它函数不能使用。同时,主函数中也不能使用其它函数中定义的内部变量。因为主函数也是一个函数,与其它函数是平行关系。这一点是与其它语言不同的,应予以注意。 (2)形参变量也是内部变量,属于被调用函数;实参变量,则是主调函数的内部变量。 (3)允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的存储单元,互不干扰,也不会发生混淆。 (4)在复合句中也可定义变量,其作用域只在复合句范围内。 上一页 下一页 返回 6.3 内部变量与外部变量 6.3.2外部变量 1.外部变量的概念和定义 在函数外部定义的变量称为外部变量。外部变量不属于任何一个函数,其作用域是:从外部变量的定义位置开始,到本源文件结束为止。外部变量可被

资源预览图

6.2  函数的嵌套调用和递归调用(课件)-高二《程序设计基础》同步教学(北京理工版)
1
6.2  函数的嵌套调用和递归调用(课件)-高二《程序设计基础》同步教学(北京理工版)
2
6.2  函数的嵌套调用和递归调用(课件)-高二《程序设计基础》同步教学(北京理工版)
3
6.2  函数的嵌套调用和递归调用(课件)-高二《程序设计基础》同步教学(北京理工版)
4
6.2  函数的嵌套调用和递归调用(课件)-高二《程序设计基础》同步教学(北京理工版)
5
6.2  函数的嵌套调用和递归调用(课件)-高二《程序设计基础》同步教学(北京理工版)
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。