C语言第5讲-函数2.ppt

C语言第5讲-函数2.ppt

ID:49296862

大小:684.50 KB

页数:38页

时间:2020-02-02

C语言第5讲-函数2.ppt_第1页
C语言第5讲-函数2.ppt_第2页
C语言第5讲-函数2.ppt_第3页
C语言第5讲-函数2.ppt_第4页
C语言第5讲-函数2.ppt_第5页
资源描述:

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

1、函数第五讲●函数的特点●函数定义的一般形式●函数的作用域●函数的调用●形参和实参●局部变量和全局变量●动态存储变量与静态存储变量●函数的用法及其执行过程。●递归调用。教学难点重点:内容提要:一个应用程序可根据其功能划分为若干个小模块来处理,每个小模块可编制成一个函数。(1)C程序是由一个主函数main()和若干个库函数、自定义函数组成。(2)程序总是从main函数开始执行,其它函数则是通过main函数中的语句直接或间接地调用来执行。(3)C程序中有且仅有一个主函数,自定义函数可有可无。知识回顾结构化程序设计思想:●编译单位是

2、源程序文件,不是函数。●一个函数的代码是属该函数专有的,对程序的其它部分是隐藏的。●函数平行,不能嵌套定义。●函数可相互调用,主函数不能被调用。●函数可以有/无参数。C函数的特点及分类C函数的分类按使用分类标准函数:库函数;自定义函数:用户自己定义说明,专门的、特殊的;按形式分类无参函数:如main( )-由系统调用!有参函数:有<形参表>及说明;返回语句return函数名是一个标识符,后必须跟一对圆括号返回语句return函数名是一个标识符,后必须跟一对圆括号函数体必须用一对花括号括起来。函数名是一个标识符,后必须跟一对圆

3、括号函数定义的一般形式:无参函数:类型标识符函数名(){说明部分语句返回语句}空函数:类型标识符 函数名(){}从粗到细逐步求精的程序设计,用于预留空档便于程序扩展。形参之间用逗号分隔函数体必须用一对大括号括起来函数体函数体有参函数:类型标识符函数名(形式参数表列)形式参数说明{说明部分语句返回语句}函数体必须用一对花括号括起来。例:求二个数最大者main(){inta,b,c;scanf("%d,%d",&a,&b); c=max(a,b);printf("Maxis%d",c); }max(x,y)/*定义有参函数m

4、ax*/intx,y; {intz;z=x>y?x:y;return(z);}运行情况如下:输入:7,8输出:Maxis8执行过程如下:执行max函数体求出b,赋给y求出a,赋给x求出z值赋给cmain()结束调用max(a,b)打印"Maxis",c读入a,b函数参数:形参与实参aby实参x形参函数的返回值返回语句:return(1)return;无返回值(2)return(表达式);返回表达式值圆括号可省略()说明:一个函数体中允许有多个return语句若明确不返回值,可用void类型(无类型)定义函数return语句中

5、的表达式的类型与函数类型不同时,以函数类型为准;说明:实参就是函数调用语句中的实际数据。它可以是变量、常量及运算表达式。实参和形参类型要一致,一一对应。只能实参值传给形参,形参值不能传给实参(值传递)不说明的函数类型视为整型。说明:实参求值一般自右至左调用形式:作为语句或表达式在主调函数中一般要对被调函数予以声明。函数的调用函数调用的一般形式:被调函数名(实参表列);main()/*被调函数是整型,在此前定义可不加如下说明*/{floatadd(),a,b,c;scanf(“%f,%f”,&a,&b);c=add(a,b);

6、printf(“sum=%f”,c);}floatadd(x,y)floatx,y;{floatz;z=x+y;return(z);}在程序开头,函数的外部对被调函数作了声明,则在各主调函数中都不必声明被调函数。实参与形参的个数应相等、类型一致,顺序对应。voidswap1(intx,inty){inttemp;temp=x;x=y;y=temp;printf("x=%d,y=%d",x,y);}voidmain(){inta=5,b=9;swap1(a,b);printf("a=%d,b=%d",a,b);}swa

7、p1()函数的形参值的改变,对实参a和b没有影响。将实参的值传递给被调函数相应的形参,被调函数使用、修改这个值时,不会影响实参的值。单向传递函数的值传递调用输出:x=9,y=5a=5,b=9main函数fact函数传递n的值x的值fact(intx){intanswer,j;answer=1;for(j=1;j<=x;j++)answer*=j;return(answer);}main(){intn;scanf("%d",&n);printf("%d!=%d",n,fact(n));}写出这个程序的结果:假设输入的n为5

8、。输出:5!=120将地址作为实参传递给形参,使得形参和实参拥有相同的地址。双向传递在C程序中数组名和函数名可以代表它们在内存区域中的首地址。利用这个规定,将数组和函数的首地址传递给被调函数后,在被调函数运行时会改变数组中数组元素的值。即:在程序设计中被调函数中的形参值的变化也能传递回调用

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

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

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