C语言程序设计经典教程ppt课件.ppt
《C语言程序设计经典教程ppt课件.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计经典教程ppt课件.ppt(48页珍藏版)》请在三一办公上搜索。
1、1,第七章 函数,主要内容7.1 概述7.2 函数定义7.3 函数参数、函数调用和函数值的返回7.4 函数的嵌套与递归调用7.5 变量的作用域,2,重点,函数的定义和调用;函数参数(数组名作为函数的参数);局部变量。,3,7.1 概述,例7.1main()PrintStar();PrintMessage();PrintStar();PrintStar()printf(*n);PrintMessage()printf( Hellon);,主函数,两个自定义函数,*,Hello,*,4,说明:,一个源程序文件由一个或多个函数组成。一个源程序文件是一个编译单位。即以源程序单位进行编译。一个C程序由一
2、个或多个源程序文件组成。便于调试,提高开发效率。C程序总是从main函数开始执行,在调用完其他函数后返回到main函数。从main函数开始执行,不管将其写在前面、中间或最后。main函数是系统定义的。所有函数都是平行定义的(即不可以嵌套定义),但可以嵌套调用。,5,从用户角度看,C语言函数分为两种:库函数是系统提供的已设计好的函数,只要指定了要调用函数所在的库文件,就可以直接调用了。用户自定义函数是用户自己编写的用来解决具体问题的函数。从函数的形式看,函数分为两类:无参函数不需要向函数传递参数。有参函数需要向函数传递必要的参数。本章将要详细介绍的是用户自定义函数。,6,7.2 函数定义,函数定
3、义的一般形式类型符 函数名(形式参数说明表)说明部分语句部分,函数头(首部),函数体,int add(int x,int y)int sum;sum=x+y;return sum;,完整的函数定义,无参函数定义,空函数定义,int read() int x;scanf(%d,dummy() ,7,7.3 函数参数、函数值(返回值)及函数调用,7.3.1 函数的参数: 例7.2 main()int a=15,b=20,c;c=max(a+10,b); printf(Max=%d,c);int max(int x,int y)int z;z=xy?x:y;return z;,main函数,max函
4、数,25,20,25,25,8,说明:定义函数时,形参是变量,必须指定类型。形参变量需要的存储单元是在函数被调用时才给它分配,函数结束时予以释放。实参与形参在个数和类型上应一一对应。实参可以是常量、变量或表达式。但变量和表达式要有确定的值。如当a=10时:c=max(7,8);/* ok */c=max(a,2*4);/* ok */c=max(a,b);/* error, b没有确定的值 */C语言中,参数的传递是值传递,即单向传递。数据只能由实参传送给形参,而不由形参传回给实参。,9,7.3.2 函数的返回值通常,在调用一个函数时,都希望被调函数能返回一个确定的值。这就是函数的返回值。函数
5、的返回值是通过返回语句return实现的,返回语句的形式为:return; 或 return 表达式;前一种形式,函数返回值是不确定的,这时调用者一般对返回值不感兴趣,同时将函数说明成void类型。后一种形式,函数要把表达式的值返回给调用者。,10,说明:如果要从被调函数带回一个值,被调函数中必须要有return 表达式语句。函数中可以有多个return语句,执行到哪个,哪个就起作用且立即返回调用函数。例如:int max(int x,int y)if(xy) return x;elsereturn y;,11,函数的返回值要有一个确定的类型,应该在定义函数时指定。如:int max(x,y)
6、 /* max函数值为整型 */char letter(int asc) /* letter函数值为字符型 */long fact(int n) /* fact函数值为长整型 */为了明确函数不返回值,可用关键字void定义函数。如:void add(int x,int y)printf(Sum is %d,x+y);,12,例7.3,float power(float x,int n)float y=1;int i;for(i=1;i=n;i+)y*=x;return y;main()float a=2.5,c;int b=3;c=power(a,b);printf(%fn,c);,13,7
7、.3.3 函数的调用,函数调用的一般形式函数名(实参表)若是调用无参函数,则实参表可没有,但括号不可省。若实参表包含多个实参,则各参数之间用逗号隔开。实参与形参的个数应相等,类型应一致。实参与形参按顺序对应,一一传递数据。如:p=power(2.5,4);/* ok */q=power(2.5,3.8);/* error */s=power(2.5);/* error */t=power(5,3);/* ok */,14,函数调用的方式1函数语句:即把函数调用作为一个语句。如:PrintStar();printf(*); 这时不要求函数带回值,只要求完成一定的操作,通常将函数字义为void类型
8、。2函数表达式:函数出现在可以写表达式的地方,此时需要的是函数的值。如:c=2*max(a,b);printf(%d,max(a,b);,15,对被调函数的声明 main() int a=10,b=20,c; c=max(a,b); printf(%dn,c);int max(int x,int y) return xy?x:y;怎样使这些信息正确呢?,C编译系统假定: 1、函数名:max 2、函数类型:int根据扫描得知: 3、有两个参数 4、每一个参数的类型均为int,该函数与已知信息相符。,float,float,float,float,%f,由于类型的变化,使该函数与已知信息不相符。这
9、句有错误!,float,对被调函数的声明,16,函数声明有三种格式:格式1:函数类型 函数名(形参说明表);格式2:函数类型 函数名(形参类型表);格式3:函数类型 函数名( );如:int max(int x,int y);int max(int,int);int max();,函数原型,17,例7.4 函数声明,#include main() float max(float x,float y);float a=10,b=20,c;c=max(a,b);printf(%fn,c);float max(float x,float y) return xy?x:y;,18,不必函数声明的情况:
10、当函数定义出现在主调函数之前,可不必函数声明。函数定义包括了函数声明。例7.4.1 如果被调函数的函数值为int类型,也可以不必函数声明。 例7.2,19,函数定义在主函数之前,可无函数声明,例 7.4.1#include float max(float x,float y) return xy?x:y;main()float a=10,b=20,c;c=max(a,b);printf(%fn,c);,20,被调函数的函数值为int类型,可无函数声明。,例7.2 main()int a=15,b=20,c;c=max(a+10,b); printf(Max=%d,c);int max(int
11、x,int y)int z;z=xy?x:y;return z;,21,7.3.4 数组作函数参数,函数实参可以为变量。数组元素同样是变量(下标变量),也可以作函数的实参。此外,数组名也可以作函数的参数,传递整个数组。 数组元素作函数的实参数组元素作函数实参的用法与普通变量的用法一致,是单向传递。例7.5 找出数组中的最大值,22,例7.5 找出数组中的最大值,int max(int x,int y)return xy?x:y;main()int a=8,7,55,23,49;int i,m;m=a0;for(i=1;i5;i+)m=max(m,ai);/* 数组元素作实参 */printf(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 经典 教程 ppt 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-1375832.html