ImageVerifierCode 换一换
格式:PPT , 页数:38 ,大小:372KB ,
资源ID:14007879      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/14007879.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Chap_9 函数.ppt)为本站上传会员【s4****5z】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Chap_9 函数.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Chap_9,函数,函数的组织,递归函数,变量与函数,宏定义,一个例子,#include,double fact(,int,n);,void main(),int,i,m;double s=0;,while(,scanf(%d,for(i=1;i=m;i+)s+=1.0/fact(i);,printf(“s,=%,dn,s);,本程序中出现了哪些函数?,double,fact(int,n),int,i;double f=1;,for(i,=1;i=n;i+),f*=i;,return f;,函数类型,_1,

2、从用户角度:,库函数,:,scanf,(),printf,(),getchar,(),putchar,(),puts(),gets(),fabs,(),sqrt,(),exp(),strcpy,(),strcat,(),strcmp,(),strlen,(),isdigit,(),isalphar,(),isupper,(),islower,(),toupper,(),自定义函数,:,主函数,main(),其他函数,fact(),#include,函数类型,_2,从函数的参数:,无参函数,如,void main,(),有参函数,如,double fact,(,int,n),从函数的返回值:,无

3、返回值函数,如,void,main(),有返回值函数,如,double,fact(,int,n),函数体中带,return,语句,【09,春试题,】,函数的定义与调用,定义函数,fact(n,),,计算,n!,,形参,n,的类型是,int,,函数类型是,double,。,定义函数,cal(x,e,),,计算多项式,s,,直到最后一项绝对值小于,e,,,形参,x,和,e,的类型都是,double,,函数类型是,double,,要求调用,fact(n,),函数,调用库函数,pow(x,n,),来计算,x,n,。,定义函数,main(),,输入两个浮点数,x,和,e,,计算多项式的值,直到最后一项的

4、绝对值小于精度,e,。要求调用,cal(x,e,),【,函数功能分析,】,主函数,main(),:,输入,x,和,e,;调用函数,cal(x,e,),;输出结果,自定义函数,cal(x,e),:,累加求和;调用函数,fact(i,),求,i,!,调用库函数,pow(x,i,),求,x,i,;向主调函数,main(),返回,s,自定义函数,fact(n,),:,求,n!,;向主调函数,cal(),返回,n!,函数调用关系,void main(),double cal(),double fact(),double,pow,(),x,e,i,x,i,i,!,x,i,s,函数的嵌套调用,定义函数,fa

5、ct(),/*,定义函数,fact(n,),,计算,n!,,形参,n,的类型是,int,,函数类型是,double*/,double fact(,int,n,),int,i;,double f=1;,for(i=1;i=,n,;i+),f*=i;,return,f,;,定义函数,cal(),/*,定义函数,cal(x,e,),,计算多项式,s,的值,直到最后一项绝对值小于,e,,形参,x,和,e,的类型是,double,,函数类型是,double*/,#include,/,库函数,pow,(),,,fabs,(),double,cal(double,x,double,e,),double it

6、em,s=0;,int,i=1;,do item=,fact(i)/pow(,x,i,);,s+=item;,i+;,while(,fabs(item,)=,e,),return,s,;,定义主函数,main(),/*,定义函数,main(),,输入两个浮点数,x,和,e,,计算多项式,s,的值,(,最后一项绝对值小于,e)*/,#include,void main(),double,x,e,;,printf(Input,x,e:);,scanf(“%lf%lf,”,&,x,&e,);,printf(s,=%f n,cal,(,x,e,);,当函数定义在前,无需函数声明,9.2,递归函数,求阶

