第7章_函数课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第7章_函数课件.ppt》由会员分享,可在线阅读,更多相关《第7章_函数课件.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第7章_函数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 floa
2、t 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
3、,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个个 * 字符。字符。#in
4、clude 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);或或
5、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
6、 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
7、=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】编写程序,输入】编写程序
8、,输入n,m,求,求组合数组合数)!( !nmnmCnm#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
9、) 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 61n1)!-n(n0,1n1n!第7章_函数ppt课件(全)【例【例7.9】把十进制整数按相反的顺序将各位数字打】把十进制整数按
10、相反的顺序将各位数字打 印出来。如:印出来。如: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章_
11、函数ppt课件(全)7.3.1 局部变量(内部变量)局部变量(内部变量)定义:定义:在函数内定义的变量。在函数内定义的变量。作用域:作用域:在本函数内有效。在本函数内有效。说明:说明:(1) main函数中定义的变量只在函数中定义的变量只在main函数函数中有效。中有效。(2) 形参属于形参属于局部局部变量。变量。(3) 不同函数中不同函数中同名同名变量,占不同内存单变量,占不同内存单 元。元。(4) 在在复合语句复合语句中定义的变量,只在本复中定义的变量,只在本复合语句中有效。合语句中有效。float fun( float x ) float a; a=x0?x:-x; return a;v
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 函数 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内