第十二讲 函数的调用和变量的作用域.ppt

第十二讲 函数的调用和变量的作用域.ppt

ID:48806338

大小:115.50 KB

页数:25页

时间:2020-01-27

第十二讲  函数的调用和变量的作用域.ppt_第1页
第十二讲  函数的调用和变量的作用域.ppt_第2页
第十二讲  函数的调用和变量的作用域.ppt_第3页
第十二讲  函数的调用和变量的作用域.ppt_第4页
第十二讲  函数的调用和变量的作用域.ppt_第5页
资源描述:

《第十二讲 函数的调用和变量的作用域.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第13讲函数的调用和变量的作用域一、函数的嵌套及递归调用1、函数的嵌套调用2、函数的递归调用二、变量的作用范围1、局部变量2、全局变量嵌套调用:在一个函数调用过程中又调用另一个函数。一、函数的调用1、函数的嵌套及递归调用例嵌套调用:qian1(intx,inty){intc,s,t;s=x+y;t=x-y;c=qian2(s,t);return(c);printf("c=%d",c);}qian2(intx,inty){return(x*y);}main(){inta=1,b=2,c;c=2*qian1(a,b);printf("c=%d",c);}例统计输

2、入字符个数#include"stdio.h"longcountch();/*利用函数原型声明函数*/main(){longn;n=countch();printf("n=%ld",n);}longcountch(){longcn;for(cn=0;getchar()!=‘’;cn++);returncn;}例连接两个字符串#include"stdio.h"intchdu(charx[]);/*函数原型声明*/voidlianjie(charx[],chary[]);main(){chara[100],b[20];inti,k;gets(a);gets(b);

3、lianjie(a,b);puts(a);}intchdu(charc[100])/*测试字符串长度*/{intk;for(k=0;c[k]!='';k++);returnk;}voidlianjie(charx[],chary[])/*连接字符串*/{intk,m;k=chdu(x);for(m=0;y[m]!='';m++)x[k+m]=y[m];x[k+m]=‘’;}例输入两个数,求它们的和、差、积、商。main(){floatx,y;floatadd(float,float),min(float,float),mul(float,float),d

4、iv(float,float);printf("Pleaseinputtwonumbers:");scanf("%f,%f",&x,&y);printf("%f+%f=%f",x,y,add(x,y));printf("%f-%f=%f",x,y,min(x,y));printf("%f*%f=%f",x,y,mul(x,y));printf("%f/%f=%f",x,y,div(x,y));}floatadd(floatxx,floatyy){floatzz;zz=xx+yy;return(zz);}floatmin(floatxx,floatyy

5、){floatzz;zz=xx-yy;return(zz);}2、函数的递归调用递归调用:在调用一个函数的过程中又出现直接或间接地调用该函数本身。这样的调用称为递归调用。递归调用必须可以满足一定条件时结束递归调用,否则无限地递归调用将导致程序无法结束。例计算Fibonacci(斐波纳契)数列longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(1);}main(){printf("%ld",fib(6));}例使用递归算法编写计算n!的函数。longfac(longn){returnn==0?1:n*

6、fac(n-1);}voidmain(){intm;scanf("%d",&m);printf("%2d!=%ld",m,fac(m));}例使用递归算法求m和n的最大公约数gcd分析:求m和n的最大公约数等价于求n与(mmodn)的最大公约数。(mod模运算即整除求余)则有gcd(m,n)等价于gcd(n,(mmodn))例如:求24和16的最大公约数即求与gcd(16,(24mod16))的最大公约数为gcd(16,8)又等价于gcd(16,(16mod8))为gcd(8,0)此时n为零,m即为最大公约数#includefloatgcd(fl

7、oatm,floatn);voidmain(){floatm,n,g;printf(“Inputm,n:”);scanf(“%f,%f”,&m,&n);g=gcd(m,n);printf(“gcd(%2.0f,%2.0f)=%5.0f”,m,n,g);}程序如下:floatgcd(floata,floatb){if(b==0)return(a);elsereturn(gcd(b,fmod(a,b)));}变量的作用范围也称变量的作用域,即变量可以存储或访问的范围。变量的作用域是指变量的"可见性"。二、变量的作用范围局部变量:在一个函数内部定义的变

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

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

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