7、乘!,解法一,:递推定义,n!=1*2*3*n,for(f=1,i=1;i1,9.2,递归函数,-,求,!,#include,void main(),int,n;,double fact();,scanf(%d,&n,);,printf(%fn,fact(n),);,不可写成,fact(n,)=n*fact(n-1),;,递归式子,递归出口,double,fact(int,n),double r;,if(,n=1,),r=1;,else,r=n*,fact(n-1),;,return r;,递归函数,fact(n),的实现过程,fact(3)=3*fact(2),2*fact(1),fact(

8、1)1,2*1=2,3*2=6,递归函数,递归函数,:函数体中直接或间接地调用该函数本身。,哪些问题可以用递归函数实现?,问题可逐步简化成自身较简单的形式,即,递归式子,,如:!()!,2.,有递归的最终结束条件,即,递归出口,如:,if(n=1)r=1;,两个条件缺一不可!,Fibonacci,数列,1 n=1,2,fib(n,),fib(n-1)+fib(n-2)n2,int,fib,(,int,n),int,r,;,if,(,n,=,1|n=2,),r=,1;,else,r=,fib,(n-1)+,fib,(n-2),;,return,r,;,递归出口,递归式子,用递归函数求,1+2+n

9、1 n=1,sigma(n,),sigma(n-1)+n n1,int,sigma,(,int,n),int,i,s,=0;,for(i,=1;i1,):,先将上面的,n-1,个盘子搬到辅助塔,b,;,再将,第,n,个,盘子从源塔搬,a,到目标塔,c;,最后将放在辅助塔,b,上的,n-1,个盘子搬到目标塔,c,Hanoi,塔,A B C,A B C,n,n-1,n-1,n-1,hanoi(n,a,c,b,),hanoi(n-1,a,b,c),hanoi(n-1,b,c,a),Hanoi,塔的递归函数,void,hanoi,(,int,n,char,a,char,c,char,b,),if(,

10、n=1,),printf,(“%,c,%cn,”,a,c,);,else,hanio,(,n-1,a,b,c,);,printf,(“%,c,%cn,”,a,c,);,hanio,(,n-1,b,c,a,);,直接搬,1,个盘子,a,c,相关主函数,#include,void,hanoi,(,int,n,char,a,char,c,char,b,),;,void main(),int,n;,printf(“Input,n:”);,scanf(“%d”,&n,);,hanoi,(n,A,C,B);,9.3,变量与函数,在函数内,定义的变量(包括形参),局部变量,作用范围:本函数内部,在复合语句内

11、定义的变量,作用范围:复合语句内部,全局变量:,在函数以外,定义的变量,不,属,于,任一函数,作用范围:,整个程序有效(包括各函数),全局,or,局部?,-,在何处定义,局部变量,&,全局变量,#include,int,x,=1;,void main(),int,a,=2;,.,int,b,=3;.,f();.,int,y,=4;,void f(),int,x,=5,b,=6;,.,int,a,=7;,x=?a=?y=?,b=?,x=?a=?y=?,如果函数中的局部变量与全局变量重名,则以,局,部变量起作用。,int,x,=1;,int,f(int,x,),return(,x,+);,voi

12、d main(),int,y,;,y,=f(2);,x,=,f(,x,);,printf(%d,%d,y,x,);,输出,x=1 a=2 y=4,b,未定义,x=5 a=7 y=4,x=1,2 1,如果某函数的局部变量与全局变量重名,则,局,部变量,起作用。,不要滥用全,局,变量,它会产生副作用,局部变量,&,全局变量,9.3.2,变量生命周期和静态局部变量,自动变量(,auto,),普通的局部变量,。,int,x,y;,auto,int,x,y;,特点,:执行到定义语句,系统动态产生存储单元;一旦函数结束,系统自动回收存储单元。,int,f(,int,y),int,x=1;,return y

13、x+;,void main(),f(,f(,f(1),),),;,x=1,2,y=1,返回,2,x=1,2,y=2,返回,3,x=1,2,y=3,返回,4,静态变量,(,static,),静态局部变量,静态全局变量,特点:不随函数的结束而自动回收存储单元。同一函数的两次调用,所用的存储单元为同一个单元,保存原来的值。,x=1,2,y=1,返回,2,x=2,3,y=2,返回,4,x=3,4,y=4,返回,7,int,f(,int,y),static,int,x=1;,return y+x+;,void main(),f(,f(,f(1),),),;,静态变量(,static,)的,说明:,静态

