C语言程序设计 教学课件 作者 路俊维 马雪松主编 第7章 函数.ppt

C语言程序设计 教学课件 作者 路俊维 马雪松主编 第7章 函数.ppt

ID:50083711

大小:156.00 KB

页数:27页

时间:2020-03-08

C语言程序设计 教学课件 作者 路俊维 马雪松主编 第7章 函数.ppt_第1页
C语言程序设计 教学课件 作者 路俊维 马雪松主编 第7章 函数.ppt_第2页
C语言程序设计 教学课件 作者 路俊维 马雪松主编 第7章 函数.ppt_第3页
C语言程序设计 教学课件 作者 路俊维 马雪松主编 第7章 函数.ppt_第4页
C语言程序设计 教学课件 作者 路俊维 马雪松主编 第7章 函数.ppt_第5页
资源描述:

《C语言程序设计 教学课件 作者 路俊维 马雪松主编 第7章 函数.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章函数任务:学生成绩排序任务所需主要相关知识:函数的定义调用及简单应用数组作为函数的参数函数的嵌套调用和递归调用变量的作用域和生存周期7.1函数的定义、调用及简单应用7.1.1函数定义的一般形式1.无参函数的定义形式类型标识符函数名(){变量声明部分语句执行部分}实现该函数的功能对函数体内部所用到的变量的说明2.有参函数定义的一般形式类型标识符函数名(形式参数表列){变量声明部分语句执行部分}在形参表中给出的参数称为形式参数,它们可以是各种类型的变量,各参数之间用逗号间隔。在进行函数调用时,主调函数将赋予这些形式参数实际的值。形参既然是变量,必须在形参表中给出形参的类型

2、说明2.有参函数定义的一般形式例如,定义一个函数,用于求两个数中的最大数,可写为:intmax(inta,intb){if(a>b)returna;elsereturnb;}7.1.2函数调用的一般形式C语言中,函数调用的一般形式为:函数名(实际参数表)对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数,变量或其它构造类型数据及表达式。各实参之间用逗号分隔。7.1.3函数调用的方式在C语言中,可以用以下几种方式调用函数:1.函数表达式:函数出现在一个表达式中,这种表达式称为函数表达式。这时要求函数带回一个确定的值以参加表达式的运算。例如:c=8*max(a,b);

3、函数max是表达式的一部分,它的值乘8再赋给c。7.1.3函数调用的方式2.函数语句:把函数调用作为一个语句。例如:printstar();这时不要求函数带回值,只要求函数完成一定的操作7.1.3函数调用的方式3.函数参数:函数调用作为一个函数的参数。例如:m=max(a,max(b,c));其中max(b,c)是一次函数调用,它的值作为max另一次调用的实参。m的值是a,b,c三者中最大者的值。7.1.4形式参数和实际参数在调用函数时,大多数情况下,主调函数和被调用函数之间有数据传递关系。这就是前面提到的有参数函数。前面已提到,在定义函数时函数名后面括弧中的变量名称为“形

4、式参数”(简称“形参”),在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为“实际参数”(简称“实参”)。【例7.1】利用函数求两个数中最大数(调用函数时的数据传递)【程序代码】#includevoidmain(){intmax(inta,intb);inta,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("maxis%d",c);}intmax(intx,inty){intz;z=x>y?x:y;return(z);}7.2数组作为函数的参数数组可以作为函数的参数使用,进行数据传送。数组

5、用作函数参数有两种形式,一种是把数组元素(下标变量)作为实参使用;另一种是把数组名作为函数的形参和实参使用。7.2.1数组元素作函数实参数组元素就是下标变量,它与普通变量并无区别。因此它作为函数实参使用与普通变量是完全相同的,在发生函数调用时,把作为实参的数组元素的值传送给形参,实现单向的值传送。7.2.2数组名作为函数参数1.用数组名作函数参数时,则要求形参和相对应的实参都必须是类型相同的数组,都必须有明确的数组说明。当形参和实参二者不一致时,即会发生错误。2.在普通变量或下标变量作函数参数时,形参变量和实参变量是由编译系统分配的两个不同的内存单元。7.3函数的嵌套调用和

6、递归调用7.3.1函数的嵌套调用C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用。【例7.4】计算s=22!+32!本题可编写两个函数,一个是用来计算平方值的函数f1,另一个是用来计算阶乘值的函数f2。主函数先调f1计算出平方值,再在f1中以平方值为实参,调用f2计算其阶乘值,然后返回f1,再返回主函数,在循环程序中计算累加和。【程序代码】#includelongf1(intp){intk;longr;longf2(int);k=p

7、*p;r=f2(k);returnr;}longf2(intq){longc=1;inti;for(i=1;i<=q;i++)c=c*i;returnc;}voidmain(){inti;longs=0;for(i=2;i<=3;i++)s=s+f1(i);printf("s=%ld",s);}7.3.2函数的递归调用一个函数在它的函数体内调用它自身称为递归调用。这种函数称为递归函数。C语言允许函数的递归调用。在递归调用中,主调函数又是被调函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层。【例7

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

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

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