第11讲 函数.ppt

第11讲 函数.ppt

ID:48805179

大小:342.00 KB

页数:30页

时间:2020-01-26

第11讲 函数.ppt_第1页
第11讲 函数.ppt_第2页
第11讲 函数.ppt_第3页
第11讲 函数.ppt_第4页
第11讲 函数.ppt_第5页
资源描述:

《第11讲 函数.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十一讲Begin:第七章函数函数的嵌套调用函数的递归调用变量的作用域和生存期内部函数和外部函数7.4.1函数的嵌套调用嵌套调用:在一个函数调用过程中又调用另一个函数。例嵌套调用:intfunc2(intx,inty){returnx+y;}intfunc1(intx,inty){intc,s,t;s=x+y;t=x-y;c=func2(s,t);returnc;}voidmain(){inta=1,b=2,c;c=2*func1(a,b);printf("c=%d",c);}例统计字符个数#include<

2、stdio.h>intcountch();/*函数原型声明*/voidmain(){intnum;num=countch();printf("输入的字符个数=%d",num);}intcountch(){intcn=0;while(getchar()!='')cn++;returncn;}7.4.1函数的嵌套调用递归调用:在调用一个函数的过程中又直接或间接地调用该函数本身。递归调用必须在满足一定条件时结束递归调用,否则无限地递归调用将导致程序无法结束。7.4.2函数的递归调用例使用递归方法计算n!。#in

3、cludedoublefac(intn){doubleres;if(n==1

4、

5、n==0)res=1;elseres=n*fac(n-1);returnres;}voidmain(){intm;scanf("%d",&m);printf("%d!=%.f",m,fac(m));}7.4.2函数的递归调用例计算Fibonacci(斐波拉契)数列的第n项。#includeintfib(intn){intres;if(n==1

6、

7、n==2)res=1;elseres=fib(n-

8、1)+fib(n-2);returnres;}voidmain(){intm;scanf("%d",&m);printf("fib(%d)=%d",m,fib(m));}7.4.2函数的递归调用例使用递归算法求m和n的最大公约数gcd。算法参考实验教程P657.4.2函数的递归调用#includeintgcd(intm,intn){if(n==0)returnm;elsereturngcd(n,m%n);}voidmain(){intm,n;scanf("%d%d",&m,&n);print

9、f("gcd(%d,%d)=%d",m,n,gcd(m,n));}变量的作用域是指定义变量的区域和可以引用变量的区域。7.5.1变量的作用域定义:在函数内部定义的变量。作用范围:只有定义局部变量的函数才能使用,其他函数不能使用。说明:不同函数可以使用相同名字的局部变量,它们占据不同的内存单元,互不干扰。形参也是局部变量。1、局部变量说出下列程序的运行结果#includevoidf2(intx,inty){x++;y++;}voidf1(intx,inty){intn=0;f2(x,y);pr

10、intf("%d,%d,%d",n,x,y);}voidmain(){intn=2,a=3,b=4;f1(a,b);printf("%d,%d,%d",n,a,b);}7.5.1变量的作用域0,3,42,3,4定义:在函数外定义的变量,也称外部变量。作用范围:从其定义的地方开始直至源程序结束。全局变量命名时,习惯采用首字母大写,其余字母小写的命名方法。2、全局变量7.5.1变量的作用域全局变量举例intAbc,D1;voidmain(){floatf1,f2;···}floatKa,Hc;voidexch

11、ange(intx,inty){doublec,e;···}全局变量Ka,Hc的作用域全局变量Abc,D1的作用域7.5.1变量的作用域例说出下列程序的运行结果#includeintX=3;intfunc(){intc=0;c+=X;X+=10;returnc;}voidmain(){intk=2;k=func();printf("1)%d",k);k=func();printf("2)%d",k);}运行结果:1)32)137.5.1变量的作用域全局变量的特点:优点利用全局变量可以从函

12、数中得到一个以上的返回值。利用全局变量可以减少函数中实参和形参的个数。缺点全局变量在程序运行过程中始终占据存储单元,而局部变量在函数被调用时才临时占用存储单元。函数的通用性降低。在同一个源程序中,当全局变量与局部变量同名时,在局部变量的作用域内,全局变量不起作用,即全局变量被“屏蔽”。7.5.1变量的作用域例#includeintM=5;intfun(i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。