j8函数与变量省公共课一等奖全国赛课获奖课件.pptx
《j8函数与变量省公共课一等奖全国赛课获奖课件.pptx》由会员分享,可在线阅读,更多相关《j8函数与变量省公共课一等奖全国赛课获奖课件.pptx(92页珍藏版)》请在咨信网上搜索。
1、 北京理工大学计算机学院北京理工大学计算机学院第八章第八章 函数与变量函数与变量李李 书书 涛涛 10/10/1第1页 北京理工大学计算机学院北京理工大学计算机学院目录目录1 函数函数 1.1.函数定义函数定义函数定义函数定义 2.2.函数参数与返回值函数参数与返回值函数参数与返回值函数参数与返回值 3.3.函数申明和调用函数申明和调用函数申明和调用函数申明和调用 4.4.函数递归调用函数递归调用函数递归调用函数递归调用 5.5.外部函数与内部函数外部函数与内部函数外部函数与内部函数外部函数与内部函数2 变量作用域和存放类型变量作用域和存放类型 1.1.变量作用域变量作用域变量作用域变量作用域
2、 2.2.变量存放类型变量存放类型变量存放类型变量存放类型3 本章小结本章小结 第八章 函数与变量10/10/2第2页 北京理工大学计算机学院北京理工大学计算机学院 本章介绍函数定义普通格式,函数调用方法,本章介绍函数定义普通格式,函数调用方法,函数返回值,函数之间参数传递;函数嵌套,函数函数返回值,函数之间参数传递;函数嵌套,函数递归调用;变量存放类型,内部变量,外部变量,递归调用;变量存放类型,内部变量,外部变量,内部函数和外部函数内部函数和外部函数函数间参数传递函数间参数传递函数递归函数递归变量存放类型变量存放类型 C程序是结构化很强程序,将程序按功效自上向程序是结构化很强程序,将程序按
3、功效自上向下分解,一个函数实现一个功效模块。下分解,一个函数实现一个功效模块。11 函函函函 数数数数1 函函 数数 C程序模块化结构程序模块化结构10/10/3第3页 北京理工大学计算机学院北京理工大学计算机学院4.组成组成C程序各个函数均彼此平行,独立定义,程序各个函数均彼此平行,独立定义,能够嵌套调用。能够嵌套调用。1.一个一个C程序能够由若干个源文件组成。程序能够由若干个源文件组成。2.一个源文件能够由若干个函数组成。一个源文件能够由若干个函数组成。3.在组成在组成C程序全部函数中,有且仅有一个主程序全部函数中,有且仅有一个主函数函数main(),位置任意(在哪个源文件中都能够),位置
4、任意(在哪个源文件中都能够),但程序运行总是从主函数开始。,但程序运行总是从主函数开始。5.函数类型可按不一样方法分类以下:函数类型可按不一样方法分类以下:说说 明明10/10/4第4页 北京理工大学计算机学院北京理工大学计算机学院标准函数(库函数)标准函数(库函数)用户定义函数用户定义函数从用户角度从用户角度从函数任务从函数任务 从函数形式从函数形式完成某种运算完成某种运算 实现某种处理(并无计算值)实现某种处理(并无计算值)有参函数有参函数无参函数无参函数需使用头文件需使用头文件#include带回一个返回值带回一个返回值return(表示式)表示式)主调函数与被调函主调函数与被调函数间有
5、参数传递数间有参数传递完成一组操作完成一组操作函数类型分类函数类型分类10/10/5第5页 北京理工大学计算机学院北京理工大学计算机学院8.1.18.1.1 函数定义函数定义函数定义函数定义8.1.1 函数定义函数定义一一、无参函数定义、无参函数定义 说明:定义函数类型是指说明:定义函数类型是指 函数返回值类型,无参函函数返回值类型,无参函数通常无返回值,所以能够不写。数通常无返回值,所以能够不写。标识符为函数名,用户自定义标识符为函数名,用户自定义;括号必须有,括号必须有,内称内称 函数体,即函数功效语句。函数体,即函数功效语句。格式:格式:类型类型 标识符标识符()说明语句说明语句 执行语
6、句执行语句 f()int i;for(i=0;i4;i+)printf(“*n”);函数返回值类型函数返回值类型函数体函数体 函数名函数名10/10/6第6页 北京理工大学计算机学院北京理工大学计算机学院f()printf(“*n”);main()int i;main()for(i=1;i4;i+)f();printf(“*n”);f();f();主函数内使主函数内使用循环结构用循环结构函数定义函数定义函数调用函数调用两个程序等价两个程序等价 10/10/7第7页 北京理工大学计算机学院北京理工大学计算机学院格式:类型格式:类型 标识符(形参表)标识符(形参表)形参说明语句形参说明语句 说明语
7、句说明语句 执行语句执行语句 int sum(x,y)int x,y;int z;z=x+y;return(z);main()int a,b,c;a=30,b=50;c=sum(a,b);printf(“%d,%d,%d”,a,b,c);定义定义形参形参函数体函数体返回语句返回语句调用调用 c=sum(a,b);二、有参函数定义二、有参函数定义10/10/8第8页 北京理工大学计算机学院北京理工大学计算机学院三、空函数三、空函数 说明:空函数中没有语句,什么也不执行。说明:空函数中没有语句,什么也不执行。作用:作为程序整体框架中一个空模块,暂时无内作用:作为程序整体框架中一个空模块,暂时无内容
8、,待补充。容,待补充。格式:格式:函数名函数名()2.形参是暂时定义,形式上,只有在函数调用时,形参是暂时定义,形式上,只有在函数调用时,由实参传递一个值,调用结束,其值消失。由实参传递一个值,调用结束,其值消失。1.函数定义类型为函数返回值类型;假如不定义,函数定义类型为函数返回值类型;假如不定义,系统缺省为整型。系统缺省为整型。说说 明明10/10/9第9页 北京理工大学计算机学院北京理工大学计算机学院8.1.2 8.1.2 函数参数与返回函数参数与返回函数参数与返回函数参数与返回值值值值8.1.2 函数参数与返回函数参数与返回值值 主调函数主调函数main()调用被调函数调用被调函数su
9、m()main()int a,b,c;scanf(“%d,%d”,&a,&b);c=sum(a,b);printf(“%d,%d,%d”,a,b,c);主调函数主调函数int sum(x,y)int x,y;int z;z=x+y;return(z);被调函数被调函数形参形参10/10/10第10页 北京理工大学计算机学院北京理工大学计算机学院一一.函数参数函数参数 形参加实参形参加实参3.编译时,系统编译时,系统不为不为形参分配存放空间,函数调用时,形参分配存放空间,函数调用时,暂时分配,调用结束,空间释放。暂时分配,调用结束,空间释放。1.定义函数时,括号内参数表中参数为形参。定义函数时,
10、括号内参数表中参数为形参。2.调用函数时,括号内参数为实参。调用函数时,括号内参数为实参。4.实参实参在在主调函数主调函数内部定义,能够是常量,变量或表示内部定义,能够是常量,变量或表示式,但必须有值,调用被调函数时,将其式,但必须有值,调用被调函数时,将其值值传给形参。传给形参。5.实参加形参是实参加形参是单向值传递单向值传递(实(实 形)。形)。max(x,y)c=max(a.b)10/10/11第11页 北京理工大学计算机学院北京理工大学计算机学院形参形参x,y在被调函数在被调函数sum(x,y)中定义,无值,被主调函数中定义,无值,被主调函数调用时:调用时:c=sum(a,b);将实将
11、实参参a,b值传给值传给x,y。实参实参 a,b 在主调函数在主调函数main()中定义,并有值(中定义,并有值(a为为30,b为为50)。5030abxy3050调用函数调用函数时暂时分时暂时分配空间配空间int sum(x,y)int x,y;int z;z=x+y;return(z);main()int a,b,c;a=30,b=50;c=sum(a,b);printf(“%d,%d,%d”,a,b,c);主调函数主调函数被调函数被调函数实参实参形参形参c=sum(a,b);程序举例程序举例10/10/12第12页 北京理工大学计算机学院北京理工大学计算机学院函数调用格式:函数调用格式:
12、函数名函数名(实参表实参表)函数调用与返回函数调用与返回 main()int a,b,c;scanf(“%d,%d”,&a,&b);c=sum(a,b);printf(“%d,%d,%d”,a,b,c);主调函数主调函数int sum(x,y)int x,y;int z;z=x+y;return(z);被调函数被调函数形参形参10/10/13第13页 北京理工大学计算机学院北京理工大学计算机学院函数调用格式:函数调用格式:函数名函数名(实参表实参表)例:例:输入输入n,计算并输出,计算并输出s=n!main()int n,s;printf(“Input n:“);scanf(“%d”,&n);
13、s=fac(n);printf(“s=%d”,s);主调函数主调函数fac(a)fac(a)int a;int a;int i,z=1;int i,z=1;for(i=1;i=a;i+)for(i=1;ib?a:b);2.return(x);3.return(0);4.retrun;5.无无return语句语句6.void return语句比较语句比较10/10/17第17页 北京理工大学计算机学院北京理工大学计算机学院main()int a;void disp();printf(“Enter an integer:n”);scanf(“%d”,&a);disp(a);void disp(x)
14、int x;if(x 0)printf(“Positive.n”);else if(x=0)printf(“Zero.n”);else printf(“Negative.n”);不返回任何值不返回任何值无类型函数无类型函数10/10/18第18页 北京理工大学计算机学院北京理工大学计算机学院8.1.3 8.1.3 函数申明和调用函数申明和调用函数申明和调用函数申明和调用8.1.3 函数申明和调用函数申明和调用例:例:main()f();主调函数使用被调函数功效,称为对主调函数使用被调函数功效,称为对被调函数调用。被调函数调用。函数函数f()为某一个含有特定功效函数为某一个含有特定功效函数函数调
15、用是经过函数名函数调用是经过函数名 f 实现。实现。10/10/20第20页 北京理工大学计算机学院北京理工大学计算机学院例:例:sum(a,b)1.格式:格式:无参函数:函数名无参函数:函数名()有参函数:函数名有参函数:函数名(实参表实参表)2.实参求值次序:当函数中实参彼此相关系时,实参求值次序:当函数中实参彼此相关系时,TCTC下求值次序是下求值次序是 从右向左从右向左 。从右向左从右向左一、一、函数调用普通形式函数调用普通形式当当i原值为原值为2时,对函数时,对函数f(i,+i)从左向右,为从左向右,为f(2,3);从右向左,为;从右向左,为f(3,3)。若若i=3,printf(“
16、%d,%dn”,i,+i)结果为:结果为:4,4 10/10/21第21页 北京理工大学计算机学院北京理工大学计算机学院介绍三种介绍三种1.以语句形式:以语句形式:函数名函数名(参数参数)加分号加分号printf(“KKKKKn”);2.以表示式形式以表示式形式(函数调用作为运算分量函数调用作为运算分量)x=pow(a,j)+b;3.作为函数参数作为函数参数y=sum(pow(a,j),b)求:求:aj二二、函数调用方式、函数调用方式10/10/22第22页 北京理工大学计算机学院北京理工大学计算机学院对变量应先定义,再使用;对函数,主调函数使用被对变量应先定义,再使用;对函数,主调函数使用被
17、调函数之前,要对被调函数做申明,详细要求:调函数之前,要对被调函数做申明,详细要求:1.首先被调函数必须存在,假如是库函数,需用#include 将函数包含进源程序,假如是用户定义函数,应做申明。函数定义函数定义函数申明函数申明类型类型 函数名函数名(参数表参数表)函数体函数体 类型类型 函数名函数名(参数表参数表)格式:类型格式:类型 函数名函数名(参数表参数表)函数定义只函数定义只能有一次,说能有一次,说明能够有屡次明能够有屡次一个函数可被多个函数调用一个函数可被多个函数调用三、三、对被调函数申明对被调函数申明10/10/23第23页 北京理工大学计算机学院北京理工大学计算机学院(1)定义
18、定义函数时有类型函数时有类型(2)函数函数返回值返回值有类型有类型 (3)主调函数使用被调函数时需主调函数使用被调函数时需说明说明类型类型要求:要求:三个类型应一致三个类型应一致假如定义类型与返回值类型不符,以假如定义类型与返回值类型不符,以定义定义为准为准假如定义类型与说明类型假如定义类型与说明类型不一致不一致,程序出,程序出随机错误随机错误2.相关函数类型相关函数类型10/10/24第24页 北京理工大学计算机学院北京理工大学计算机学院(1)函数返回值是函数返回值是 int ,char(或函数定义类型为或函数定义类型为int 或或char)。(2)被调函数定义出现在主调函数之前。被调函数定
19、义出现在主调函数之前。f2().main()f2();.f2()为被调函数为被调函数 主函数调主函数调用用f2()可不可不作说明作说明(3)在文件开始,所用函在文件开始,所用函数定义之前,已对函数说明数定义之前,已对函数说明了类型,则文件中全部函数了类型,则文件中全部函数都可调用该函数。都可调用该函数。3.C允许在以下情况下不作说明允许在以下情况下不作说明10/10/25第25页 北京理工大学计算机学院北京理工大学计算机学院返回值类型为返回值类型为float,与定义类型不符,以定与定义类型不符,以定义为准义为准int因为是因为是int,主函数,主函数中能够不作说明中能够不作说明输入:输入:6.
20、8,4.5输出?输出?修改程序修改程序输入:输入:6.8,4.5输出?输出?main()float a,b;int m;scanf(“%f,%f”,&a,&b);m=max(a,b);printf(“%d”,m);max(x,y)float x,y;float n;n=xy?x:y;return(n);定义函数定义函数返回值返回值调用函数调用函数%ffloat m;不定义类型,缺省:不定义类型,缺省:int10/10/26第26页 北京理工大学计算机学院北京理工大学计算机学院1.被调函数在调用过程中,调用其它函数称为函数被调函数在调用过程中,调用其它函数称为函数嵌套调用。嵌套调用。2.函数能够
21、嵌套调用,不允许嵌套定义。函数能够嵌套调用,不允许嵌套定义。函数外部性函数外部性一个函数不能定义在其它一个函数不能定义在其它函数内部,函数之间是相函数内部,函数之间是相互独立,是平行。互独立,是平行。f1().f2().f3().f1().f2().平行平行定义定义8.1.4 8.1.4 函数函数函数函数递归调用递归调用递归调用递归调用8.1.4 函数递归调用函数递归调用 一一.函数嵌套函数嵌套10/10/27第27页 北京理工大学计算机学院北京理工大学计算机学院mainmain函数函数函数函数 调用函调用函调用函调用函数数数数 A;A;函数函数函数函数 A A 调用函数调用函数调用函数调用函
22、数 B B;函数函数函数函数 B B 函数嵌套调用函数嵌套调用10/10/28第28页void beijing();void shanghai();void tianjin();main()printf(“I m in main.n”);beijing();printf(“Im finally back in main().n”);void beijing()printf(“I m in beijing.n”);shanghai();printf(“Here Im back in beijing.n”);void shanghai()printf(“Now Im in shanghai.n”)
23、;tianjin();printf(“Now I m back in shanghai.n”);void tianjin()printf(“I m in tianjin now.n”);函数申明函数申明beijing();shanghai();tianjin();函数嵌套调用举例10/10/29第29页 北京理工大学计算机学院北京理工大学计算机学院main()beijing();函数嵌套控制流程函数嵌套控制流程beijing()shanghai();shanghai()tianjin();tianjin()printf(“I m in tianjin now.n”);10/10/30第30页
24、北京理工大学计算机学院北京理工大学计算机学院mainmain函数函数函数函数 调用函调用函调用函调用函数数数数 sum(a,b);sum(a,b);函数函数函数函数sum(x,y)sum(x,y)int x,y;int x,y;两次两次两次两次调用函数调用函数调用函数调用函数 n1=fac n1=fac(x)(x);n2=facn2=fac(y)(y);返回返回返回返回n1+n2n1+n2 两次调用两次调用两次调用两次调用函数函数函数函数facfac(n)(n)int n;int n;for(for()返回返回返回返回n!n!课堂作业:课堂作业:输入输入a,b,求,求s=a!+b!10/10/
25、31第31页 北京理工大学计算机学院北京理工大学计算机学院int sum();int fac();int sum();int fac();main()main()int a,b,s;int a,b,s;printf(Input a,b:);printf(Input a,b:);scanf(%d,%d,scanf(%d,%d,&a,&b);&a,&b);s=sum(a,b);s=sum(a,b);printf(s=%dn,s);printf(s=%dn,s);getch();getch();sum(x,y)sum(x,y)int x,y;int x,y;int n1,n2,s;int n1,n2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- j8 函数 变量 公共课 一等奖 全国 获奖 课件
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。