C语言函数调用及定义课件.ppt

上传人(卖家):晟晟文业 文档编号:4741784 上传时间:2023-01-06 格式:PPT 页数:37 大小:651KB
下载 相关 举报
C语言函数调用及定义课件.ppt_第1页
第1页 / 共37页
C语言函数调用及定义课件.ppt_第2页
第2页 / 共37页
C语言函数调用及定义课件.ppt_第3页
第3页 / 共37页
C语言函数调用及定义课件.ppt_第4页
第4页 / 共37页
C语言函数调用及定义课件.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、第5讲 函数 函数的定义及调用1PPT课件主要内容n函数函数n无参无返回值函数无参无返回值函数n有参无返回值函数有参无返回值函数n有参有返回值函数有参有返回值函数n函数间数据传递函数间数据传递整数类型整数类型整数变量的定义整数变量的定义整数的运算整数的运算整数的输入和输出整数的输入和输出整数在函数间传递整数在函数间传递nP84P95n第4章函数用户自定义函数2PPT课件4.2.1 函数定义函数定义 n函数是指完成一个特定工作的独立程序模块。函数是指完成一个特定工作的独立程序模块。库函数:由库函数:由C语言系统提供定义。如语言系统提供定义。如scanf()等函数等函数自定义函数:用户根据需要定义

2、。如自定义函数:用户根据需要定义。如cylinder()函数函数main()是一个主函数,是一个主函数,C程序由一个程序由一个main()或多个函数构成或多个函数构成n程序中一旦调用了某个函数,该函数就会完成特定功程序中一旦调用了某个函数,该函数就会完成特定功能,然后返回到调用它的地方。除主函数外一般函数能,然后返回到调用它的地方。除主函数外一般函数都不能单独运行。都不能单独运行。函数经过运算,得到一个明确结果,并需要回送该结果函数经过运算,得到一个明确结果,并需要回送该结果有返回值函数有返回值函数。例,函数。例,函数cylinder()返回圆柱的体积。返回圆柱的体积。函数完成一系列操作步骤,

3、不需要回送任何运算结果函数完成一系列操作步骤,不需要回送任何运算结果无无返回值函数返回值函数:1.无参无参无返回值函数无返回值函数2.有有参参无返回值函数无返回值函数P25一般有参一般有参3PPT课件用户自定义函数用户自定义函数n函数定义:编制独立功能的程序函数定义:编制独立功能的程序n函数声明函数声明:主调函数调用前声明:主调函数调用前声明n函数调用函数调用:主调函数调用被调用函数:主调函数调用被调用函数n函数执行函数执行:运行被调用函数:运行被调用函数注:注:不能独立运行不能独立运行4 4PPT课件5写自己的函数用户自定义函数写自己的函数用户自定义函数 void triangle(void

4、)printf(*n);printf(*n);printf(*n);n无返回值函数无返回值函数void函数的作用仅仅是执行函数的作用仅仅是执行一系列的指令一系列的指令n打印 5PPT课件1.无参无参无返回值无返回值函数定义函数定义 p87一般形式一般形式void 函数名函数名(void)函数体函数体6void 函数名函数名()函数体函数体void triangle(void)printf(*n);printf(*n);printf(*n);void triangle()printf(*n);printf(*n);printf(*n);或或P46PPT课件无参无返回值的函数的声明无参无返回值的函

5、数的声明 p87一般形式:一般形式:void 函数名函数名(void);void triangle(void);n主调函数主调函数n告诉编译系统用户自定义函数的存在告诉编译系统用户自定义函数的存在n编译系统在检查被调函数时要知道调用信息包括:编译系统在检查被调函数时要知道调用信息包括:函数名,参数,返回类型。函数名,参数,返回类型。n仅仅声明了仅仅声明了“函数名函数名”7P47PPT课件无参无返回值的函数的调用无参无返回值的函数的调用n一般形式:函数名一般形式:函数名();n上例:上例:triangle();n写一个主函数,调用写一个主函数,调用“triangle”函数,打印函数,打印图形。图

6、形。#include void main(void)void triangle();/*函数声明函数声明*/triangle();void triangle()printf(*n);printf(*n);printf(*n);8P48PPT课件/*a program to output a triangle*/#include void triangle(void);main()printf(About to print a trianglen);triangle();printf(That was it!n);void triangle(void)printf(*n);printf(*n);

