C语言教案:第6章函数.ppt

C语言教案:第6章函数.ppt

ID:52266774

大小:574.01 KB

页数:55页

时间:2020-04-03

C语言教案:第6章函数.ppt_第1页
C语言教案:第6章函数.ppt_第2页
C语言教案:第6章函数.ppt_第3页
C语言教案:第6章函数.ppt_第4页
C语言教案:第6章函数.ppt_第5页
资源描述:

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

1、第六章:函数§6.1概述§6.2定义函数§6.3函数参数和函数值§6.4函数调用§6.5宏定义§6.6变量的作用域和存储类§6.7函数的递归调用*7/22/20211一、模块化程序设计方法§6.1概述函数是程序的基本组成单位C程序从main()函数开始执行用函数实现模块化程序设计的特点:(1)将大的、复杂的问题分解成若干个小的、简单问题。(2)将需多次执行的计算/操作编成通用的函数段。省时、省力。(3)每个函数段完成一个特定的功能7/22/20212二、函数分类1、按定义分:标准函数、自定义函数2、按调用分:无参调用、有参调用3、按

2、功能分:无值返回、有值返回7/22/20213§6.2定义函数一、函数定义的一般形式为:[类型标识符]函数名([形式参数表])[形式参数说明]{函数体[return()]}7/22/20214说明:1、若有值返回,则需标明类型,并一定有return。2、若有值代入,则必须有形参表及形参说明。3、形参说明的两种形式:intmax(intx,inty)或:intman(x,y)intx,y;max(x,y)intx;max(intx,y)正确或:错误!!!7/22/202154、形参说明与函数体内的说明一定要分别说明。如:intmax(

3、x,y)intx,y;{intz;z=x>y?x:y;return(z);}5、函数不可嵌套定义。7/22/20216§6.3函数参数和函数值一、形式参数和实际参数main()/*主函数*/{inta,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);/*a,b是实际参数*/printf(“max=%d”,c);}/*子函数*/max(x,y)/*x,y是形式参数*/intx,y;{intz;z=x>y?x:y;return(z);}7/22/20217说明:1、形参在调用前并不占有存储单元2、实参可以为常量、

4、变量或表达式3、定义函数时,必须指定形参类型。4、实参与形参要匹配5、实参变量对形参变量的数据传递分为“值传递”与“地址传递”二、函数的返回值1、函数的返回值由return语句完成。2、函数值与返回值类型不同,以函数类型为准。7/22/20218三、参数传递1、基本数据类型作参数main(){inta,b;printf("a=");scanf("%d",&a);printf("b=");scanf("%d",&b);swap(a,b);printf("a=%db=%d",a,b);}swap(intx,inty){intt;

5、t=x;x=y;y=t;/*交换x和y的值*/}输入:a=10b=15结果:a=b=1015(单向、值传递)例:7/22/202192、数组元素作函数参数例:用数组元素作实参,输出1~5的平方。main(){inta[5],i;for(i=0;i<5,i++){a[i]=i+1sq(a[i]);}}sq(intn){printf("%d",n*n);}7/22/2021103、数组名作参数注意:实参和形参的类型都必须是数组main(){inta[5],i;clrscr();for(i=0;i<=4;i++)a[i]=i+1;sq

6、(a);}sq(n)intn[5];{inti;for(i=0;i<5;i++)printf("%d",n[i]*n[i]);}7/22/202111说明:(1)调用sq()函数时,两个数组首地址完全相同。(2)实、形参数组的类型必须一致,大小可不一致.(3)通常形参数组大小不定。如::inta[10];:av(a);:av(intx[]):7/22/202112问题分析:1、将数据送入数组2、将所有数据累加求和3、根据总成绩及人数求平均成绩4、输出结果一维数组score中存有10个学生的成绩。求平均成绩。应用举例:例1:7/2

7、2/202113main(){intscore[10],i;floataver(),av;printf("输入成绩:");for(i=0;i<10;i++)scanf("%d",&score[i]);av=aver(score);printf(“平均成绩为:%6.2f",av);}floataver(stu);intstu[10];{inti,sum=0;floata;for(i=0;i<10;i++)sum+=stu[i];a=sum/10.0;return(a);}编程如下:7/22/202114例2:交换两个数组元素的值。

8、main(){inta[2];scanf("%d,%d",&a[0],&a[1]);swap(a);printf("%d,%d",a[0],a[1]);}swap(x);intx[];{intt;t=x[0];x[0]=x[1];x[

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

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

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