14、变量若不赋初值,自动取或,0,。,局部静态变量在函数调用结束后,只要主函数未结束,它仍保留原值,当再次进入函数时才能使用。,函数中的静态变量,仅在第一次调用时才赋初值。,【,例,9-9】,写出下列程序的输出结果。,void,fun(int,k),;,void main(),int,k;,for(k=1;k=3;k+),fun(k,);,void,fun(int,k),static,int,a;/a,初值,=0,printf(”%d,”,a);,a+=k;/,静态变量,a,保留上一次调用产生的值,运行结果:,0,,,1,,,3,、外部变量(,extern,),在一个文件中要使用在另一文件中定义的

15、全局变量,应使用外部变量:,extern,x;,、寄存器变量,(,register,),定义:,register,int,x;,register char c;,使用寄存器变量比普通变量运行速度更快,9.4,宏定义,格式,:,#define,宏名 宏定义字符串,作用,:,编译,时,把程序中所有与宏名相同的字符串,替换成 宏定义字符串,#define PI 3.14,#define,arr,_,size,4,说明,:,宏名一般用,大写,字母,以与变量名区别,宏定义不是语句,后面不得跟分号,宏定义可以嵌套使用,#define PI 3.14,#define AA 2*PI*,PI,4,宏名,中间不

16、能有空格,ARR_SIZE,#define AA for(i=0;i10;i+),空格,不可:,#define A A for(i=0;i10;i+),宏定义的作用,1,、保持符号常量,精度,的一致性及,可读性,,如,PI,2,、,数组,大小的定义,#,define N 6,main(),int,aN;,for(i=0;iN;i+),scanf(“%d”,&ai,);,3,、,可以实现一些简单的函数,4,、对程序的一些固定的书写可以偷一下懒,但不得降低程序的可读性。,带参数的,宏定义,#define f(a)a*a*a,void main()/*,水仙花数 *,/,int,i,x,y,z;,f

17、or(i=1;i1000;i+),x=i%10;y=i/10%10;z=i/100;,if(x,*x*,x+y,*y*,y+z,*z*z=i),printf(“%dn,”,i);,F(x+y,),(,x+y),3,#,define,F(a,),(,a,),*,(,a,),*,(,a,),水仙花数:,1,3,+5,3,+3,3,=153,i,f,(,F(x,),+,F(y,),+,F(z,),=i),=,x+y,*,x+y,*,x+y,带参数的宏定义实现简单的函数功能,例:用宏实现两个变量值的交换,#define,F(a,b,c,)c=a;a=b;b=c;,main(),int,x,y,temp

18、scanf(“%d%d,”,F(x,y,temp,),printf(“%d,%,dn,”,x,y);,temp=x;x=y;y=temp;,编译时被替换,注意,:,(1),带参数的宏定义不是函数,宏与函数是两种不同的概念。,(2),宏可以实现简单的函数功能,【,例,9-12】,程序输出结果,?,#define,F(x,)x,-,2,#define,Q(x,)x*,F(x,),void main(),printf(%d,%d,Q(3),Q(Q(3);,分析:,先替换所有宏,再统一代入计算,不可一边代入一边计算,Q(3),=x*,F(x,),=x*,x-2,=3*3-2=7,Q(Q(3),=,Q(x,*x-2),=x*x-2*,F,(x,*x-2),=x*x-2*x*x-2-2,=3*3-2*3*3-2-2=-13,运行结果:,7 -13,#define,F(x,)x-2,#define,Q(x,)x*,F(x,),代入,x=3,代入,x=3,小结与作业,小结:,函数的嵌套调用,递归函数,局部,/,全局变量,静态变量,宏,作业:,1,,,2,,,3,6,,,8,,,9,上机实验题,12,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服