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

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/13900044.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。

注意事项

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

7.C语言函数省公开课一等奖全国示范课微课金奖PPT课件.pptx

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2021/10/3,#,第七章 函数,第1页,函数是什么?,经过学习前几章,我们已经能够编写一些简单C程序了,但,是假如程序功效比较多,规模比较大,把全部程序代码都,写在一个主函数中,就会使主函数变得庞杂、头绪不清,使阅,读和维护程序变得困难。另外,有时程序中要屡次实现某一功,能,就需要屡次重复编写实现此功效程序代码,这会使程序,冗长,不精练。,所以,人们自然会想到采取“组装”方法来简化程序设计过,程。如同组装计算机一样,事先生产好各种部件,在最终组装,计算机时,用到什么就从仓库里取出什么,直接装上就能够了。,

2、人们决不会采取手工业方式,在用到电源时暂时去生产一个电,源,用到主板时暂时生产一个主板。这就是,模块化程序设计,。,第2页,7.1,概述,模块化程序设计,基本思想:将一个大程序按功效分割成一些小模块,特点:,各模块相对独立、功效单一、结构清楚,控制了程序设计复杂性,防止程序开发重复劳动,易于维护和功效扩充,开发方法:,自上向下,逐步分解,分而治之,第3页,C是模块化程序设计语言,C程序结构,第4页,例,先举一个函数调用简单例子,#include,void main(),void printstar();,/*对printstar函数申明*/,void print_message();,/*对p

3、rint_message函数申明*/,printstar();,*调用printstar函数*,print_message();,/*调用print_message函数*/,printstar();,*调用printstar函数*/,第5页,void printstar(),*定义printstar函数*,printf(*n);,void print_message(),*定义print_message函数*,printf(How do you do!n);,运行情况以下:,*,How do you do!,*,第6页,说明:,(1)一个C程序由一个或多个程序模块组成,每一个程,序模块作为一个

4、源程序文件。对于较大程序,通常将,程序内容分别放在若干个源文件中,再由若干源程序文,件组成一个,C,程序。这么便于分别编写、分别编译,提,高调试效率。一个源程序文件能够为多个C程序公用。,(2)一个源程序文件由一个或多个函数以及其它相关,内容(如命令行、数据定义等)组成。一个源程序文件,是一个编译单位,在程序编译时是以源程序文件为单位,进行编译,而不是以函数为单位进行编译。,第7页,(3)程序执行是从main函数开始,假如在main函数中调用其它函数,在调用后流程返回到main函数,在main函数中结束整个程序运行。,(4)全部函数都是平行,即在定义函数时是分别,进行,是相互独立。一个函数并不

5、隶属于另,一函数,即函数不能嵌套定义。函数间能够相互,调用,但不能调用main函数。main函数是系统调,用。,第8页,(5)从用户使用角度看,函数有两种:,标准函数,即库函数。,这是由系统提供,用户无须自己定义这些函数,能够直接使用它们。不一样C系统提供库函数数量和功效会有一些不一样,但许多基本函数是共同。,用户自己定义函数。,用以处理用户专门需要。,第9页,(6)从函数形式看,函数分两类:,无参函数。,无参函数普通用来执行指定一组操作。在调用无参函数时,主调函数不向被调用函数传递数据。,有参函数。,主调函数在调用被调用函数时,经过参数向被调用函数传递数据。,第10页,7.2,函数定义,普通

6、格式,正当标识符,函数返回值类型,缺省,int,型,无返回值,void,函数体,函数类型 函数名,(,形参类型说明表,),说明部分,语句部分,当代格调:,例 有参函数(当代格调),int max,(int x,int y,),int z;,z=xy?x:y;,return(z);,例 有参函数(当代格调),int max(,int x,y,),int z;,z=xy?x:y;,return(z);,例,空函数,dummy(),函数体为空,例 无参函数,void printstar(),printf(“*n”);,第11页,函数类型 函数名(形参表),形参类型说明,说明部分,语句部分,传统格调:

