- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]函数
例如:给定整数是 12345,要求输出 54321。 这是非数值问题,根据递归方法解决非数值的思路: “有明确解法部分 + 性质相同的小问题”分析: (1) 输出给定的 N 位整数的个位上的数字, (2) 前 N - 1 位除以十, (3) 原问题被缩减为 N - 1 位整数反向输出问题。 (4) 如果 ?(结束条件)执行(6), 否则循环再执行(2)。 (5) 递归调用结束。 分析: 反向输出给定的整数 1 2 3 4 5 5 1 2 3 4 5 4 1 2 3 5 4 3 1 2 5 4 3 2 1 5 4 3 2 1 反向输出(整数 N) { if(N =10)then { 输出最后一位; 调用反向输出( NN-1); (N 除以10取整 NN-1) }else 输出 N; } 最后一位:y = N % 10 §7- 7 函数的递归(续) main( ) { int x; printf(“\n Enter N=”); scanf(“%d”,x); int turn(x); } int turn(n) int n; { if(n=10) { printf(“%d ”,n%10); int turn(n/10); } else printf(“%d”,n); } 反向输出给定整数 函数自身调用 §7-8 局部变量和全局变量 变量是定义在一个函数内,还是定义在函数之外,是被一个函数所使用,还是被文件中多个函数所使用,或被若干个文件(整个程序)中的所有函数所使用,变量的值是否允许被其他函数修改, 掌握要点:变量如何定义 在什么范围有效 变量的值能保留多久 本节介绍 全程---文件----函数 一 、局部变量 §7-8 局部变量和全局变量(续) 1. 在功能函数(或复合语句)内定义。 2 . 在定义它的函数(或复合语句)内有效。 3. 只有当函数被调用时,才有值,函数调用结束,值不被保留。 4. 对其他函数不可见(其他函数不可访问)。 float f(a) int a; { int b,c; …} a,b,c 为局部变量 5. 说明:形参为局部变量 。 不同函数中的局部变量可以重名 f( ) { int x=1; { int x=2; { int x=3; printf(“*%d\n”,x); } printf(“**%d\n”,x); } printf(“***%d\n”,x); } §7-8 局部变量和全局变量(续) 结果: *3 **2 ***1 复合语句内定义, 复合语句内有效 。 二 、全局变量 §7-8 局部变量和全局变量(续) 程序的编译单位是源文件(*.c),一个源文件可以包含一个或若干函数,函数内定义的变量是局部变量,函数外定义的变量就是外部变量,可为文件内所有函数所共享。 1、函数外定义。 2、有效范围:从定义开始到本文件结束。 3、所有的函数可以访问,变量值在一个函数内发生变化,会影响到其他函数-----值保留。 (4) 同一个源文件中,局部变量与全局变量同名,在局部变量起作用的范围内,全局变量不起作用。 4 说明: §7-8 局部变量和全局变量(续) (1)全局变量是在编译时分配存储空间,自始至终占存储单元。 (2)如在定义之前使用某全局变量,用extern说明。 (3) 全局变量的初始化只能有一次,是在定义时进行。 int a; main( ) { int I; for(I=1;I=5;I++) { ++a; printf(”%d\n”,a); s ( ) ; } } int a=10; s ( ) { int a=100; ++a; printf(“%d\n”, a); } §7-8 局部变量和全局变量(续) 全局变量说明 全局变量定义,初始化 局部变量定义,初始化 11 101 12 101 13 101 14 101 15 101 为什么 说明? int x=500; main( ) { int x=300; f( ); ff( ); printf(“x=%d\n”,x); } f ( ) { x+=100; printf(“x=%d\n”,x); } ff ( ) { int x=10; printf(“x=%d\n”,x); } §7-8 局部变量和全局变量(续) 全局变量定义,初始化 局部变量定义,初始化 局部变量定义,初始化 600 10 300 §7-
您可能关注的文档
最近下载
- 教科版(2024)小学科学一年级上册(全册)教案及反思(含目录) .pdf VIP
- 2025年辽宁省初中学业水平考试(锦州市卷)中考英语试题含解析答案.pdf VIP
- 土建工程与基础 13次课第4章地基与基础第一节 土物理性质及工程分类.ppt VIP
- 科学技术是第一生产力创新思想.doc VIP
- JFE++Super-OLAC、HOP、E-WEL.ppt VIP
- 土建工程与基础课件 14次课 4.2 地基中的应力与变形.ppt VIP
- 第5课 美丽河山我们的家 课件 人民版中华民族大家庭.ppt
- 土建工程与基础课件 15次课 第4章 地基与基础 第3节 基础设计.ppt VIP
- 土建工程与基础课件10-1第3章3.6钢筋混凝土构件的裂缝和变形.ppt VIP
- 土建工程与基础课件10-23.7钢筋混凝土受压构件的计算.ppt VIP
文档评论(0)