![函数的定义声明调用PPT课件_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/c2e3265e-6645-449d-94ce-480d44055973/c2e3265e-6645-449d-94ce-480d440559731.gif)
![函数的定义声明调用PPT课件_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/c2e3265e-6645-449d-94ce-480d44055973/c2e3265e-6645-449d-94ce-480d440559732.gif)
![函数的定义声明调用PPT课件_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/c2e3265e-6645-449d-94ce-480d44055973/c2e3265e-6645-449d-94ce-480d440559733.gif)
![函数的定义声明调用PPT课件_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/c2e3265e-6645-449d-94ce-480d44055973/c2e3265e-6645-449d-94ce-480d440559734.gif)
![函数的定义声明调用PPT课件_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-10/27/c2e3265e-6645-449d-94ce-480d44055973/c2e3265e-6645-449d-94ce-480d440559735.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、授课要点 函数的函数的定义定义、声明声明、调用调用、返回返回值值 无参无返回值无参无返回值的函数的函数 无参有返回值无参有返回值的函数的函数 有参无返回值有参无返回值的函数的函数 有参有返回值有参有返回值的函数的函数第1页/共47页#include #include void main() /主函数 int iNo,b;printf(input a number:n); /输出函数scanf(%d,&iNo); /输入函数b=sqrt(iNo); /求平方根函数printf(%d,b); /输出函数初识函数1第2页/共47页/*从键盘输入3个数,求和并输出。*/#include int
2、 myAdd(int x,int y,int z) int s;s=x+y+z; return s;void main() /主函数 int iNo1,iNo2,iNo3,sum;printf(input 3 numbers:n);/输出函数scanf(%d%d%d,&iNo1,&iNo2,&iNo3); /输入函数sum=myAdd(iNo1,iNo2,iNo3); /用户自定义函数printf(sum=%d,sum); /输出函数初识函数2第3页/共47页问题:问题:大规模的程序大规模的程序实际应用程序中需要多次实现某一功实际应用程序中需要多次实现某一功能能用循环实
3、现?用循环实现?所有代码全写在所有代码全写在main()中?中?第4页/共47页什么是函数什么是函数u函数是函数是一段一段完成特定功能完成特定功能的的程序程序 换句话说,换句话说,函数函数就就是是能够完成能够完成一定一定功能功能的的语句的集合语句的集合,是程序编译运,是程序编译运行的基本单位。行的基本单位。 前面一直在用各种各样的函数,如前面一直在用各种各样的函数,如printf()printf()、scanf() scanf() 等等。等等。u将程序中将程序中反复使用的程序反复使用的程序定义为函数定义为函数的形式的形式第5页/共47页函数的分类函数的分类从用户角度从用户角度标准函数(库函数)
4、:由系统提标准函数(库函数):由系统提供供用户自定义函数用户自定义函数从函数形式从函数形式无参函数无参函数有参函数有参函数无参无返回值无参无返回值无参有返回值无参有返回值有参无返回值有参无返回值有参有返回值有参有返回值第6页/共47页C C语言要求,在程序中用到的所有语言要求,在程序中用到的所有函数,必须函数,必须“先定义,后使用先定义,后使用”指定函数指定函数名字名字、函数、函数返回值类型返回值类型、函数函数参数的名字与类型、参数的名字与类型、函数实现函数实现的的功能功能,将这些信息通知编译系统。,将这些信息通知编译系统。第7页/共47页对于库函数,程序设计者只需用对于库函数,程序设计者只需
5、用#include指令把有关的头文件包指令把有关的头文件包含到本文件模块中即可含到本文件模块中即可程序设计者需要在程序中自己定程序设计者需要在程序中自己定义想用的而库函数并没有提供的义想用的而库函数并没有提供的函数函数第8页/共47页u函数的定义函数的定义函数定义的通用形式为:函数定义的通用形式为: 返回值类型返回值类型 函数名函数名 (参数数据类型参数数据类型 参数参数1 , 参数数据类型参数数据类型 参数参数2, ) 函数首部函数首部函数体函数体第9页/共47页函数定义示例函数定义示例(1)(1)一、无参数无返回值的函数一、无参数无返回值的函数如:定义printStar函数,用以在屏幕上输
6、出5个*符号。void printStar( ) int star; for(star=1; star=5; star+) printf(*); printf(n) ;函数无返回值时使用的数据类型函数无返回值时使用的数据类型第10页/共47页u函数的调用函数的调用(有参函数有参函数)无参无返回值函数的调用形式:无参无返回值函数的调用形式:函数名函数名( );( );第11页/共47页无参数无返回值的函数的调用无参数无返回值的函数的调用#include void printStar( ); void main( ) printStar( ); /函数调用函数调用void printStar( )
7、 /函数定义函数定义 int star; for(star=1; star=5; star+) printf(*); printf(n) ;第12页/共47页u自定义函数的声明自定义函数的声明在程序的开头加上对应函数的声明在程序的开头加上对应函数的声明函数声明的形式:函数声明的形式: 返回值类型返回值类型 函数名称函数名称(参数类型参数类型 参数参数1, ) ; 其中前面的与函数定义时的首部完全一样,其中前面的与函数定义时的首部完全一样,但末尾必须加但末尾必须加“;”。如对如对printStar函数的声明为:函数的声明为: void printStar( );第13页/共47页无参数无返回值的
8、函数的示例无参数无返回值的函数的示例#include void printStar( ); /函数声明函数声明void main( ) printStar( ); /函数调用函数调用void printStar( ) /函数定义函数定义 int star; for(star=1; star=5; star+) printf(*); printf(n) ;第14页/共47页授课要点 函数的定义、声明、调用函数的定义、声明、调用 无参无返回值的函数无参无返回值的函数 无参有返回值的函数无参有返回值的函数 有参无返回值的函数有参无返回值的函数 有参有返回值的函数有参有返回值的函数第15页/共47页
9、问题问题: : 过年回家,车票难买,到处托人。假如过年回家,车票难买,到处托人。假如你先把车票你先把车票钱钱给帮你买车票的朋友,给帮你买车票的朋友, 那么那么返回返回给你的应该是一张给你的应该是一张车票车票(当然当然是顺利的情况是顺利的情况)。 同理,在同理,在C C语言中,语言中,函数的调用函数的调用有时候有时候也是有也是有返回值返回值的,那么如何理解的,那么如何理解? ?第16页/共47页分析分析 对应到函数上,你的朋友就是对应到函数上,你的朋友就是函函数数,车票就是函数的,车票就是函数的返回值返回值,而,而你就是调用函数的你就是调用函数的主程序主程序。第17页/共47页u函数的返回值函数
10、的返回值 函数的返回值函数的返回值 返回语句返回语句 形式:形式: return(表达式表达式); 或或 return 表达式表达式; 或或 return; 功功能:使程序控制从被调用函数返回到能:使程序控制从被调用函数返回到调用函数中,同时把返回值带给调用函调用函数中,同时把返回值带给调用函数数第18页/共47页函数定义示例函数定义示例(2)(2)二、无参数有返回值的函数二、无参数有返回值的函数如定义函数如定义函数sum_100,用以求,用以求1+2+3+100的和,的和,并将结果返回给调用它的函数。并将结果返回给调用它的函数。 int sum_100( ) int s=0, i; for(
11、i=1; i=100; i+)s=s+i; return s ; /用用return返回一个值给主调返回一个值给主调函数函数 ( )第19页/共47页无参数有返回值的函数示例无参数有返回值的函数示例 #include int sum_100( ); /函数声明函数声明 void main( ) int s1; s1 = sum_100( ); /函数调用函数调用 printf(和值为和值为:%dn, s1); int sum_100( ) /函数定义函数定义( (首部首部) ) int s=0, i; for(i=1; i=100; i+)s=s+i; return s; /返回值给主调函数返
12、回值给主调函数 第20页/共47页模仿练习无参无返回值函数编写:无参无返回值函数编写:1、自定义函数、自定义函数myPrint1( ),在屏幕上输出如,在屏幕上输出如下图形下图形(每行每行10个个$符号符号),并在主函数中调用,并在主函数中调用myPrint1()函数。函数。 $ $ $第21页/共47页模仿练习模仿练习无参无返回值函数编写:无参无返回值函数编写:2、自定义函数、自定义函数myPrint2( ),在屏幕上输出,在屏幕上输出如下图形,并在主函数中调用如下图形,并在主函数中调用myPrint2( )函数。函数。 第22页/共47页模仿练习无参有返回值函数编写:3、自定义函数myFa
13、c(),计算10!,将计算结果返回给调用者。然后在主函数中调用myFac()函数,输出该结果。4、自定义函数myMax(),实现功能:从键盘输入3个数,求最大数并将最大数返回给调用者。然后在主函数中调用myMax()函数,输出该结果。第23页/共47页讨论并总结1、为什么使用函数?2、如何理解函数调用与函数定义的不同?3、空函数在程序结构设计中有什么作用?(P174)第24页/共47页授课要点 函数的定义、声明、调用函数的定义、声明、调用 无参无返回值的函数无参无返回值的函数 无参有返回值的函数无参有返回值的函数 有参无返回值的函数有参无返回值的函数 有参有返回值的函数有参有返回值的函数第25
14、页/共47页 问题问题: :试编程实现计算并输出3!、4!、5!。 第26页/共47页问题解决问题解决函数定义示例函数定义示例(3)三、有参数无返回值的函数三、有参数无返回值的函数如定义如定义fanc_n()函数,用以计算函数,用以计算n!。其中!。其中n的的值是由调用该函数的函数传递过来的。值是由调用该函数的函数传递过来的。 void fanc_n( int n) int i,s=1; for(i=1; i=n; i+)s*=i; printf(%dn,s); 函数参数函数参数(称为称为形参形参)第27页/共47页 函数调用函数调用有参有参无返回值无返回值函数的调用形式:函数的调用形式:函数
15、名函数名(实参实参);实参与形参:实参与形参:个数相等个数相等类型一致类型一致按顺序一一对应按顺序一一对应第28页/共47页有参数无返回值的函数调用有参数无返回值的函数调用 #include void fanc_n(int n); /函数声明函数声明 void main( ) int num; scanf(%d, &num); fanc_n(num); /函数调用函数调用 void fanc_n( int n) /函数定义函数定义( (首部首部) ) int i,s=1; for(i=1; i=n; i+) s*=i; printf(%dn,s); 函数参数函数参数(称为称为形参形参)
16、调用时传递的参调用时传递的参数数(称为称为实参实参)第29页/共47页授课要点 函数的定义、声明、调用函数的定义、声明、调用 无参无返回值的函数无参无返回值的函数 无参有返回值的函数无参有返回值的函数 有参无返回值的函数有参无返回值的函数 有参有返回值的函数有参有返回值的函数第30页/共47页问题: 在主函数中输入n,自定义函数,计算1+2+3+4+n-1+n,将结果在主函数中输出。第31页/共47页问题解决问题解决函数定义示例函数定义示例(4)四、有参数有返回值的函数四、有参数有返回值的函数如定义函数如定义函数sum_n(),用以求,用以求1+2+3+n的和,并将结果返回给调用它的函数。的和
17、,并将结果返回给调用它的函数。 int sum_n( int m ) int s=0, i; for(i=1; i=m; i+)s=s+i;return s; /通过通过return返回一个值返回一个值 函数参数函数参数(称为称为形参形参)第32页/共47页 #include int sum_n( int m ); /函数声明 void main( ) int s1, n; scanf(%d, &n); s1 = sum_n( n ); /函数调用 printf(和值为:%dn, s1); int sum_n( int m ) /函数定义 (首部) int s=0, i; for(i=
18、1; i=m; i+) s=s+i; return s; /返回一个值给主调函数 有参数有返回值的函数调用有参数有返回值的函数调用第33页/共47页u函数的调用函数的调用1、语句调用方式、语句调用方式2、函数表达式、函数表达式3、函数参数、函数参数 第34页/共47页 函数的调用函数的调用 调用方式 语句调用: 例 printmsg(); printf(打印成功!n); 函数表达式调用: 例 result=aver(totalscore, stuno); 函数参数调用: 例 printf(%f,aver(totalscore, stuno); 第35页/共47页 问题:问题: 用户输入两个整数
19、a、b,通过下面的例子中传递方式能否实现a、b值的交换? 第36页/共47页函数的值传递方式函数的值传递方式#include void swap(int a,int b); /swap函数的声明void main() int x=7,y=11; printf(x=%d,ty=%dn,x,y); printf(swapped:n); swap(x,y); /调用swap函数 printf(x=%d,ty=%dn,x,y); void swap(int a,int b) /定义swap函数 int temp; temp=a; a=b; b=temp; 输出结果:x=7, y=11 swapped:
20、 x=7, y=11第37页/共47页 结论结论值值传递方式传递方式 值传递方式 方式:函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值 特点: 形参与实参占用不同的内存单元 单向传递,从实参到形参第38页/共47页随堂实践有参无返回值函数编写:1、自定义函数myprint_n(),在屏幕的一行上输出n个$符号。在主函数中调用myprint_n()函数,输出如下图形(每行上的符号个数由调用它的函数传递过来) 。函数首部为:void myprint_n( int n) $(5个$) $(10个) $(15个) $(20个)2、修改以上程序,
21、实现以下功能:打印个数由用户输入决定,支持用户循环输入,当用户输入0时结束程序。第39页/共47页有参有返回值函数编写:3、自定义函数myfac_n(),求n!,并在主函数中调用myfac_n()函数,输出结果。 函数首部为: int myfac_n( int n)4、自定义函数mypower(),求x的y次方,并在主函数中调用mypower()函数,输出结果。 函数首部为:double mypower( double x, int y)5、自定义函数circleArea(),用于计算圆的面积,其中半径作为参数传入。然后在主函数中调用它,并输出结果。函数首部为: double circleArea(double radius) 随堂实践第40页/共47页讨论并总结1、函数的功能应该尽量保持相对独立还是依赖函数外的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年院线经营项目规划申请报告模板
- 2025年防结皮剂项目提案报告模板
- 2025年会议场地租赁合同书模板
- 2025年劳务派遣人员安全生产责任协议
- 2025年产品销售合同范本官方
- 2025年铁轨建设项目立项申请报告模范
- 2025年节日礼品项目规划申请报告模板
- 2025年规划管理服务项目申请报告
- 2025年临时聘用人员安全生产协议
- 2025年中信银行信用卡还款合同
- 常见食物的嘌呤含量表汇总
- 人教版数学八年级下册同步练习(含答案)
- SB/T 10752-2012马铃薯雪花全粉
- 2023年湖南高速铁路职业技术学院高职单招(英语)试题库含答案解析
- 湿型砂中煤粉作用及检测全解析
- 积累运用表示动作的词语课件
- 机动车登记证书英文证书模板
- 第8课《山山水水》教学设计(新人教版小学美术六年级上册)
- T∕ZSQX 008-2020 建设工程全过程质量行为导则
- 质量管理体系基础知识培训-2016
- 甲醇催化剂说明书
评论
0/150
提交评论