程序设计基础教案252课时——函数的调用和嵌套调用.docx

上传人:lao****ou 文档编号:444758 上传时间:2023-11-18 格式:DOCX 页数:8 大小:44.13KB
下载 相关 举报
程序设计基础教案252课时——函数的调用和嵌套调用.docx_第1页
第1页 / 共8页
程序设计基础教案252课时——函数的调用和嵌套调用.docx_第2页
第2页 / 共8页
程序设计基础教案252课时——函数的调用和嵌套调用.docx_第3页
第3页 / 共8页
程序设计基础教案252课时——函数的调用和嵌套调用.docx_第4页
第4页 / 共8页
程序设计基础教案252课时——函数的调用和嵌套调用.docx_第5页
第5页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《程序设计基础教案252课时——函数的调用和嵌套调用.docx》由会员分享,可在线阅读,更多相关《程序设计基础教案252课时——函数的调用和嵌套调用.docx(8页珍藏版)》请在第一文库网上搜索。

1、教案序号25周次授课形式新授授课章节名称函数的调用和嵌套教学目的学会函数的调用和嵌套教学重点函数的调用教学难点函数的嵌套使用教具机房课外作业课后体会授课主要内容6.2.3函数的返回值通常,希望通过函数调用使主调函数能得到一个确定的值,这就是函数返回值,简称函数值。例6.3中,max(5,3)的值为5,并将该值赋予变量c。函数值是通过函数中的return语句获得的。return语句的功能有3个。(1)返回一个值给主调函数。(2)释放在函数的执行过程中分配的所有内存空间。(3)结束被调函数的运行,将流程控制权交回给主调函数。return语句使用的一般形式为:return(表达式)return语句应

2、写在函数体的结束部分,其中圆括号也可以不要。如例6.3中返回函数值部分的ureturn(temp);,也可以写为returntemp;,有时在函数调用时主调函数并不需要返回值,如例6.1。为了明确表示“不带回值”,可以用“void”定义“无类型”(或称“空类型”)。如例6.1中定义可以改为voidprint_stars()voidprint_mess()这样系统就保证在函数调用时不带回任何值。6.2.4 函数的调用1 .函数调用的一般形式函数名(实参表列);如果是调用无参函数,则不需写“实参表列”,但括号不能省略,见例6.1。如果实参表列包含多个实参,则各参数间用“,”分隔,见例6.3。实参表

3、列是函数入口参数的实际值。如例6.3中的c=max(a,b);”中的a和b就是有确定值的实际参数,“max(a,b)”是对函数的调用,调用结束后得到返回值赋值给变量c.2 .函数调用的具体方式:有些函数有返回值,有些没有返回值,这两种函数的调用形式不同。(1)有值函数的调用形式:a.作为函数表达式或表达式的一部分,即函数返回值参与表达式的运算。如例6.3中的c=max(a,b);就是将函数作为表达式,而“c=2*max(a,b)J就是将函数作为表达式的部分。b.作为函数参数。即函数返回值又作为另一个函数的实参。例如:【例6.4修改例6.3,使输出三个数中的最大数。主要功能:输出三个数中的最大数

