C语言课件 第9 10章.ppt
《C语言课件 第9 10章.ppt》由会员分享,可在线阅读,更多相关《C语言课件 第9 10章.ppt(44页珍藏版)》请在三一办公上搜索。
1、第9章 函数,函数的概述 函数的定义 函数的返回值与类型 函数的参数与传递方式 函数的调用 内部函数和外部函数 Main函数,9.1 函数的概述,9.1.1 什么是函数9.1.2 函数的分类,9.1.1 什么是函数,函数是C程序基本的组成单位。,范例9-1,9.1.2 函数的分类1.从函数定义的角度,可以将函数分为标准函数和用户自定义函数2.从有无返回值的角度,可以将函数分为有返回值函数和无返回值函数 3.从函数的形式看,可以分为有参函数和无参函数。,#includevoid printstar()printf(*);int sum(int a,int b)return a+b;void ma
2、in()int x=2,y=3,z;printstar();z=sum(x,y);printf(n%d+%d=%dn,x,y,z);printstar();,9.2 函数的定义,函数定义的一般形式是:函数类型 函数名(类型说明 变量名,类型说明 变量名.)函数体说明:函数名必须符合标识符的命名规则;函数类型规定了函数返回值类型;函数名后面圆括号括起来的部分称为形式参数列表(即形参列表);,【范例9-2】求最大值的函数的定义,int max(int a,int b)int c;c=ab?a:b;return c;,9.2 函数的定义,说明:函数体是由一对花括号“”括起来的语句序列,用于描述函数所
3、要执行的操作。函数体又包含了说明部分和执行部分。还有一类比较特殊的函数是空函数,即函数体内没有语句。如:void empty(),9.2 函数的定义,说明:C程序中所有的子函数都是平行的,它们之间可以相互调用,但是不能嵌套定义;int func_fst(int a,int b)/*第一个函数的定义*/.int func_snd(int c,int d)/*第二个函数的定义*/.在函数定义中,可以包含对其他函数的调用,后者又可以调用另外的函数,甚至自己调用自己,即递归调用。,9.3 函数的返回值及类型,9.3.1 函数的返回值9.3.2 函数的类型,9.3.1 函数的返回值函数的返回值是通过函数
4、中的return语句实现的。return语句有两种格式:return expression;或 return(expression);,【范例9-3】编写cube()函数用于计算x3。,9.3.2 函数的类型在定义函数时,必须指名函数的返回值类型;return语句中表达式的类型应该与函数定义时首部的函数类型是一致的;如果二者不一致,则以函数定义时函数首部的函数类型为准。,【范例9-4】改写范例9-3。,9.3.2 函数的类型如果一个函数不需要返回值时,则将该函数指定为void类型,此时函数体内不必使用return语句.一个函数中可以有一个以上的return语句,但不论执行到哪个 return都
5、将结束函数的调用返回主调函数,即带返回值的函数只能返回一个值。,*,【范例9-6】改写范例9-2。,【范例9-5】编写printdiamond()函数用于输出如下图形。,9.4 函数的参数与传递方式,9.4.1 函数的参数9.4.2 函数参数的传递方式,9.4.1 函数的参数函数的参数有两类:形式参数(简称形参)和实际参数(简称实参)。函数定义时的参数称为形参,函数调用时使用的参数称为实参。,【范例9-7】将两个数由小到大排序输出。,#includeint max(int a,int b)int c;c=ab?a:b;return c;void main()int x,y;printf(请输入
6、两个整数:);printf(%d和%d的最大值为:%dn,x,y,max(x,y);,9.4.1 函数的参数说明:定义函数时,必须说明形参的类型,只能是简单变量或数组,不能是常量或表达式;函数被调用前,形参不占用内存的存储单元;调用以后,形参才被分配内存单元,函数调用结束后,形参所占用的内存也将被回收,被释放;实参可以是常量、变量,其它构造数据类型或表达式;实参的个数、出现的顺序和实参的类型应该与函数定义中形参表的设计一一对应。,9.4.2 函数参数的传递方式实参对形参的数据传递是“值传递”,即单向传递。【范例9-8】使用函数交换两个变量的值。,9.5 函数的调用,9.5.1 函数调用方式9.
7、5.2 函数的声明9.5.3 函数的 嵌套调用9.5.4 函数的递归调用,9.5.1 函数调用方式函数调用的一般形式有两种:1.函数语句:函数名(实参表列);或 函数名();如:swap(x,y);2.函数表达式:如:m=max(a,b);m=3*max(a,b);printf(“Max is%d”,max(a,b);,【范例9-9】编写一个函数,求任意两个整数的最小公倍数。,不要求函数带返回值,必须有返回值,9.5.2 函数的声明函数声明采用函数原型的方法;有参函数声明形式为:函数类型 函数名(形参列表);无参函数的声明形式为:函数类型 函数名();注 意:(1)函数声明包含了函数的首部和一
8、个分号“:”,函数体不用写。(2)有参函数声明时的形参列表只需要把参数类型给出就可以,如:int power(int,int);(3)函数声明可以放在所有函数的前面,也可以放在主调函数内被调函数之前。,【范例9-10】编写一个函数,求半径为r的球的体积。球的半径r由用户输入。,9.5.3 函数的嵌套调用函数之间的关系是平行的,在函数定义时不能嵌套定义;但是C语言允许进行嵌套调用。,范例9-11,9.5.4 函数的递归调用在调用一个函数的过程中,又直接或者间接地调用了该函数本身,这种形式称为函数的递归调用,这个函数就称为递归函数。递归函数分为直接递归和间接递归两种:1、直接递归就是函数在处理过程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言课件 第9 10章 语言 课件 10
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2284327.html