7、例 有参函数(传统格调),int max(,x,y,),int x,y;,int z;,z=xy?x:y;,return(z);,第12页,定义函数应包含以下几个方面内容:,指定函数名字,方便以后按名调用。,指定函数类型,即函数返回值类型。,指定函数参数名字和类型,方便在调用函数时向它们传递数据。对无参函数不需要这项。,指定函数应该完成什么操作,也就是函数是做什么,即函数功效。,对于C编译系统提供库函数,是由编译系统事先定义好,对它们定义已放在相关头文件中。程序设计者无须自己定义,只需用#include命令把相关头文件包含在本文件模块中即可。,第13页,7.3,函数参数及其传递方式,形参加实

8、参,形式参数:定义函数时函数名后面括号中参数,实际参数:调用函数时函数名后面括号中参数,c=max(a,b);,(main 函数),(max 函数),max(int x,int y),int z;,z=xy?x:y;,return(z);,例 比较两个数并输出大者,#include stdio.h,void main(),int max(int x,int y);,int a,b,c;,scanf(%d,%d,c=,max(a,b);,printf(Max is%d,c);,int max(,int x,int y,),int z;,z=xy?x:y;,return(z);,形参,实参,第14

9、页,说明:,实参必须有确定值,形参必须指定类型,实参,个数,和,类型,应与形参个数和类型按定义时,次序完全一致,。,形参在函数被调用前不占内存;,函数调用时为形参分配内存;调用结束,内存释放,7.3,函数参数及其传递方式,形参加实参,形式参数:定义函数时函数名后面括号中变量名,实际参数:调用函数时函数名后面括号中表示式,第15页,例 计算x,立方,(7-1.c),#include,float cube(,float x,),return(x*x*x);,void main(),float a,product;,printf(Please input value of a:);,scanf(%f

10、product=,cube(a);,printf(”Cube of%.4f is%.4fn,a,product);,x,a,product,1.2,1.2,1.728,运行结果:,Please input value of a:1.2,Cube of 1.is 1.7280,第16页,参数传递方式,值传递,方式,方式:函数调用时,为形参分配单元,并将实参值,复制,到形参中;调用结束,形参单元被释放,,实参单元仍保留并维持原值,特点:,形参加实参占用,不一样,内存单元,单向,传递,第17页,例 交换两个数,(7-2.c),#include,void swap(,int x,int y,);,v

11、oid main(),int a=5,b=9;,printf(“a=%d,b=%dn,a,b);,swap(a,b);,printf(“a=%d,b=%dn,a,b);,void swap(,int,x,int y,),int t;,t=x;x=y;y=t;,5,9,a:,b:,调用前:,调用结束:,5,9,a:,b:,调用:,5,9,x:,y:,5,9,a:,b:,swap:,9,5,x:,y:,5,t,第18页,地址传递,方式:函数调用时,将数据,存放地址,作为参数传递给形参,特点:,形参加实参占用,一样,存放单元,“双向”,传递,实参和形参必须是,地址,常量或变量,第19页,7.4,函数

12、返回值,返回语句,形式:,return(,表示式);,或,return 表示式;,功效:使程序控制从被调用函数返回到调用函数中,同时把返回值带给调用函数,说明:,函数中可有多个return语句,若无return语句,遇,时,自动返回调用函数,若函数类型与return语句中表示式值类型不一致,,按前者为准,自动转换,第20页,例 有多个返回值函数(7-3.c),#include stdio.h“,stog(int s),if(s94)return(A);,else if(s84)return(B);,else if(s69)return(C);,else if(s59)return(D);,el

13、se return(E);,void main(),int score=85;,char grade;,grade=stog(score);,printf(“score%d is grade%c n,score,grade);,运行结果:,Score 85 is grade B,第21页,例 函数返回值类型转换(7-4.c),#include stdio.h,void main(),int max(float x,float y);,float a,b;,int c;,scanf(%f,%f,c=max(a,b);,printf(Max is%dn,c);,int max,(float x,f