7、printf(*n);9例:例:sample01_04.c函数声明(主函数前)函数声明(主函数前)p84(2)函数调用函数调用函数定义函数定义调用自定义函数,调用自定义函数,()中可不包括任何内中可不包括任何内容,但容,但()一定要写。一定要写。可放在可放在main函数之前,也可放在函数之前,也可放在main函数的后面。但不能放在函数的后面。但不能放在main函数的函函数的函数体中,函数和函数之间地位是平等的,数体中,函数和函数之间地位是平等的,没有嵌套关系。只有嵌套调用。没有嵌套关系。只有嵌套调用。告诉编译器,存在这样一个用告诉编译器,存在这样一个用户自定义的函数,及它的调用户自定义的函数,

8、及它的调用方法:名称、参数、返回值。方法:名称、参数、返回值。主调函数主调函数被调函数被调函数预处理预处理9PPT课件10执行流程执行流程n程序的执行顺序程序的执行顺序从从main函数开始执行,函数开始执行,执行完执行完main函数即结函数即结束执行。束执行。遇到调用函数,转向执遇到调用函数,转向执行被调函数,执行完被行被调函数,执行完被调函数后,返回调用函调函数后,返回调用函数的调用处,继续向下数的调用处,继续向下执行。执行。n程序的书写顺序程序的书写顺序与执行顺序有关顺与执行顺序有关顺序执行。序执行。分支或循环会改变顺序分支或循环会改变顺序n函数的书写顺序函数的书写顺序与执行顺序无关与执行

9、顺序无关函数定义若写在函数调函数定义若写在函数调用之前,用之前,函数声明函数声明可省可省略,但不主张。略,但不主张。#include void main(void)void triangle();triangle();void triangle()printf(*n);printf(*n);printf(*n);#include void triangle()printf(*n);printf(*n);printf(*n);void main(void)triangle();10PPT课件11完成画简图(完成画简图(女孩女孩)的程序)的程序n打印图形打印图形女孩女孩房子房子男孩男孩11PPT课

10、件12sample01_完成画完成画基本组件基本组件的函数的函数画一个圆画一个圆画一个横线画一个横线画一个平行线画一个平行线画一个交叉线画一个交叉线n完成画完成画三角形三角形的函数的函数画一个交叉线画一个交叉线画一个横线画一个横线n在在main函数中调用子函数中调用子函数完成画小函数完成画小女孩女孩画一个圆画一个圆画三角形画三角形画一个交叉画一个交叉线12PPT课件13完成画基本组件的函数完成画基本组件的函数/*Draw a circle*/void draw_circle(void)printf(*n);printf(*n);printf(*n);nDraw 绘画绘画 nCircle 圆圆/

11、*Draw intersecting lines*/void draw_intersect(void)/*Use 2 s to print 1*/printf(/n);printf(/n);printf(/n);nintersecting lines相交线相交线 13PPT课件14完成画基本组件的函数完成画基本组件的函数/*Draws a base line*/void draw_base(void)printf(-n);nbase line基(横)线基(横)线/*Draw a parallel*/void draw_parallel(void)printf(|n);printf(|n);nP

12、arallel 平行线平行线 14PPT课件15完成画三角形的函数完成画三角形的函数/*Draws a triangle*/void draw_triangle(void)draw_intersect();/*画相交线*/draw_base();/*画横线*/15PPT课件画小女孩画小女孩#include /*function prototypes*/void draw_circle(void);/圆void draw_intersect(void);/相交线 void draw_base(void);/横线 void draw_triangle(void);/三角形int main(void

13、)/*Draw a circle*/draw_circle();/*Draw a triangle*/draw_triangle();/*Draw intersecting lines*/draw_intersect();return 0;Function 函数函数 Prototype 原型原型 16PPT课件17执行示例执行示例main(画女孩)画圆画三角形画交叉线画交叉线画横线17PPT课件18思考思考n main函数中三条语句函数中三条语句功能还不明显,可增功能还不明显,可增加一个函数加一个函数draw_girl 画小女孩画小女孩n请修改程序请修改程序画女孩画圆画三角形画交叉线画交叉线画

14、横线main18PPT课件19画小女孩函数画小女孩函数/*Draws a girl */void draw_girl(void)/*Draw a circle.*/draw_circle();/*Draw a triangle.*/draw_triangle();/*Draw intersecting lines.*/draw_intersect();19PPT课件20完成画小女孩程序完成画小女孩程序#include/*function prototypes*/void draw_circle(void);void draw_intersect(void);void draw_base(voi

15、d);void draw_triangle(void);void draw_girl(void);int main(void)draw_girl();return 0;20PPT课件21改错题 error1_6.cvoid main()printstar;sayHello(void);printstar;void printStar(void)printf(“*”);void sayHello(void)printf(“hello world!”);P2#include void main()void printStar(void);void sayHello(void);printStar(