4、inc1udeintmain()(intmax(int,int);inta,b,c,m;scanf(z,%d,%d,%d,&a,&b,&c);m=max(a,max(b,c);printf(,Themaxis:%dn,m);return0;)intmax(intx,inty)定义有参函数max求最大值(inttemp;temp=xy?x:y;return(temp);)运行情况为:5,3,8/Themaxis8其中“max(b,c)”是一次函数调用,它的值作为InaX另一次调用的实参。m的值是a、b、C三者中最大的。(2)无值函数的调用形式无值函数调用是将函数作为一个语句。如例6.1中的“pr

5、intJneSS();“和print_stars();,这时不要求函数带回值,只要求函数完成一定的操作。3 .对被调用函数的声明在用户自定义函数被调用前,一般还应该对函数进行声明,即将函数的有关信息通知编译系统,为函数的被调用作好准备。对被调用函数的声明一般形式为:函数类型函数名(参数类型1参数名1,参数类型2参数名2);其中:(1)声明中,参数名可省略。为了增加程序的可读性,一般加上参数名。但编译系统不检查参数名,因此参数名是什么都无所谓。(2)应保证函数声明和定义写法上的一致,即函数类型、函数名、参数个数和参数类型等必须相同。否则系统将按出错处理。细心的读者可能已经发现,例6.1和例6.3

6、中并没有对函数进行声明,但程序在运行中并没有出错,这是为什么呢?下面就此问题进行一些简单的说明:(1)如果被调函数的定义出现在主调函数之前,可以不必加以声明。如果将例6.3修改如下:ftinc1udeintmain()(inta,b,c;scanf(z/%d,&a,&b);c=max(a,b);printf(z,Themaxis:%dnz,,c);return0;intmax(intx,inty)(inttemp;temp=xy?x:y;return(temp);)即将main函数和max函数次序颠倒。由于在main函数中调用max函数时没有进行声明,系统将会按出错处理。(2)在主调函数内对被

7、调函数在调用之前进行声明(也称为内部声明)。如例6.3可修改如下:ttinc1udeintmain()inta,b,c;scanf(,%d,%d,&a,&b);intmax(intx,inty);在max函数被调用前进行内部声明参数名x,y可省略,也可改成其它如p,q等c=max(a,b);printf(,zThemaxis:%dn”,c);return0;intmax(intx,inty)(inttemp;temp=xy?x:y;return(temp);内部声明的位置并不固定,只要在主调函数内部且在函数被调用之前即可,如上例可以将声明写在语句“scanf之前或者之后都可以。(3)如果已在所

8、有函数定义之前,在函数的外部进行了函数声明(也称为外部声明),则在各个主调函数中不必对所调用的函数再作声明。将例6.3进行外部声明:ttinc1udeintmax(intx,inty);在main函数的外部进行外部声明intmain()inta,b,c;scanf(z,%d,%d,&a,&b);c=max(a,b);已进行外部声明,在main函数中不必再进行声明printf(,Themaxis:%dn,c);returnO;)intmax(intx,inty)inttemp;temp=xy?x:y;return(temp);)6.2.5 函数的嵌套调用函数的嵌套调用是指在调用一个函数的过程中,

9、被调用的函数又去调用另一个函数,这种方式就称为函数的嵌套调用。如图6.4所示。图6.4函数的嵌套调用图6.4表示的是两层嵌套(不含主函数),其执行过程是:(1)执行main函数的开头部分;(2)遇到调用函数a的操作语句,转向a函数;(3)执行a函数的开头部分;(4)遇到调用函数b的操作语句,转向b函数;(5)完成b函数的全部操作;(6)返回调用b函数处,即返回a函数;(7)继续执行a函数,直到a函数结束;(8)返回调用a函数处,即返回main函数;(9)继续执行main函数的剩余部分,直到结束。【例6.5】计算2在区间0,5的定积分,设增量h=0.00005。程序由3个函数构成,分别是主函数m

10、ain、f1函数、f2函数。主函数调用函数f2,f2的执行过程中又调用了函数f1,main函数嵌套调用了函数f1O0功能:主函数对函数按h的值进行切割,调用函数f2计算面积inc1udevoidmain()(f1oatf2(f1oat,f1oat);对函数f2进行声明f1oats=0,h=0.00005,X;for(x=0;x5;x=x+h)s=s+f2(x,h);printf(%fn”,s);求每一个梯形的面积,如图6.5所示f1oatf2(f1oatx,f1oath)定义f2函数(f1oatf1(f1oat);对函数f1进行声明return(f1(x)+f1(x+h)*h2);/嵌套调用f1函数)返回函数x*x的值f1oatf1(f1oatx)定义f1函数return(x*x);在函数的嵌套调用中,有一个特例就是函数直接或间接地调用该函数本身,称为函数的递归调用。该内容我们将在后面的例题中进行讲解。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服