C语言第6章函数省公共课一等奖全国赛课获奖课件.pptx
《C语言第6章函数省公共课一等奖全国赛课获奖课件.pptx》由会员分享,可在线阅读,更多相关《C语言第6章函数省公共课一等奖全国赛课获奖课件.pptx(84页珍藏版)》请在咨信网上搜索。
1、第六章第六章第六章第六章 函函函函 数数数数 10/10/1第1页函数是函数是C语言基本构件,是语言基本构件,是C程序必不可少基本程序必不可少基本元素。在前面几章中,已经使用了如元素。在前面几章中,已经使用了如printf()、scanf()、getchar()、putchar()等标准等标准C库函数库函数;还有还有 strlen(string),),strcmp(string1,string2)等字)等字符串函数。符串函数。10/10/2第2页程序员在设计一个复杂应用时,往往也是把整个程序划程序员在设计一个复杂应用时,往往也是把整个程序划分为若干个分为若干个功效较为单一程序模块功效较为单一程
2、序模块,然后分别给予实现,然后分别给予实现,最终再把全部程序模块象搭积木一样装配起来。最终再把全部程序模块象搭积木一样装配起来。这种在程序设计中分而治之策略,被称为这种在程序设计中分而治之策略,被称为模块化程序设模块化程序设计方法计方法。C语言程序整体由一个或多个函数组成。每个函数都含有语言程序整体由一个或多个函数组成。每个函数都含有各自独立功效和显著界面。各自独立功效和显著界面。6.1 6.1 函数概述函数概述函数概述函数概述10/10/3第3页 编写一个简单函数编写一个简单函数编写一个简单函数编写一个简单函数程序一:程序一:main()printf(*n);printf(Hello wor
3、ld!n);printf(*n);程序二:程序二:#include#include main()main()void print_star();void print_star();void print_text();void print_text();print_star();print_star();print_text();print_text();print_star();print_star();void print_line()printf(*n);void print_text()printf(Hello world!n);运行结果:运行结果:*Hello World!Hello
4、World!*10/10/4第4页若要出现以下结果,应该怎样修改程序?若要出现以下结果,应该怎样修改程序?*Hello World!Hello World!*Hello World!Hello World!*#Hello World!Hello World!#Hello World!Hello World!#10/10/5第5页修改程序一:修改程序一:main()printf(*n);printf(Hello world!n);printf(*n);printf(*n);printf(Hello world!n);printf(*n);程序二:程序二:main()print_line();pr
5、int_text();print_line();print_line();print_text();print_line();print_line()printf(*n);print_text()printf(Hello world!n);*Hello World!Hello World!*Hello World!Hello World!*10/10/6第6页修改程序一:修改程序一:main()printf(#n);printf(Hello world!n);printf(#n);printf(#n);printf(Hello world!n);printf(#n);修改程序二:修改程序二:m
6、ain()print_line();print_text();print_line();print_line();print_text();print_line();print_line()printf(#n);print_text()printf(Hello world!n);#Hello World!Hello World!#Hello World!Hello World!#修改程序一:修改程序一:main()printf(*n);printf(Hello world!n);printf(*n);printf(*n);printf(Hello world!n);printf(*n);函数调
7、用函数调用函数定义函数定义10/10/7第7页说明:说明:(1)函数是按要求格式书写能完成特定功效一段程序。)函数是按要求格式书写能完成特定功效一段程序。(2)C语言是以源文件为单位进行编译,一个源程序由一语言是以源文件为单位进行编译,一个源程序由一个或多个函数组成。个或多个函数组成。(3)不论)不论main函数放在程序任何位置,函数放在程序任何位置,C语言中程序总是语言中程序总是从从main函数开始执行,调用其它函数后,最终在函数开始执行,调用其它函数后,最终在main函数函数中结束。中结束。(4)全部函数都是平行,在定义时相互独立,一个函数不)全部函数都是平行,在定义时相互独立,一个函数不
8、属于另一个函数。函数不能够嵌套定义,但能够相互调用,属于另一个函数。函数不能够嵌套定义,但能够相互调用,main函数能够调用任何函数,一个函数能够屡次被调用,函数能够调用任何函数,一个函数能够屡次被调用,而其它函数不能调用而其它函数不能调用main函数。函数。10/10/8第8页库函数是由编译系统提供已设计好函数,用户只需调用库函数是由编译系统提供已设计好函数,用户只需调用而无须去实现它而无须去实现它6.1.26.1.2库函数库函数库函数库函数用过了哪些库用过了哪些库函数?函数?printf()()scanf()()getchar()()等,包含在等,包含在 “stdio.h”strlen(s
9、tr)strcmp(str1,str2)等,包含在等,包含在“string.h”pow()()sqrt()()等,包含在等,包含在“math.h”10/10/9第9页使用库函数应注意以下几个问题:使用库函数应注意以下几个问题:1、函数功效;、函数功效;2、函数参数数目和次序,以及每个参数意义及类型;、函数参数数目和次序,以及每个参数意义及类型;3、函数返回值意义及类型;、函数返回值意义及类型;4、需要使用包含文件。、需要使用包含文件。#include#include#include#include int main(void)int main(void)double x=2.0,y=3.0;d
10、ouble x=2.0,y=3.0;printf(%lf raised to%lf is%lfn,x,y,pow(x,y);printf(%lf raised to%lf is%lfn,x,y,pow(x,y);运行结果:运行结果:运行结果:运行结果:2.000000 raised to 3.000000 is 8.0000002.000000 raised to 3.000000 is 8.000000Press any key to continuePress any key to continue10/10/10第10页 int getchar();int getchar();stdio
11、.h stdio.h标准输入一个字符标准输入一个字符标准输入一个字符标准输入一个字符 int getch();int getch();conio.h conio.h不回显从键盘直接读入一个字不回显从键盘直接读入一个字不回显从键盘直接读入一个字不回显从键盘直接读入一个字符符符符 int putch(int ch);int putch(int ch);conio.h conio.h向屏幕直接输出一个字符向屏幕直接输出一个字符向屏幕直接输出一个字符向屏幕直接输出一个字符 char*gets(char*);char*gets(char*);stdio.h stdio.h标准输入一行文字标准输入一行文字
12、标准输入一行文字标准输入一行文字 int puts(char*);int puts(char*);stdio.h stdio.h标准输出一行文字(自动加换标准输出一行文字(自动加换标准输出一行文字(自动加换标准输出一行文字(自动加换行)行)行)行)double sin(double);double sin(double);math.h math.h正弦函数正弦函数正弦函数正弦函数sin(x)sin(x)sin(x)sin(x)double pow(double double pow(double x,double y);x,double y);math.h math.h x xy y doub
13、le exp(double x);double exp(double x);math.h math.h e e e ex x x x double log(double x);double log(double x);double log10(double x);double log10(double x);math.h math.h ln ln ln lnx x x x log log log log10101010 x x x x void exit(int status);void exit(int status);tdlib.h tdlib.h强制结束程序强制结束程序强制结束程序强制结
14、束程序 惯用库函数惯用库函数惯用库函数惯用库函数10/10/11第11页库函数普通只能提供一些底层服务功效,而用户自定库函数普通只能提供一些底层服务功效,而用户自定义函数则能针对详细应用实现一些特殊功效。义函数则能针对详细应用实现一些特殊功效。用户自定义函数就是由程序员自己定义和设计函数用户自定义函数就是由程序员自己定义和设计函数,需要程序员来编写函数功效实当代码。需要程序员来编写函数功效实当代码。定义函数时是相互独立,一个函数并不隶属于另一个定义函数时是相互独立,一个函数并不隶属于另一个函数,即函数,即函数不能嵌套定义,但能够相互调用,函数不能嵌套定义,但能够相互调用,但不能调但不能调用用m
15、ain函数。函数。6.26.26.26.2用用用用户户户户自定自定自定自定义义义义函数函数函数函数10/10/12第12页6.2.16.2.16.2.16.2.1函数定函数定函数定函数定义义义义格式格式格式格式1.1.无参函数定义格式无参函数定义格式 类型说明符类型说明符 函数名函数名 ()()函数体函数体 其中,方括号括起来内容是可选项。其中,方括号括起来内容是可选项。2.有参函数定义格式有参函数定义格式类型说明符类型说明符 函数名(形式参数申明)函数名(形式参数申明)函数体函数体 比如:比如:print_line(void)printf(#n);int max(int x,int y)in
16、t z;z=xy?x:y;return(z);10/10/13第13页3.3.空函数空函数C C语言中能够有语言中能够有“空函数空函数”,它形式为:,它形式为:类型说明符类型说明符 函数名()函数名()比如:比如:echoline()echoline()6.2.16.2.16.2.16.2.1函数定函数定函数定函数定义义义义格式格式格式格式#include sum()int main()int s=0;s=sum();printf(%d,s);10/10/14第14页6.2.26.2.26.2.26.2.2形式参数和形式参数和形式参数和形式参数和实际实际实际实际参数参数参数参数在定在定义义函数
17、函数时时函数名后面函数名后面圆圆括号内括号内变变量名称量名称为为“形式参数形式参数”(简简称称“形参形参”),把它作被),把它作被调调函数使用函数使用时时,用于接收主,用于接收主调调函函数数传传来数据。来数据。在在调调用函数用函数时时,主,主调调函数函数函数函数调调用用语语句函数名后面句函数名后面圆圆括号中括号中参数称参数称为为“实际实际参数参数”(简简称称“实实参参”)。)。实际实际参数能参数能够够是常量、是常量、变变量或表示式。量或表示式。10/10/15第15页#include main()int x,y,z;printf(“Please enter two integer number
18、s:”);scanf(%d,%d,&x,&y);z=min(x,y);/函数调用函数调用printf(min is%dn,z);int min(int a,int b)/函数定义函数定义 int c;c=ab?a:b;return(c);6.2.26.2.26.2.26.2.2形式参数和形式参数和形式参数和形式参数和实际实际实际实际参数参数参数参数函数形参函数形参a,b函数实参函数实参x,y实参实参x和和y值按次序对应传值按次序对应传递给被调函数递给被调函数min(a,b)中形中形参参a和和b,x传给传给a,y传给传给b。在执行被调函数在执行被调函数min后,其后,其返回值返回值c作为函数返回
19、值返作为函数返回值返回给主调函数,作为回给主调函数,作为min(x,y)值,赋给变量值,赋给变量z。10/10/16第16页例例6-3 编写函数求两个实数平均值。编写函数求两个实数平均值。#include float average(float x,float y)float av;av=(x+y)/2.0;return av;main()float a=1.8,b=2.6,c;c=average(a,b);/第一次调用函数第一次调用函数average()a=1.0;b=2.0;printf(The avergae of%5.2f and%5.2f is%5.2fn,a,b,average(a
20、,b);/第二次调用函数第二次调用函数average()c=average(a,a+b);/第三次调用函数第三次调用函数average()printf(The avergae of%5.2f and%5.2f is%5.2fn,a,a+b,c);c=average(2.0,4.0);/第四次调用函数第四次调用函数average()printf(The avergae is%5.2fn,c);printf语语句中句中调调用,用,xy接收接收a,b值值形式参数形式参数x、y接收接收实实参参变变量量a、b值值 表示式表示式a+b作为实参之一作为实参之一 常量作为实参常量作为实参10/10/17第17
21、页关于形参和实参说明以下:关于形参和实参说明以下:(1)函数中指定形参变量,在未出现函数调用时,并不占)函数中指定形参变量,在未出现函数调用时,并不占用内存中单元。在发生函数调用时,被调函数形参被暂时分用内存中单元。在发生函数调用时,被调函数形参被暂时分配内存单元,调用结束后,形参所占内存单元被自动释放。配内存单元,调用结束后,形参所占内存单元被自动释放。(2)函数一旦被定义,就可屡次调用,但必须确保形参和)函数一旦被定义,就可屡次调用,但必须确保形参和实参数据类型一致。假如实参为实参数据类型一致。假如实参为int型而形参为型而形参为float型,这是型,这是正当;假如实参为正当;假如实参为f
22、loat型而形参为型而形参为int型型,则按不一样类型,则按不一样类型数值赋值规则进行转换。比如实参数值赋值规则进行转换。比如实参a为为float型变量,其值为型变量,其值为3.5,而形参,而形参x为为int型,则在传递时先将实数型,则在传递时先将实数3.5转换成整数转换成整数3,然后送到形参,然后送到形参x。字符型与整型能够相互通用。(。字符型与整型能够相互通用。(3)实参)实参能够是常量、变量或表示式,但要求它们有确定值。在调用能够是常量、变量或表示式,但要求它们有确定值。在调用时将实参值赋给形参。时将实参值赋给形参。(4)在被定义函数中,必须指定形参类型。)在被定义函数中,必须指定形参类
23、型。(5)C语言要求,实参对形参变量数据传递是语言要求,实参对形参变量数据传递是“值传递值传递”,即单向传递,只由实参传给形参,而不能由形参传回给实参。即单向传递,只由实参传给形参,而不能由形参传回给实参。10/10/18第18页函数执行最终一个操作是返回。返回意义是:函数执行最终一个操作是返回。返回意义是:(1)使流程返回主调函数,宣告函数一次执行结束,使流程返回主调函数,宣告函数一次执行结束,在调用期间所分配变量单元被撤消。在调用期间所分配变量单元被撤消。(2)送函数值到调用表示式中。有些函数有返回值,送函数值到调用表示式中。有些函数有返回值,有些函数没有返回值。有些函数没有返回值。ret
24、urn语句使用格式是:语句使用格式是:return;或者或者 return (表示式表示式);或者或者 return 表示式;表示式;6.2.36.2.36.2.36.2.3函数返回函数返回函数返回函数返回值值值值10/10/19第19页说明:说明:(1)return语句有双重作用:它使函数从被调函数中退出,返语句有双重作用:它使函数从被调函数中退出,返回到调用它代码处,并向调用函数返回一个确定值。回到调用它代码处,并向调用函数返回一个确定值。(2)一个函数中能够有多个)一个函数中能够有多个return语句,执行到哪一个语句,执行到哪一个return语句,哪一个语句就起作用。语句,哪一个语句就
25、起作用。(3)在定义函数时应该指定函数值类型,而且函数类型普通应)在定义函数时应该指定函数值类型,而且函数类型普通应与与return语句中表示式类型相一致,当二者不一致时,应以函数语句中表示式类型相一致,当二者不一致时,应以函数类型为准,即函数类型决定返回值类型。对于数值型数据,能够类型为准,即函数类型决定返回值类型。对于数值型数据,能够自动进行类型转换。自动进行类型转换。10/10/20第20页#include int sum(int n)int i,s=0;for(i=0;i=m;i+)s=s+i;return s;int main()int s;s=sum(50);printf(%d,s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 函数 公共课 一等奖 全国 获奖 课件
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。