16、);sayHello();printStar();void printStar(void)printf(*);void sayHello(void)printf(hello world!);21PPT课件2.有参无返回值函数定义P87void 函数名(形参表)/*函数首部*/函数实现过程 /*函数体*/return;/*可以省略return*/注:这类函数通常用于屏幕输出等注:这类函数通常用于屏幕输出等表示不返回结果表示不返回结果不能省略不能省略否则,函数类型被默认定义为否则,函数类型被默认定义为int22PPT课件参数参数n参数的作用参数的作用实现值的传递实现值的传递主调函数向被调函数传递值

17、主调函数向被调函数传递值实际参数实际参数(实参),被调函数处理所需要的数据。(实参),被调函数处理所需要的数据。n函数调用函数调用被调函数向主调函数传递值被调函数向主调函数传递值形式参数形式参数(形参),被调函数向主调函数传递被调(形参),被调函数向主调函数传递被调函数运行结果的数据。函数运行结果的数据。n函数定义函数定义23PPT课件3.有参有返回值函数定义 程序解析计算圆柱体积【例】输入圆柱体的高h和半径r,求圆柱体积,volume=*r2*h。要求定义并调用函数cylinder(r,h)计算圆柱体的体积。cylinder圆柱体 volume体积 24PPT课件/*计算圆柱体积*/1.#i

18、nclude 2.int main(void)3.4.double height,radius,volume;5.double cylinder(double r,double h);/*函数声明*/6./*函数类型 函数名 类型 名称 类型 名称*/7./*实参表 */8.printf(Enter radius and height:);9.scanf(%lf%lf,&radius,&height);10./*调用函数,返回值赋给volume*/11.volume=cylinder(radius,height);12.printf(Volume=%.3fn,volume);13.return

19、 0;14.【例】源程序25PPT课件Cylinder函数/*函数定义:求圆柱体积*/double cylinder(double r,double h)/*函数类型 函数名 类型 名称 类型 名称*/*形参表 */double result;result=3.1415926*r*r*h;/*计算体积*/return result;/*返回结果*/Enter radius and height:3.0 10Volume=282.743注:主函数完成输入输出注:主函数完成输入输出26PPT课件1返回运算结果的函数定义函数类型 函数名(形参表)/*函数首部*/函数实现过程 /*函数体*/retur

20、n 表达式;将函数运算的结果回送给主调函数将函数运算的结果回送给主调函数注:注:只能返回一个值只能返回一个值函数返回值的类型函数返回值的类型注:没有分号注:没有分号double cylinder(double r,double h)double result;result=3.1415926*r*r*h;return result;27PPT课件函数定义形参类型1 参数1,类型2 参数2,类型n 参数n参数之间用逗号分隔,每个参数前面的类型都必须分别声明函数类型函数类型 函数名(函数名(形参表形参表)函数实现过程函数实现过程 return 表达式;表达式;不能写成不能写成 double r,h

21、double cylinder(double r,double h)double result;result=3.1415926*r*r*h;return result;P228PPT课件课堂练习:定义判断奇偶数的函数课堂练习:定义判断奇偶数的函数even(n)int even(int n)/*函数首部*/if(n%2=0)/*判别奇偶数*/return 1;/*偶数返回1*/elsereturn 0;/*奇数返回0*/分析:分析:功能:判断奇偶数功能:判断奇偶数形式参数:整数形式参数:整数n返回值:当返回值:当n为偶数时返回为偶数时返回1,否则返回,否则返回0。29PPT课件n函数类型函数类

22、型 函数名函数名(参数表参数表););void triangle(void);void pyramid(int n);double cylinder(double r,double h);n函数必须先定义后调用。函数必须先定义后调用。n如果自定义函数在主调函数的后面,就需要在函数调用如果自定义函数在主调函数的后面,就需要在函数调用前,加上前,加上函数原型声明函数原型声明。n函数声明:说明函数的类型和参数的情况,以保证程序函数声明:说明函数的类型和参数的情况,以保证程序编译时能判断对该函数的调用是否正确。书写位置:编译时能判断对该函数的调用是否正确。书写位置:写在写在“main”main”里,函

23、数体开始位置。里,函数体开始位置。写在写在“main”main”前。前。在主调函数前在主调函数前函数(原型)声明注:只写函数定义中的第注:只写函数定义中的第1 1行(函数首部),并以分号结束。行(函数首部),并以分号结束。无参无返回值函数声明有参无返回值函数声明有参有返回值30PPT课件函数调用P89n函数定义后,可以在其它函数中调用该函数;或自函数定义后,可以在其它函数中调用该函数;或自己调用自己嵌套调用。己调用自己嵌套调用。n调用调用C标准库函数时,在程序的最前面用标准库函数时,在程序的最前面用#include命令包含相应的头文件。如:命令包含相应的头文件。如:#include n调用自定