14、loat y),float z;,z=xy?x:y;,return(z);,例 无返回值函数,void,swap(int x,int y),int temp;,temp=x;,x=y;,y=temp;,运行结果:,1.2,5.6,Max is 5,第22页,7.5 函数调用方式,函数语句,把函数调用作为一个语句。如print_star();,这时不要求函数带回值,只要求函数完成一定操作。,函数表示式,函数出现在一个表示式中,这种表示式称为,函数表示式,。这时要求函数带回一个确定值以参加表示式运算。比如:,*(,);,按函数在程序中出现位置来分,能够有以下三种函数调用方式:,第23页,函数参数,

15、函数调用作为一个函数实参。,比如:,printf(“%d”,max(a,b);,把max(a,b)作为printf函数一个参数。,第24页,例(7-5.c),#include stdio.h“,int square,(int x),return(x*x);,void main(),int i=2;,while(iy?x:y;,return(rz?r:z);,int min(int x,int y,int z),int r;,r=xy?x:y;,return(r),第40页,能够用一个函数来描述上述递归过程:,int age(int),*求年纪递归函数*,int;,*用作存放函数返回值变量*,i

16、f();,else ();,return();,运行结果以下:,用一个主函数调用age函数,求得第5人年纪。,#include,void main(),printf(,age();,第41页,例 分别用递推方法和递归方法求n!,1.用递推方法求n!,#include,void main(),long fac(int n);,int n;,long fact=0;,printf(“input a integer number:”);,scanf(“%d”,fact=fac(n);,printf(“%d!=%ldn”,n,fact);,long fac(int n),int i;,long fac

17、1;,for(i=1;i=n;i+),fac=fac*i;,return fac;,运行结果为:,input a integer number:5,5!is 120,变量fac取上次运行后值,并没调用函数。,i=1,fac=1*1=1,i=2,fac=1*2=2,i=3,fac=2*3=6,i=4,fac=6*4=24,i=5,fac=24*5=120,递推基本思想:,从已知初始条件出发,逐次推出所要求各中间结果,和最终结果。,第42页,例 分别用递推方法和递归方法求n!,1.用递归方法求n!,#include,void main(),long fac(int n);,int n,y;,pr

18、intf(“input a integer number:”);,scanf(“%d”,y=fac(n);,printf(“%d!=%ldn”,n,y);,long fac(int n),long f;,if(n0),printf(“n0,data error!”);,else if(n=0|n=1),f=1;,else f=fac(n-1)*n;,return(f);,运行结果为:,input a integer number:5,5!is 120,递归基本思想:,将一个复杂问题归结为若干个较简单问题,然,后将这些较简单每一个问题再归结为更简单问,题,这个过程能够一直做下去,直到最简单问题,

19、为止。,第43页,7.8,变量存放属性,概述,变量是对程序中数据存放空间抽象,内存,.,main(),int a;,a=10;,printf(“%d”,a);,编译或函数调用时为其分配内存单元,10,程序中使用变量名对内存操作,第44页,变量属性,操作属性:,变量所持有数据性质(数据类型),存放属性:,生存期,:变量在某一时刻存在,作用域,:变量在某区域内有效,变量定义格式:,存放类型 数据类型 变量表;,7.8,变量存放属性,概述,变量是对程序中数据存放空间抽象,如:int sum;,auto,int a,b,c;,static,float x,y;,第45页,变量:局部变量 动态变量(自动

20、变量),静态变量,全局变量,动态变量(auto变量):,在调用该函数时,系统给这,些变量分配存放空间,函数调用结束时就自动释放这,些空间。,函数中大多数变量属于自动变量。,静态变量(static变量):,在程序运行期间分配存放空,间,在程序运行期间不释放。,即函数调用结束后不消,失而继续保留原值,在下次调用时仍是上一次调用结,束时值。,第46页,局部变量与全局变量,局部变量(内部变量),定义:在,函数内定义,,,只在本函数内有效,说明:,main,中定义变量只在main中有效,不一样函数中同名变量,占不一样内存单元,形参属于局部变量,可定义在复合语句中有效变量,局部变量可用存放类型,:auto

21、 static,(,默认为auto),float f1(int a),int b,c;,.,char f2(int x,int y),int i,j;,main(),int m,n;,.,a,b,c,有效,x,y,i,j,有效,m,n,有效,第47页,运行结果:5 4 3 2 1,例 复合语句中变量,#define N 5,main(),int i;,int aN=1,2,3,4,5;,for(i=0;iN/2;i+),int temp;,temp=ai;,ai=aN-i-1;,aN-i-1=temp;,for(i=0;iN;i+),printf(%d ,ai);,局部动态变量,第48页,例

22、不一样函数中同名变量,main(),int a,b;,a=3;,b=4;,printf(main:a=%d,b=%dn,a,b);,sub();,printf(main:a=%d,b=%dn,a,b);,sub(),int a,b;,a=6;,b=7;,printf(sub:a=%d,b=%dn,a,b);,运行结果:,main:a=3,b=4,sub:a=6,b=7,main:a=3,b=4,局部动态变量,第49页,例 用静态变量编程计算1到5阶乘值(7-9.c),#include stdio.h,int fac(int n),static int f=1;,f=f*n;,return f;

23、void main(),int i;,for(i=1;i=5;i+),printf(%d!=%d,i,fac(i);,局部静态变量,运行结果:,1!=1,2!=2,3!=6,4!=24,5!=120,第50页,对静态局部变量说明:,(1)静态局部变量属于静态存放类别,在静态存放区内分配存放单元,在程序整个运行期间都不释放。而动态局部变量属于动态存放类别,占动态存放区空间而不占静态存放区空间,函数调用结束后即释放。,(2)对静态局部变量是在编译时赋初值,即只赋初值一次,在程序运行时它已经有初值,以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时值。而对自动变量赋初值,不是在编译时进行

24、而是在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。,第51页,(3)如在定义局部变量时不赋初值话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。而对自动变量来说,假如不赋初值则它值是一个不确定值。,(4)即使静态局部变量在函数调用结束后依然存在,但其它函数是不能引用它,因为它是局部变量,只能被本函数引用,而不能被其它函数引用。,(5)用静态存放会多占内存,降低程序可读性,当调用次数多时往往弄不清静态局部变量当前值是什么。,所以,若非必要,不要多用静态局部变量。,第52页,全局变量(外部变量),定义:在,函数外定义,,可为,本文件全部

25、函数共用,有效范围:从,定义变量位置开始,到根源文件结束,外部变量说明:,extern,数据类型 变量表;,若外部变量与局部变量同名,则外部变量被屏蔽,即它不起作用,此时局部变量是有效。,外部变量可用存放类型:,全局变量采取静态存放方式,,即缺省或 static,第53页,#include,float max,min;,float average(float array,int n),int i;float sum=array0;,max=min=array0;,for(i=1;imax),max,=arrayi;,else if(arrayi%cn,x,y);,第61页,运行情况以下:,in

26、put the number of diskes:3,The steps to noving 3 diskes:,第62页,练习题,1.以下程序输出结果是(),f(int b,int n),int i,r;,r=1;,for(i=0;i2)return(fib(n-1)+fib(n-2);,else return(2);,main(),printf(“%dn”,fib(3);,(A)2 (B)4 (C)6 (D)8,B,第65页,练习题,4.以下程序输出结果是(),main(),int k=4,m=1,p;,p=func(k,m);printf(“%d,”,p);,p=func(k,m);printf(“%dn”,p);,func(int a,int b),static int m=0,i=2;,i+=m+1;m=i+a+b;,return(m);,(A)8,17 (B)8,16(C)8,20 (D)8,8,A,第66页,

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服