函数(2)市公开课一等奖省赛课微课金奖课件.pptx
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 函数 公开 一等奖 省赛课微课 金奖 课件
- 资源描述:
-
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,1 函数概念,2 函数定义,3 函数调用,4 递归,5 作用域存储类型,6 库函数,第六章 函数,1/47,函数概念,C程序基本单位是什么?-函数。,函数,:完成一个特定功效独立程序模块.,C程序由一个或者多个函数组成。必须有一个main()函数。程序从main函数开始执行,其它函数经过调用得以执行。,2/47,主调函数和被调函数,main()是max()、scanf()、printf()主调函数。,max()、scanf()、printf()是main()被调函数。,#,include,stdio.h,int,max(int x,int y),return,(xy?x:y);,v,oid,main(),int,n1,n2,m;,scanf(%d,%d,m=max(n1,n2);,printf(,max=%dn,m);,main(),自定义函数,max(),库函数,printf(),库函数,scanf(),3/47,主调函数和被调函数,#include,stdio.h,void f(),printf(,“#n,);,void main(),f();,f();,f();,printf(“endn”);,main()和f()是主调函数和被调函数关系。,main,()和printf()是主调函数和被调函数关系。,f()和printf(),是主调函数和被调函数关系。,main(),自定义,函数f(),库函数,printf(),库函数,printf(),4/47,函数组织结构:,main(),函数1,函数2,函数n,函数1_1,函数1_2,函数n_1,函数n_m,5/47,模块化程序设计,基本思想:将大程序按功效分成小模块。,使用函数好处:,各模块相对独立、功效单一、结构清楚,控制了程序设计复杂性,防止程序开发重复劳动,缩短开发周期,易于维护和功效扩充,6/47,函数分类,从用户角度分类,标准函数(库函数),:由系统提供,用户自定义函数,从函数形式,有参函数,无参函数,:,本章学习重点,7/47,6.6 库函数,使用库函数应注意:,函数功效,函数参数数目和次序,各个参数意义和类型,函数返回值意义和类型,需要使用包含文件,8/47,6.6 库函数标准输入输出函数,#include,stdio.h,void,main(),int,m,n;,char,ch;,ch=getchar();,putchar(ch);,putchar(n);,scanf(%d,%d,printf(%d,%dn,m,n);,程序功效:,输入1个字符,输出这个字符,输入2个整数,输出这2个整数,9/47,6.6 库函数数学函数,#include,stdio.h,#include,math.h,void,main(),printf(%fn,5.2+fabs(-2.1);,printf(%fn,sqrt(16.0);,7.300000,4.000000,运行结果:,10/47,6.6 库函数字符串处理函数,#include,stdio.h,#include,string.h,void,main(),char s80,str=hello;,strcpy(s,str);,strcat(s,tstudent!);,puts(s);,printf(%dn,strlen(s);,hello student!,14,运行结果:,11/47,第六章 函数,6.1 函数概念,6.2 函数定义,6.3 函数调用,6.4 递归,6.5 变量作用域及存放类型,6.6 库函数,12/47,6.2 函数定义,主调函数,被调函数,参数,返回值,主调函数和被调函数信息交流(数据传递),13/47,6.2 函数定义,函数定义普通格式:,返回值类型 函数名(形式参数类型列表),申明部分,功效实现过程,return,表示式;,返回结果值类型,正当标识符,执行该函数若干条件值类型,将表示式值返回给主调函数,函数体,14/47,函数参数,无参函数定义:,函数功效:,打印一排,*,有参函数定义:,函数功效:,打印n个,*,printstar(),printf(“,*,n”);,或,printstar(,void,),printf(“,*,n”);,print_n_star(,int,n),int,i;,for,(i=1;i=n;i+),printf(“,*,”);,15/47,函数返回值,无返回值函数定义:,void,空类型,这类函数普通只用于屏幕输出,有返回值函数定义:,void,printstar(,int,n),int i;,for,(i=1;iy?x:y;,return,(z);,由,return,语句实现,16/47,函数返回值-return语句,return语句形式,return(表示式);,return 表示式;,return功效:,控制程序流程,从被调函数返回到主调函数。,将一个值带回到主调函数。,说明:,函数体中能够有多个return,但只有一个执行。,return后面表示式类型和函数定义返回值类型不一致,以定义类型为准。,int,max(,float,x ,float,y),if,(x=y),return,x;,else,return,(y);,/返回x或y值整数部分,17/47,函数申明,调用标准库函数时,在程序最前面用#include命令包含对应头文件。,在调用自定义函数前,要告诉编译系统该函数参数个数和类型,返回值类型,方便检验。,函数申明格式:,返回值类型 函数名(形式参数类型列表),;,18/47,函数定义和函数申明区分,函数定义:函数功效实现,有函数体部分。,函数申明:对函数调用格式说明,是一条语句。,void,main(),float,a,b;,float,max(,float,float,);,scanf(,“,%,f%f,”,&a,&b,),;,printf(“%f”,max(a,b);,float,max(,float,x ,float,y),if,(x=y),return,x;,else,return,(y);,函数定义,函数申明,19/47,函数申明,被调函数定义在主调函数定义之前,可无须申明。,void,main(),float,a,b;,float,max(,float,float,);,scanf(,“,%,f%f,”,&a,&b,),;,printf(“%f”,max(a,b);,float,max(,float,x ,float,y),if,(x=y),return,x;,else,return,(y);,20/47,6.3 函数调用,调用方式:,1.函数语句,printf(“Good Morning!n”);,2.函数表示式,c=5+max(a,b),*,10;,3.函数参数,printf(“%f”,max(a,b);,21/47,函数参数,形式,参数:函数定义时,函数名后面括号中变量名。,实际,参数:调用函数时,函数名后面括号中表示式。,max(a,b),;,int max(int x,int y),if(x=y)return x;,else return(y);,void,main(),int,a,b;,int,max(,int,int,);,scanf(,“,%,f%f,”,&a,&b,),;,printf(“%f”,max(a,b);,int,max(,int,x,int,y),if,(x=y),return,x;,else,return,(y);,形式参数,实际参数,22/47,函数参数及其传递方式,单向,值,传递:(主调函数),实参,(被调函数),形参,实参和形参要求个数相等,类型相同,次序一致。,函数调用时,为形参变量分配内存空间,将实参值拷贝到形参变量中。,函数调用结束时,释放形参变量空间。,23/47,函数参数及其传递方式,单向值,传递,分析下面程序执行结果,7,11,x:,y:,main函数,void,main(),int,x=7,y=11;,printf(x=%d,y=%dn,x,y);,swap(x,y);,printf(x=%d,y=%dn,x,y);,swap(,int,a,int,b),int,temp;,temp=a;,a=b;,b=temp;,swap函数,a:,b:,temp,7,7,11,x=7,y=11,swap函数执行结束,释放swap中变量空间,返回到main函数,x=7,y=11,7,11,.,24/47,函数调用过程,void,main(),int,x=7,y=11;,printf(x=%d,y=%dn,x,y);,swap(x,y);,printf(x=%d,y=%dn,x,y);,swap(,int,a,int,b),int,temp;,temp=a;,a=b;,b=temp;,main(),调用函数swap,输出,结束,swap,函数,25/47,函数嵌套调用,int f1(int a,int b);,int f2(int a,int b);,void main(),int x=1,y=9;,printf(%dn,f1(x,y);,int f1(int a,int b),int c;,a+;b+;,c=f2(a,b);,return c*c;,int f2(int a,int b),int c;,c=a*b%3;,return(c);,main(),调用函数f1,输出,结束,f1,函数,f2,函数,调用函数f2,函数定义不可嵌套,能够嵌套调用函数,4,运行结果:,1,9,1,9,2,10,2,10,2,2,4,26/47,6.4 函数递归调用-求第5个人年纪,已知第5人比第4人年纪大2,第4人比第3人年纪大2,第3人比第2人年纪大2,第2人比第1人年纪大2,第1人年纪为10。问第5人年纪?,age(5)=age(4)+2,age(4)=age(3)+2,age(3)=age(2)+2,age(2)=age(1)+2,age(1)=10,age(2)=12,age(3)=14,age(4)=16,age(5)=18,27/47,函数递归调用,问题形式,分解问题时能够得到同类型子问题。,递归规则,问题分解规律,即递归公式。,age(n)=age(n-1)+2 (n1),终止条件,递归结束条件。,age(n)=10 (n=1),28/47,函数递归调用-求第5个人年纪,#include,stdio.h,int,age(,int,n),int,c;,if,()c=10;,else,;,return,();,void,main(),printf(%d,age(5);,age(n)=10 n=1,age(n)=age(n-1)+2 n1,c,n=1,c=age(n-1)+2,main(),age(5),输出,结束,age(5),age(4),age(4),age(3),age(3),age(2),age(2),age(1),age(1),29/47,函数递归调用求n!,递归公式 fac(n)=n,*,fac(n-1)(n1),终止条件 fac(n)=1 (n=0,1),#include,stdio.h,int,fac(,int,n),int,f;,if,(n0)printf(nb?a:b;,return(c);,main(),int a=8;,printf(max=%d,max(a,b);,main:a作用域,max:a,max:b作用域,同一个源文件中,局部变量和全局变量同名,作用域重合,,屏蔽全局变量,使用局部变量。,外部变量a,b作用域,8,5,max=8,运行结果:,8,5,36/47,变量存放类型,变量存放方式有2种:静态存放、动态存放。,决定变量生存期(变量存在时间)。,程序代码区,静态存放区,动态存放区,在程序编译期间分配好内存空间;,并在整个程序运行期间都保持存在。,内存用户区,程序运行期间依据需要,分配存放空间;,在变量定义函数执行结束后,释放该空间。,37/47,变量存放类型,完整,变量定义格式:,存放类型 数据类型 变量名;,存放类型定义符有:,auto、static,、,extern、register,比如:,auto int,a,b,c;,static float,x,y;,局部变量分为:,全局变量分为:,auto,static,extern,static,38/47,变量存放类型-auto局部自动型,auto局部自动型变量:局部(内部)变量默认为auto型。,含有局部作用域,本函数执行结束就释放。,动态存放区,内存用户区,main:x,void main(),int x=1;,void fun(void);,printf(“main:x=%dn”,x);,fun();,printf(“main:x=%dn”,x);,fun();,void fun(void),int x=5;,x=x+1;,printf(“fun:x=%dn”,x);,main:x=1,fun:x=6,main:x=1,fun:x=6,运行结果,1,fun:x,5,6,fun:x,5,6,39/47,变量存放类型-局部static静态型,局部static静态型变量:用static定义局部变量。,含有局部作用域,程序整个运行期间都存在。,编译时分配内存空间,初始化只有一次。,静态存放区,内存用户区,x,void fun(void),static int x=1;,x=x+1;,printf(“x=%dn”,x);,void main(),fun();,fun();,fun();,x=2,x=3,x=4,运行结果,1,2,3,4,40/47,变量存放类型-局部static静态型,编译时分配内存空间,如,不赋初值,初始值为0.,void fun(void),static int x;,x=x+1;,printf(“x=%dn”,x);,void main(),fun();,fun();,fun();,x=1,x=2,x=3,运行结果,41/47,变量存放类型-全局extern型,全局extern型变量:用extern申明全局变量。,申明能够屡次,定义只能有一次。,extern int,x;,voidf(),extern int,x;,.,int,x=8;,void main(),这是定义,这是申明,这是申明,42/47,变量存放类型-全局extern型,全局作用域,程序整个运行期间都存在。,在其它文件中都能够被使用。,静态存放区,内存用户区,x,extern int x=3;,void fun(void),x=x+1;,void main(),fun();,printf(“x=%dn”,x);,fun();,printf(“x=%dn”,x);,x=4,x=5,运行结果,3,4,5,43/47,变量存放类型-全局static静态型,全局static静态型变量:用static定义全局变量。,例,static int,x;,全局extern,变量,全局static变量,作用域,根源文件和其它源文件,根源文件,生存期,整个程序运行期间,整个程序运行期间,44/47,变量存放类型-局部register型,局部register型变量:用register定义局部变量。,将变量存放在CPU存放器中,能够提升程序运行效率。,优化编译系统能够自动识别频繁变量,自动将这些变量放在存放器中,在实际应用中无须在程序中用register定义变量。,45/47,变量存放类型总结,静态,动态,存放方式,程序整个运行期间,本函数开始至结束,生存期,编译时赋初值,只赋一次,每次函数调用时,赋初值,自动赋初值0,不确定,未赋初值,静态存放区,动态区,存放区,存放器,局部变量,外部(全局)变量,作用域,本函数或复合语句内,本文件,其它文件,本文件,register,static,auto,extern,static,存放类别,定义位置,46/47,本章总结,了解函数是C程序基本组成单位,了解模块化程序设计思想。,掌握定义函数方法。,有返回值函数:向主调函数返回函数值,应说明函数类型(即返回值类型)。,无返回值函数:不向主调函数返回函数值,应说明函数类型为空(void)类型。,有参函数:主调函数向被调函数传送数据。,无参函数:主调函数不向被调函数传送数据。,会使用C系统提供库函数。,了解变量作用域和存放类型。,47/47,展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




函数(2)市公开课一等奖省赛课微课金奖课件.pptx



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/11204089.html