24、义函数时,程序中必须有与调用函数相对调用自定义函数时,程序中必须有与调用函数相对应的应的函数声明函数声明。double cylinder(double r,double h);volume=cylinder(radius,height);函数调用31PPT课件1.函数调用的形式和过程函数调用的形式和过程n使用(带)返回值:使用(带)返回值:volume=cylinder(radius,height);printf(“%f n”,cylinder(radius,height);n完成操作(无返回值):完成操作(无返回值):pyramid(5);/有参有参triangle();/无参无参常用于常用

25、于voidvoid类型函数的调用类型函数的调用常用于有返回结果的函数的调用常用于有返回结果的函数的调用常量、变量、表达式常量、变量、表达式函数名函数名(实参表实参表)32PPT课件函数调用的过程n计算机在执行程序时,从计算机在执行程序时,从主函数主函数main开始执行,如开始执行,如果遇到某个函数调用,暂果遇到某个函数调用,暂停执行主函数,转而执行停执行主函数,转而执行相应的被调函数,该函数相应的被调函数,该函数执行完后,将返回主函数执行完后,将返回主函数,然后再从原先暂停的位,然后再从原先暂停的位置继续执行。置继续执行。n函数遇函数遇return或最后的大或最后的大括号,返回主函数。括号,返

26、回主函数。n示意图33PPT课件#include int main(void)double height,radius,volume;double cylinder(double r,double h);printf(Enter radius and height:);scanf(%lf%lf,&radius,&height);volume=cylinder(radius,height);printf(Volume=%.3fn,volume);return 0;double cylinder(double r,double h)double result;result=3.1415926*r*

27、r*h;return result;调用调用函数函数实参实参形参形参执行函数中的语句执行函数中的语句返回调用它的地方返回调用它的地方函数函数声明声明;结束结束函数函数定义空格结束定义空格结束分析函数调用的过程34PPT课件2.参数传递P91n函数函数定义定义时的参数时的参数形式参数形式参数(简称(简称形参形参)double cylinder(double r,double h);n函数函数调用调用时的参数时的参数实际参数实际参数(简称(简称实参实参)volume=cylinder(radius,height);为为形参形参分配存储单元分配存储单元n实参实参形参形参的的单向传递,单向传递,实参实

28、参把值复制给把值复制给形参形参实参实参:常量、变量或表达式:常量、变量或表达式形参形参:变量,用于接受实参传递过来的值:变量,用于接受实参传递过来的值形参形参和和实参实参一一对应:数量、类型和顺序均一致一一对应:数量、类型和顺序均一致n调用结束后调用结束后释放释放形参形参存储单元;保留存储单元;保留实参实参存储单元(值)存储单元(值)35PPT课件3.返回函数运行结果P94n函数返回的两种情况函数返回的两种情况完成确定运算,并返回该运算结果返回给主调函数。完成确定运算,并返回该运算结果返回给主调函数。完成指定工作,没有确定的运算结果需返回给主调函数完成指定工作,没有确定的运算结果需返回给主调函

29、数(函数类型(函数类型void)。)。n函数返回结果的一般形式:函数返回结果的一般形式:return 表达式;表达式;如,如,return result;return (表达式表达式);如,;如,return(3.1415926*r*r*h);先求先求“表达式表达式”值,再返回值,再返回“表达式值表达式值”nreturn语句语句结束函数运行结束函数运行带着运行结果返回主调函数带着运行结果返回主调函数double cylinder(double r,double h)return 3.1415926*r*r*h;double cylinder(double r,double)double res

30、ult;result=3.1415926*r*r*h;return result;36PPT课件课堂练习:课堂练习:1、请定义能够判断一整数奇偶性的函数、请定义能够判断一整数奇偶性的函数even(n)。2、用户从键盘输入一个整数,主函数通过调用、用户从键盘输入一个整数,主函数通过调用even(n)函数判断该数的奇偶性,并将判断结果打印输出。函数判断该数的奇偶性,并将判断结果打印输出。1.#include 2.int even(int n)/*函数首部函数首部*/3.if(n%2=0)/*判别奇偶数判别奇偶数*/4.return 1;/*偶数返回偶数返回1*/5.elsereturn 0;/*奇数返回奇数返回0*/6.7.8.void main()9.int num,result;10.printf(n请输入一个整数:请输入一个整数:);11.scanf(%d,&num);12.result=even(num);13.if(result=1)14.printf(该数为偶数。该数为偶数。);15.else printf(该数为奇数。该数为奇数。);16.37PPT课件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(C语言函数调用及定义课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|