欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第7章-函数ppt课件(全).ppt

    • 资源ID:76414456       资源大小:326.04KB        全文页数:32页
    • 资源格式: PPT        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第7章-函数ppt课件(全).ppt

    第第7章章 函函 数数第7章_函数ppt课件(全)第第7章章 函函 数数7.1 函数定义和函数调用函数定义和函数调用 7.2 函数的嵌套调用和递归调用函数的嵌套调用和递归调用 7.3 局部变量和全局变量局部变量和全局变量 7.4 变量的存储类别变量的存储类别 7.5 内部函数和外部函数内部函数和外部函数 第7章_函数ppt课件(全)7.1 函数定义和函数调用函数定义和函数调用7.1.1 函数定义函数定义【例【例 7.1】已知五边形各边及对角线的长度,求面积。】已知五边形各边及对角线的长度,求面积。abcdefgs1s2s3#include#include float area(float x,float y,float z)float s,a;s=(x+y+z)/2;a=sqrt(s*(s-x)*(s-y)*(s-z);return a;分析:分析:s1=area(a,b,f);s2=area(c,g,f);s3=area(d,e,g);第7章_函数ppt课件(全)void main()float a,b,c,d,e,f,g;float s1,s2,s3,s;scanf(%f%f%f%f%f,&a,&b,&c,&d,&e);scanf(%f%f,&f,&g);s1=area(a,b,f);s2=area(c,g,f);s3=area(d,e,g);s=s1+s2+s3;printf(s=%fn,s);abcdefgs1s2s3第7章_函数ppt课件(全)一般形式:一般形式:类型类型 函数名函数名(类型类型 形参,类型形参,类型 形参,形参,)定义部分定义部分 语句序列语句序列float area(float x,float y,float z)float s,a;s=(x+y+z)/2;a=sqrt(s*(s-x)*(s-y)*(s-z);return a;第7章_函数ppt课件(全)【例【例7.2】编写函数,在一行上输出编写函数,在一行上输出10个个*字符。字符。#include void print()int i;for(i=0;iy?x:y;return(maxvale);void main()float a,b,c,m;scanf(%f%f%f,&a,&b,&c);m=max(max(a,b),c);printf(m=%fn,m);第7章_函数ppt课件(全)一般形式:一般形式:类型标识符类型标识符 函数名函数名(类型类型 形参形参,类型,类型 形参形参,);或或类型标识符类型标识符 函数名函数名(类型类型,类型,类型,);7.1.4 函数声明函数声明例如:例如:float max(float x,float y);或或float max(float,float);第7章_函数ppt课件(全)【例【例7.4】对被调函数声明的例子】对被调函数声明的例子#includevoid main()float add(float x,float y);float a,b,c;scanf(%f,%f,&a,&b);c=add(a,b);printf(sun is%f,c);float add(float x,float y)float z;z=x+y;return(z);第7章_函数ppt课件(全)函数间的参数传递函数间的参数传递c=max(a,b);/*在在main函数中调用函数中调用*/int max(int x,int y)/*函数定义函数定义*/int z;z=xy?x:y;return(z);第7章_函数ppt课件(全)【例【例7.5】求末尾数非求末尾数非0的正整数的逆序数,如的正整数的逆序数,如 reverse(321)的值是:的值是:123#include void main()long a,reverse(long);scanf(%ld,&a);printf(%ldn,reverse(a);printf(a=%ldn,a);第7章_函数ppt课件(全)long reverse(long n)long k=0;while(n)k=k*10+n%10;n/=10;return k;reverse(321);k=0;当当n=321时时k=0*10+321%10=1;n=321/10=32;当当n=32时时k=1*10+32%10=12;n=32/10=3;当当n=3时时k=12*10+3%10=123;n=3/10=0;当当n=0时结束循环时结束循环分析:分析:n=321,k=0k=1;k=k*10+2;k=k*10+3;第7章_函数ppt课件(全)7.2 函数的嵌套调用和递归调用函数的嵌套调用和递归调用7.2.1 函数的嵌套调用函数的嵌套调用第7章_函数ppt课件(全)【例【例7.7】编写程序,输入】编写程序,输入n,m,求,求组合数组合数#include void main()int n,m;long cmn(int,int);scanf(%d%d,&n,&m);printf(cmn=%ldn,cmn(n,m);long jc(int n)int i;long t=1;for(i=1;i 3!=3*2!-2!=2*1!-1!=1*0!-0!=14!=4*6 -3!=3*2 -2!=2*1 -1!=1*1 -0!=1 第7章_函数ppt课件(全)【例【例7.8】用递归计算】用递归计算n!。#include long jc(int n)long f;if(n=1|n=0)f=1;else f=n*jc(n-1);return f;void main()long y;int n;scanf(“%d”,&n);y=jc(n);printf(%d!=%ld,n,y);main函数函数y=Jc(3)jc函数函数f=3*Jc(2)jc函数函数f=2*Jc(1)jc函数函数f=1return 1jc函数函数f=2*Jc(1)return 2jc函数函数f=3*Jc(2)return 6第7章_函数ppt课件(全)【例【例7.9】把十进制整数按相反的顺序将各位数字打】把十进制整数按相反的顺序将各位数字打 印出来。如:印出来。如:print(123456);输出:输出:654321#include void print(long n)if(n=0)return;else printf(%d,n%10);print(n/10);return;void main()long n;scanf(%ld,&n);print(n);运行结果如下:运行结果如下:123456 654321第7章_函数ppt课件(全)7.3 局部变量和全局变量局部变量和全局变量main()int a;a=10;printf(“%d”,a);内存内存.1020002001第7章_函数ppt课件(全)7.3.1 局部变量(内部变量)局部变量(内部变量)定义:定义:在函数内定义的变量。在函数内定义的变量。作用域:作用域:在本函数内有效。在本函数内有效。说明:说明:(1)main函数中定义的变量只在函数中定义的变量只在main函数函数中有效。中有效。(2)形参属于形参属于局部局部变量。变量。(3)不同函数中不同函数中同名同名变量,占不同内存单变量,占不同内存单 元。元。(4)在在复合语句复合语句中定义的变量,只在本复中定义的变量,只在本复合语句中有效。合语句中有效。float fun(float x)float a;a=x0?x:-x;return a;void main()float m,n;scanf(“%f”,&m);n=fun(m);printf(“%fn”,n);float fun(float x)float a;a=x0?x:-x;return a;void main()float a,n;scanf(“%f”,&a);n=fun(a);printf(“%fn”,n);void main()int a,b,c;a=1;b=2;c=a+b;int c;c=a-b;printf(“%dn”,c);printf(“%dn”,c);输出:输出:-13第7章_函数ppt课件(全)7.3.2 全局变量全局变量(外部变量外部变量)l 定义:定义:在函数外在函数外部定义的变量部定义的变量。l 作用域:作用域:从定义从定义的位置到本文件结的位置到本文件结束束。x,i,ja,b,c,dm,nc1,c2a1,a2int a1=1,a2=5;float f1(float x)int i,j;.char c1,c2;char f2(int a,int b)int c,d;.void main()int m,n;.第7章_函数ppt课件(全)【例【例7.10】编写函数求两个数】编写函数求两个数的和与积。的和与积。#include float add,mult;void func(float x,float y)add=x+y;mult=x*y;void main()float a,b;scanf(%f%f,&a,&b);func(a,b);printf(%.2f%.2fn,add,mult);注意:注意:(1)设置全局变量的作设置全局变量的作用是增加了函数间数据用是增加了函数间数据传递的通道。传递的通道。(2)全局变量定义时未初全局变量定义时未初始化,系统为其赋初值始化,系统为其赋初值0。(3)若全局变量与局部变若全局变量与局部变量同名,则在局部变量量同名,则在局部变量的作用范围内,同名的的作用范围内,同名的全局变量不起作用全局变量不起作用。float add,mult;add=x+y;mult=x*y;运行情况如下:运行情况如下:3 8 11.00 24.00运行情况如下:运行情况如下:3 8 00.00 00.00第7章_函数ppt课件(全)【例【例6.13】用】用extern声明外部声明外部变量,扩展它在程序文件中的变量,扩展它在程序文件中的作用域作用域#includeint max(int x,int y)int z;z=xy?x:y;return(z);void main()printf(%d,max(A,B);int A=8,B=2;(4)当全局变量定义当全局变量定义在后,引用在前时,在后,引用在前时,应在引用它的函数应在引用它的函数中用中用extern 对此全对此全局变量进行声明局变量进行声明(说明)。(说明)。【例【例6.13】用】用extern声明外部声明外部变量,扩展它在程序文件中的变量,扩展它在程序文件中的作用域作用域#includeint max(int x,int y)int z;z=xy?x:y;return(z);void main()extern int A,B;printf(%d,max(A,B);int A=8,B=2;【例【例7.12】用】用extern声明外部变声明外部变量,扩展它在程序文件中的作量,扩展它在程序文件中的作用域用域#includeint max(int x,int y)int z;z=xy?x:y;return(z);void main()extern A,B;printf(%d,max(A,B);int A=8,B=2;第7章_函数ppt课件(全)(5)当一个程序由多个源当一个程序由多个源文件组成时,如果想在文件组成时,如果想在一个文件中引用另一个一个文件中引用另一个文件中的已定义的外部文件中的已定义的外部变量,要用变量,要用extern对该变对该变量进行声明。量进行声明。【例【例6.13】用】用extern将外部变量将外部变量的作用域扩展到其他文件。的作用域扩展到其他文件。文件文件a2.c中的内容为:中的内容为:extern a;int power(int n)int i,y=1;for(i=1;i=n;i+)y*=a;return(y);文件文件a1.c中的内容为:中的内容为:#include int a;main()int power(int);int d,m;printf(enter a number and its power:n);scanf(%d,%d,&a,&m);d=power(m);printf(%d*%d=%d,a,m,d);计算:计算:a的的m次方,即次方,即 a*m=am运行情况如下:运行情况如下:2,3 2*3=8第7章_函数ppt课件(全)变量的属性:变量的属性:数据类型:如数据类型:如 int,float 等。等。存储类型存储类型:是指数据在内存中:是指数据在内存中 的存储方式。的存储方式。分两大类:分两大类:动态存储类动态存储类 静态存储类静态存储类 7.4 变量的存储类型变量的存储类型用户内存空间用户内存空间动态存储区动态存储区静态存储区静态存储区程序存储区程序存储区变量定义的形式:变量定义的形式:存储类型标识符存储类型标识符 类型标识符类型标识符 变量名;变量名;autostaticregisterextern自动的自动的静态的静态的寄存器寄存器外部的外部的第7章_函数ppt课件(全)int i,j,k;char c;.int i,j,k;char c;.等价于等价于 autoauto int i,j,k;int i,j,k;autoauto char c;.char c;.7.4.1 auto(自动)变量(自动)变量 7.4.2 static(静态)变量(静态)变量静态变量分为:静态变量分为:静态静态局部局部变量变量 静态静态全局全局变量变量静态全局变量只能被所定义静态全局变量只能被所定义的文件中所有函数引用。的文件中所有函数引用。例如在例例如在例7.137.13中将全局变量定中将全局变量定义为义为 static int a;static int a;第7章_函数ppt课件(全)【例例6.13】考察静态局部变量的值。】考察静态局部变量的值。#includeint func(int a)int b=0;static int c=1;b=b+1;c=c+1;return(a+b+c);void main()int a=2,i;for(i=0;i3;i+)printf(%d,func(a);分析:分析:i=0时:时:b:0 c:1 b:1 c:2a+b+c=2+1+2=5;运行结果:运行结果:5 6 7分析:分析:i=1时:时:b:0 c:2 b:1 c:3a+b+c=2+1+3=6;分析:分析:i=2时:时:b:0 c:3 b:1 c:4a+b+c=2+1+4=7;第7章_函数ppt课件(全)寄存器变量被存放在寄存器中,寄存器变量被存放在寄存器中,比自动变量存取速度快得多。比自动变量存取速度快得多。7.4.3 register(寄存器)变量(寄存器)变量int fac(int n)register int i,f=1;for(i=1;i=n;i+)f=f*i;return(f);注意:注意:(1)寄存器的数量有限,因此寄存器变量不能定义太多。寄存器的数量有限,因此寄存器变量不能定义太多。(2)只有局部自动变量和形式参数可作为寄存器变量。只有局部自动变量和形式参数可作为寄存器变量。第7章_函数ppt课件(全)1.内部函数内部函数 内部函数内部函数只能被本文件中的其他函数所只能被本文件中的其他函数所调用。调用。在定义函数时,在前面加在定义函数时,在前面加static。例如:例如:static float fun(float x,float y)7.5 内部函数和外部函数内部函数和外部函数第7章_函数ppt课件(全)2 外部函数外部函数 (1)在定义函数时,在前面加上在定义函数时,在前面加上extern,则表示该函,则表示该函数为数为外部函数外部函数,可供,可供其他文件其他文件调用。调用。如如 extern float fun(float x,float y)或或 float fun(float x,float y)(2)在在需需要要调调用用此此函函数数的的文文件件中中,用用extern 声声明明所所用函数是外部函数。如用函数是外部函数。如 extern float fun(float x,float y);或或 float fun(float x,float y);第7章_函数ppt课件(全)

    注意事项

    本文(第7章-函数ppt课件(全).ppt)为本站会员(可****阿)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开