函数与程序结构课件优秀PPT.ppt
《函数与程序结构课件优秀PPT.ppt》由会员分享,可在线阅读,更多相关《函数与程序结构课件优秀PPT.ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、函数与程序结构课件函数与程序结构课件第1页,本讲稿共42页5.1 C程序的一般结构程序的一般结构5.1.1 模块化程序设计模块化程序设计n一个较大的程序一般应分为若干个程序一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的模块,每一个模块用来实现一个特定的功能。功能。nC语言中,模块使用函数实现的。语言中,模块使用函数实现的。第2页,本讲稿共42页5.1.2 C程序的一般结构程序的一般结构 n函数函数:构成构成C语言程序的基本功能模块,是一段语言程序的基本功能模块,是一段程序,它完成一项相对独立的任务。程序,它完成一项相对独立的任务。例如:例如:printf();mainab
2、cdefhg第3页,本讲稿共42页n一个一个c程序由一个主函数和若干个函数组程序由一个主函数和若干个函数组成成 nC程序的执行总是从主函数开始,又从主程序的执行总是从主函数开始,又从主函数结束,其他函数只有通过调用关系函数结束,其他函数只有通过调用关系发生作用。发生作用。n函数相互独立,不能嵌套定义函数相互独立,不能嵌套定义。第4页,本讲稿共42页n 从用户使用的角度看,函数有两种:从用户使用的角度看,函数有两种:(1)标准函数,即库函数标准函数,即库函数(2)用户自己定义的函数用户自己定义的函数n从函数的形式看,函数分两类:从函数的形式看,函数分两类:(1)无参函数无参函数 一般用来执行指定
3、的一组操作。一般用来执行指定的一组操作。(2)有参函数有参函数 例:例:e5-1.c e5-1-2.c第5页,本讲稿共42页5.2 函数的定义与调用函数的定义与调用5.2.1函数的定义函数的定义函数定义的一般形式为函数定义的一般形式为类型标识符类型标识符函数名(形参表列)函数名(形参表列)说明部分说明部分语句部分语句部分没有形式参数没有形式参数为无参函数为无参函数 第6页,本讲稿共42页在定义在定义C函数时要注意以下几点。函数时要注意以下几点。(1)函数类型标识符同变量类型说明符,它表示返回的函数)函数类型标识符同变量类型说明符,它表示返回的函数值类型。值类型。(2)如果省略函数的类型标识符,
4、则默认为是)如果省略函数的类型标识符,则默认为是int型。型。(3)C语言允许定义空函数。如语言允许定义空函数。如dummy()(4)如果)如果“形参表列形参表列”中有多个形式参数,则它们之间要中有多个形式参数,则它们之间要用用“,”分隔。分隔。(5)C函数不能嵌套定义。函数不能嵌套定义。第7页,本讲稿共42页(6)函数中返回语句的形式为)函数中返回语句的形式为return(表达式);(表达式);或或return表达式;表达式;注:如函数不需要有返回值时,函数名前最好加一个注:如函数不需要有返回值时,函数名前最好加一个void,此时,此时return后的表达式可以省略。后的表达式可以省略。例:
5、例:e5-1-1.ce5-2.c第8页,本讲稿共42页5.2.2 函数的调用函数的调用 n函数调用的函数调用的一般形式为:为:函数名函数名(实参表列实参表列);例:例:e5-2-1.c sum=1!+2!+3!+6!第9页,本讲稿共42页说明:说明:(1)调用函数时,函数名称必须与自定义函数名称完全一)调用函数时,函数名称必须与自定义函数名称完全一致。如果是调用无参函数则实参表列可以没有,但括弧致。如果是调用无参函数则实参表列可以没有,但括弧不能省略。不能省略。(2)实参可以是常数、变量或表达式。如果实参不止)实参可以是常数、变量或表达式。如果实参不止1个,个,则相邻实参之间用逗号分隔。则相邻
6、实参之间用逗号分隔。(3)实参的个数、类型和顺序,应该与被调用函数所要求)实参的个数、类型和顺序,应该与被调用函数所要求的参数个数、类型和顺序一致的参数个数、类型和顺序一致(4)对实参表求值的顺序并不是确定的。)对实参表求值的顺序并不是确定的。TurboC规定是自规定是自右至左顺序求值。右至左顺序求值。第10页,本讲稿共42页被调用函数的说明和函数原型被调用函数的说明和函数原型在调用自定义函数之前,应对该函数进行在调用自定义函数之前,应对该函数进行说明,说明,一般格式如下:一般格式如下:函数类型函数类型 函数名函数名(数据类型数据类型1 参数名参数名1 ,数据类型数据类型2 参数名参数名2);
7、例例 e5-4.c第11页,本讲稿共42页 但但C语言规定,在以下几种情况下可以不在调用函数语言规定,在以下几种情况下可以不在调用函数中对被调用函数作类型说明:中对被调用函数作类型说明:被调用函数为整型或字符型,自动按整型处理。被调用函数为整型或字符型,自动按整型处理。被调用函数的定义出现在调用函数之前。被调用函数的定义出现在调用函数之前。第12页,本讲稿共42页5.2.3 函数的参数传递函数的参数传递 Sub(x,y)s=a+b;returns;调用函数调用函数main()被调用函数被调用函数sub(a,b)数值传递数值传递:一个模块调用另一个模块时,直接将实参值传送给一个模块调用另一个模块
8、时,直接将实参值传送给形参被存放在形参地址中形参被存放在形参地址中第13页,本讲稿共42页【例例】调用函数时的数据传递。调用函数时的数据传递。#include#include void main()void main()int max(int,int);int max(int,int);int a,b,c;int a,b,c;printf(input integer a,b:);printf(input integer a,b:);scanf(%d,%d,&a,&b);scanf(%d,%d,&a,&b);c=max(a,b);c=max(a,b);printf(max is%dn,c);pr
9、intf(max is%dn,c);int max(int x,int y)int max(int x,int y)int z;int z;z=xy?x:y;z=xy?x:y;return(z);return(z);第14页,本讲稿共42页说明:说明:当函数被调用时才给形参分配内存单元。调用结束,所当函数被调用时才给形参分配内存单元。调用结束,所占内存被释放。占内存被释放。实参可以是常量、变量或表达式,但要求它们有确实参可以是常量、变量或表达式,但要求它们有确定的值。定的值。实参与形参类型要一致,字符型与整型可以兼容。实参与形参类型要一致,字符型与整型可以兼容。实参与形参的个数必须相等。在函数
10、调用时,实参的值实参与形参的个数必须相等。在函数调用时,实参的值赋给与之相对应的形参。赋给与之相对应的形参。“单向值传递单向值传递”。因此,在执行一个。因此,在执行一个被调用函数时,形参的值如果发生改变,并不会改变主调函数被调用函数时,形参的值如果发生改变,并不会改变主调函数的实参的值。的实参的值。第15页,本讲稿共42页例例分析下列分析下列C程序:程序:voidswap(x,y)intx,y;intt;tx;xy;yt;return;#includestdio.hmain()intx,y;scanf(x%d,y%d,&x,&y);swap(x,y);printf(x%d,y%dn,x,y);
11、第16页,本讲稿共42页5.3 局部变量与全局变量局部变量与全局变量5.3.1 局部变量局部变量n 在函数内部定义的变量称为局部变量。在函数内部定义的变量称为局部变量。n函数内部定义的变量只在该函数范围内函数内部定义的变量只在该函数范围内有效,有效,n不同函数中的局部变量可以重名,互不不同函数中的局部变量可以重名,互不混淆。混淆。第17页,本讲稿共42页floatf1(inta)intb,c;.Charf2(intx,inty)inti,j;main()intm,n;a,b,c作用范围作用范围x,y,i,j作用范围作用范围m,n作用范围作用范围第18页,本讲稿共42页5.3.2 全局变量全局变
12、量 在函数外定义的变量称为全局变量在函数外定义的变量称为全局变量(或外部变量或外部变量)。作用范围:从定义变量位置开始到本源文件结束作用范围:从定义变量位置开始到本源文件结束第19页,本讲稿共42页intp=1,q=5;floatf1(inta)intb,c;.charc1,c2;charf2(intx,inty)inti,j;main()intm,n;c1,c2作用范作用范围围p,q作用范围作用范围第20页,本讲稿共42页intx,y;voidswap()intt;t=x;x=y;y=t;return;#includestdio.hmain()printf(Pleaseinputxandy:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 函数 程序结构 课件 优秀 PPT
限制150内