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

上传人:2127513****773577... 文档编号:242025079 上传时间:2024-08-10 格式:PPT 页数:37 大小:240.27KB
返回 下载 相关 举报
C语言函数调用及定义--课件_第1页
第1页 / 共37页
C语言函数调用及定义--课件_第2页
第2页 / 共37页
C语言函数调用及定义--课件_第3页
第3页 / 共37页
点击查看更多>>
资源描述
PPT课件,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,PPT课件,*,第5讲 函数,函数的定义及调用,1,PPT课件,第5讲 函数 函数的定义及调用1PPT课件,主要内容,函数,无参无返回值函数,有参无返回值函数,有参有返回值函数,函数间数据传递,整数类型,整数变量的定义,整数的运算,整数的输入和输出,整数在函数间传递,P84P95,第,4,章函数,用户自定义函数,2,PPT课件,主要内容函数P84P95用户自定义函数2PPT课件,4.2.1,函数定义,函数是指完成一个特定工作的独立程序模块。,库函数:由,C,语言系统提供定义。如,scanf(),等函数,自定义函数:用户根据需要定义。如,cylinder(),函数,main(),是一个主函数,,C,程序由一个,main(),或多个函数构成,程序中一旦调用了某个函数,该函数就会完成特定功能,然后返回到调用它的地方。除主函数外一般函数都不能单独运行。,函数经过运算,得到一个明确结果,并需要回送该结果,有返回值函数,。例,函数,cylinder(),返回圆柱的体积。,函数完成一系列操作步骤,不需要回送任何运算结果,无返回值函数,:,1.,无参,无返回值函数,2.,有,参,无返回值函数,P25,一般有参,3,PPT课件,4.2.1 函数定义 函数是指完成一个特定工作的独立程序模块,用户自定义函数,函数定义:编制独立功能的程序,函数声明,:主调函数调用前声明,函数调用,:主调函数调用被调用函数,函数执行,:运行被调用函数,注:,不能独立运行,4,4,PPT课件,用户自定义函数函数定义:编制独立功能的程序44PPT课件,5,写自己的函数用户自定义函数,void,triangle(void),printf(*n);,printf(*n);,printf(*n);,无返回值函数,void,函数的作用仅仅是执行一系列的指令,打印,5,PPT课件,5写自己的函数用户自定义函数 void triangle,1.,无参,无返回值,函数定义,p87,一般形式,void,函数名,(,void,),函数体,6,void,函数名,(),函数体,void,triangle(,void,),printf(*n);,printf(*n);,printf(*n);,void,triangle(),printf(*n);,printf(*n);,printf(*n);,或,P4,6,PPT课件,1.无参无返回值函数定义 p87一般形式void 函,无参无返回值的函数的声明,p87,一般形式:,void,函数名,(void),;,void triangle(,void,),;,主调函数,告诉编译系统用户自定义函数的存在,编译系统在检查被调函数时要知道调用信息包括:函数名,参数,返回类型。,仅仅声明了“函数名”,7,P4,7,PPT课件,无参无返回值的函数的声明 p87一般形式:void 函,无参无返回值的函数的调用,一般形式:函数名,(),;,上例:,triangle(),;,写一个主函数,调用“,triangle”,函数,打印图形。,#include,void main(void),void triangle();,/*,函数声明,*/,triangle();,void,triangle(),printf(*n);,printf(*n);,printf(*n);,8,P4,8,PPT课件,无参无返回值的函数的调用一般形式:函数名();#includ,/*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);,printf(*n);,9,例:,sample01_04.c,函数声明(主函数前),p84,(,2,),函数调用,函数定义,调用自定义函数,,(),中可不包括任何内容,但,(),一定要写。,可放在,main,函数之前,也可放在,main,函数的后面。但不能放在,main,函数的函数体中,函数和函数之间地位是平等的,没有嵌套关系。只有嵌套调用。,告诉编译器,存在这样一个用户自定义的函数,及它的调用方法:名称、参数、返回值。,主调函数,被调函数,预处理,9,PPT课件,/*a program to output a trian,10,执行流程,程序的执行顺序,从,main,函数开始执行,执行完,main,函数即结束执行。,遇到调用函数,转向执行被调函数,执行完被调函数后,返回调用函数的调用处,继续向下执行。,程序的书写顺序,与执行顺序有关顺序执行。,分支或循环会改变顺序,函数的书写顺序,与执行顺序无关,函数定义若写在函数调用之前,,函数声明,可省略,但不主张。,#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();,10,PPT课件,10执行流程程序的执行顺序程序的书写顺序#include,11,完成画简图(,女孩,)的程序,打印图形,女孩,房子,男孩,11,PPT课件,11完成画简图(女孩)的程序打印图形11PPT课件,12,sample01_03.c,完成画,基本组件,的函数,画一个圆,画一个横线,画一个平行线,画一个交叉线,完成画,三角形,的函数,画一个交叉线,画一个横线,在,main,函数中调用子函数完成画小,女孩,画一个圆,画三角形,画一个交叉,线,12,PPT课件,12sample01_03.c完成画基本组件的函数在main,13,完成画基本组件的函数,/*Draw a,circle,*/,void draw_circle(,void,),printf(*n);,printf(*n);,printf(*n);,Draw,绘画,Circle,圆,/*Draw,intersecting lines,*/,void draw_intersect(,void,),/*Use 2 s to print 1*/,printf(/n);,printf(/n);,printf(/n);,intersecting lines,相交线,13,PPT课件,13完成画基本组件的函数/*Draw a circle*/,14,完成画基本组件的函数,/*Draws a,base line,*/,void draw_base(void),printf(-n);,base line,基(横)线,/*Draw a,parallel,*/,void draw_parallel(void),printf(|n);,printf(|n);,Parallel,平行线,14,PPT课件,14完成画基本组件的函数/*Draws a base lin,15,完成画三角形的函数,/*Draws a triangle*/,void draw_triangle(void),draw_intersect();/*,画,相交线,*,/,draw_base();/*,画,横线,*,/,15,PPT课件,15完成画三角形的函数/*Draws a triangle*,画小女孩,#include,/*function prototypes*/,void draw_circle(void);,/,圆,void draw_intersect(void);,/,相交线,void draw_base(void);,/,横线,void draw_triangle(void);,/,三角形,int main(void),/*Draw a circle*/,draw_circle();,/*Draw a triangle*/,draw_triangle();,/*Draw intersecting lines*/,draw_intersect();,return 0;,Function,函数,Prototype,原型,16,PPT课件,画小女孩#include int mai,17,执行示例,main,(画女孩),画圆,画三角形,画交叉线,画交叉线,画横线,17,PPT课件,17执行示例main(画女孩)画圆画三角形画交叉线画交叉线画,18,思考,main,函数中三条语句功能还不明显,可增加一个函数,draw_girl,画小女孩,请修改程序,画女孩,画圆,画三角形,画交叉线,画交叉线,画横线,main,18,PPT课件,18思考 main函数中三条语句功能还不明显,可增加一个函数,19,画小女孩函数,/*Draws a girl */,void draw_girl(void),/*Draw a circle.*/,draw_circle();,/*Draw a triangle.*/,draw_triangle();,/*Draw intersecting lines.*/,draw_intersect();,19,PPT课件,19画小女孩函数/*Draws a girl */19P,20,完成画小女孩程序,#include,/*function prototypes*/,void draw_circle(void);,void draw_intersect(void);,void draw_base(void);,void draw_triangle(void);,void draw_girl(void);,int main(void),draw_girl();,return 0;,20,PPT课件,20完成画小女孩程序#include in,21,改错题,error1_6.c,void 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);,print,S,tar();,sayHello();,print,S,tar();,void printStar(void),printf(,*,);,void sayHello(void),printf(,hello world!);,21,PPT课件,21改错题 error1_6.cP2#include st,2.,有参,无返回值,函数定义,P87,void,函数名(,形参表,),/*,函数首部*,/,函数实现过程,/*,函数体*,/,return,;,/*,可以省略,return*/,注:这类函数通常用于屏幕输出等,表示不返回结果,不能省略,否则,函数类型被默认定义为,int,22,PPT课件,2.有参无返回值函数定义P87void 函数名(形参表),参数,参数的作用,实现值的传递,主调函数向被调函数传递值,实际参数(实参),被调函数处理所需要的数据。,函数调用,被调函数向主调函数传递值,形式参数(形参),被调函数向主调函数传递被调函数运行结果的数据。,函数定义,23,PPT课件,参数参数的作用实现值的传递23PPT课件,3.,有参有返回值函数定义,程序解析计算圆柱体积,【,例,】,输入圆柱,体,的高,h,和半径,r,,求圆柱体积,,,volume=,*r,2,*h,。,要求定义,并,调用函数,cylinder(r,h),计算圆柱体的体积。,cylinder,圆柱体,volume,体积,24,PPT课件,3.有参有返回值函数定义 程序解析计算圆柱体积【例】输,/*,计算圆柱体积*,/,#include,int,main,(void),double height,radius,volume;,double cylinder(double r,double h);,/*,函数声明,*,/,/*,函数类型 函数名,类型 名称 类型 名称,*,/,/*,实参表,*,/,printf(Enter radius and height:);,scanf(%lf%lf,/*,调用函数,,返回值赋给,volume*/,volume=,cylinder(radius,height);,printf(Volume=%.3fn,volume);,return 0;,【,例,】,源程序,25,PPT课件,/*计算圆柱体积*/【例】源程序25PPT课件,Cylinder,函数,/*,函数定义:,求圆柱体积*,/,double cylinder(double r,double h),/*,函数类型 函数名,类型 名称 类型 名称,*,/,/*,形参表,*,/,double result;,result=3.1415926*r*r*h;/*,计算体积*,/,return result;,/*,返回结果*,/,Enter radius and height:,3.0 10,Volume=282.743,注:主函数完成输入输出,26,PPT课件,Cylinder函数/*函数定义:求圆柱体积*/Enter,1,返回运算结果的函数定义,函数类型 函数名(形参表),/*,函数首部*,/,函数实现过程,/*,函数体*,/,return,表达式;,将函数运算的结果回送给主调函数,注:,只能返回一个值,函数返回值的类型,注:没有分号,double cylinder(double r,double h),double result;,result=3.1415926*r*r*h;,return result;,27,PPT课件,1返回运算结果的函数定义函数类型 函数名(形参表)/*,函数定义,形参,类型,1,参数,1,,类型,2,参数,2,,,,类型,n,参数,n,参数之间用逗号分隔,每个参数前面的类型都必须分别声明,函数类型 函数名(,形参表,),函数实现过程,return,表达式;,不能写成,double r,h,double cylinder,(,double r,double h,),double result;,result=3.1415926*r*r*h;,return result;,P2,28,PPT课件,函数定义形参类型1 参数1,类型2 参数2,,课堂练习:定义判断奇偶数的函数,even(n),int even(int n)/*,函数首部*,/,if(n%2=0)/*,判别奇偶数*,/,return 1;,/*,偶数返回,1*/,else,return 0;,/*,奇数返回,0*/,分析:,功能:判断奇偶数,形式参数:整数,n,返回值:当,n,为偶数时返回,1,,否则返回,0,。,29,PPT课件,课堂练习:定义判断奇偶数的函数even(n)int eve,函数类型 函数名,(,参数表,);,void triangle,(void);,void pyramid(int n);,double cylinder(double r,double h);,函数必须先定义后调用。,如果自定义函数在主调函数的后面,就需要在函数调用前,加上,函数原型声明,。,函数声明:说明函数的类型和参数的情况,以保证程序编译时能判断对该函数的调用是否正确。书写位置:,写在“,main”,里,函数体开始位置。,写在“,main”,前。,在主调函数前,函数(原型)声明,注:只写函数定义中的第,1,行(函数首部),并以分号结束。,无参无返回值函数声明,有参无返回值函数声明,有参有返回值,30,PPT课件,函数类型 函数名(参数表);函数(原型)声明注:只写函数定义,函数调用,P89,函数定义后,可以在其它函数中调用该函数;或自己调用自己嵌套调用。,调用,C,标准库函数时,在程序的最前面用,#include,命令包含相应的头文件。如:,#include,调用自定义函数时,程序中必须有与调用函数相对应的,函数声明,。,double cylinder(double r,double h);,volume=,cylinder(radius,height);,函数调用,31,PPT课件,函数调用P89函数定义后,可以在其它函数中调用该函数;或自己,1.,函数调用的形式和过程,使用(带)返回值:,volume=,cylinder(radius,height),;,printf(“%f n”,cylinder(radius,height),);,完成操作(无返回值):,pyramid(5);/,有参,triangle(),;,/,无参,常用于,void,类型函数的调用,常用于有返回结果的函数的调用,常量、变量、表达式,函数名,(,实参表,),32,PPT课件,1.函数调用的形式和过程使用(带)返回值:常用于void类型,函数调用的过程,计算机在执行程序时,从主函数,main,开始执行,如果遇到某个函数调用,暂停执行主函数,转而执行相应的被调函数,该函数执行完后,将返回主函数,然后再从原先暂停的位置继续执行。,函数遇,return,或最后的大括号,返回主函数。,示意图,33,PPT课件,函数调用的过程计算机在执行程序时,从主函数main开始执行,,#include,int main(void),double height,radius,volume;,double cylinder(double r,double h),;,printf(Enter radius and height:);,scanf(%lf%lf,volume=,cylinder(radius,height),;,printf(Volume=%.3fn,volume);,return 0;,double cylinder(double r,double h),double result;,result=3.1415926*r*r*h;,return result;,调用,函数,实参,形参,执行函数中的语句,返回调用它的地方,函数,声明,;,结束,函数,定义空格结束,分析函数调用的过程,34,PPT课件,#include 调用函数实参形参执行函,2.,参数传递,P91,函数,定义,时的参数,形式参数,(简称,形参,),double cylinder(double,r,double,h,),;,函数,调用,时的参数,实际参数,(简称,实参,),volume=cylinder(,radius,height,);,为,形参,分配存储单元,实参,形参,的,单向传递,,实参,把值复制给,形参,实参,:常量、变量或表达式,形参,:变量,用于接受实参传递过来的值,形参,和,实参,一一对应:数量、类型和顺序均一致,调用结束后,释放,形参,存储单元;保留,实参,存储单元(值),35,PPT课件,2.参数传递P91函数定义时的参数形式参数(简称形参)3,3.,返回函数运行结果,P94,函数返回的两种情况,完成确定运算,并返回该运算结果返回给主调函数。,完成指定工作,没有确定的运算结果需返回给主调函数(函数类型,void,)。,函数返回结果的一般形式:,return,表达式;如,,return result;,return (,表达式,),;如,,return(,3.1415926*r*r*h,);,先求“表达式”值,再返回“表达式值”,return,语句,结束函数运行,带着运行结果返回主调函数,double cylinder(double r,double h),return 3.1415926*r*r*h;,double cylinder(double r,double),double result;,result=3.1415926*r*r*h;,return result;,36,PPT课件,3.返回函数运行结果P94函数返回的两种情况double c,课堂练习:,1,、请定义能够判断一整数奇偶性的函数,even(n),。,2,、用户从键盘输入一个整数,主函数通过调用,even(n),函数判断该数的奇偶性,并将判断结果打印输出。,#include,int even(int n)/*,函数首部*,/,if(n%2=0)/*,判别奇偶数*,/,return 1;,/*,偶数返回,1*/,else,return 0;,/*,奇数返回,0*/,void main(),int num,result;,printf(n,请输入一个整数:,);,scanf(%d,result=even(num);,if(result=1),printf(,该数为偶数。,);,else printf(,该数为奇数。,);,37,PPT课件,课堂练习:1、请定义能够判断一整数奇偶性的函数even(n,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!