C语言程序设计.ppt
《C语言程序设计.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计,1,六、函数,教学目标:函数的概念、定义、调用和返回 带自定义函数的程序设计 递推算法 递归思想及算法实现函数的参数传递方式,C语言程序设计,2,六、函数,6.1 函数概论任务6.1 从键盘输入一个正整数a,编一个程序判断a是否为素数。可以设计一个函数int checkPrime(int n),让该函数负责检查n是否为素数,如果是,返回1,否则返回0.参考程序:程序6_1.cpp,C语言程序设计,3,6.1 函数概论,6.1.1 函数的说明在全局上,自定义函数应该在主函数之前有一个说明,目的是告诉系统在程序中要用到一个自定义函数,被主函数直接或间接调用。说明的时候就要写清楚这个
2、函数的数据类型是什么,自变量有几个,都是什么数据类型。如任务6.1的函数int ckeckPrim(int n);说明自变量只有一个,是整型,函数的数值也是整型。函数的取值称为函数的返回值。这里用1表示真,0表示假。,C语言程序设计,4,6.1.2 函数的定义方法,类型标志符 函数名(形参列表) 参数定义 语句组,类型标志符:表明函数返回值的类型。如果省略,系统则认为是int型的。,函数名:命名规则同变量名。用于调用该函数。,形参列表:定义要传值的局部变量,保存调用该函数时的输入信息。形参多于一个时,用逗号分隔。没有形参时,括号不能省略。形参列表的方式如下:类型标志符 参数名1,类型标志符 参
3、数名2,,函数体:该函数功能具体的实现过程。通常包括若干变量的定义和若干语句。函数体由一对大括号和其中包括的语句组构成。参数定义指不传值的局部变量定义,大括号内可为空,由类型标识符、函数名和形参列表组成的部分称为函数的首部。,C语言程序设计,5,6.1.2 函数的定义:例,int MaxInt(int x, int y) int z; z = x y ? x : y; return(z);,类型标志符:此处为int,表明该函数的返回值类型是int型的。,函数名:为MaxInt。以后就使用这个名字调用该函数。,形参列表:有2个形参,分别是int型变量x和int型变量y。它们用于保存调用该函数时传
4、递进来的输入信息。,函数体:实现该函数的功能。对由调用者传递进来保存在形参中的数据进行有关处理后,将结果通过return语句返回给调用者。,C语言程序设计,6,6.1.3 函数的返回值,函数一般是由主函数调用(当然也可由别的函数或这个函数自已来调用),调用函数的目的是让它计算某一函数的值,这个值通过return语句返回给调用它的函数,格式为return(表达式);或return 表达式;如果不需返回数值,则用return;有调用就要有返回,函数中一定要有return出现,注意养成这个好习惯。,C语言程序设计,7,6.1.4 函数的调用,函数一经定义,以其名为标记的一片内存地址就被该函数所占有。
5、在这片地址中存储着相关的一系列指令。因此在程序中出现该函数名,就意味着程序转到这一片内存地址,调用这个函数,执行了相关的一系列程序指令。,C语言程序设计,8,6.1.4 函数的调用,函数的调用方式(1)对于有返回值的函数,可视其为表达式,可放在任何可放的地方。比如任务6.1中的checkPrime函数就放在if语句的表达式中。(2)对于没有返回值的函数,一般在程序中作为独立一条语句出现,不以表达式形式出现。 如return(a);,C语言程序设计,9,函数调用的一般形式为:函数名(实参列表);如果是无参函数,则没有实参列表,但是括号不能省略;如果实参多于一个,则用逗号分隔。,6.1.4 函数的
6、调用,调用一个函数时,一定要保证实参和形参的一致,即在参数数量、类型和顺序上都要一致。,调用一个函数时,要发生由实参到形参的“单向值传递”的参数传递过程。,?,为什么用函数名就可以调用一个函数,因为函数名中包含了该函数的入口地址信息,即函数名是一个指向函数入口地址的常量指针。,C语言程序设计,10,函数参数的作用用于在调用某个函数时由调用者向该被调用函数传递信息。,6.1.5 函数的参数,对函数的进一步理解可以把一个函数理解为一个“黑箱”,使用者使用该“黑箱”时,提供了加工的信息输入到“黑箱”中,该“黑箱”按照预先设计的功能对接收到的这些符合预定要求的输入信息进行加工,然后返回输出信息给使用者
7、。,函数,输入信息,输出信息,可见,要想形成一个函数,必须要设计好它可以接收什么样的输入信息,又输出什么样的信息,即必须设计好函数的接口。,C语言程序设计,11,定义函数时出现在函数名后括号中的参数即是形式参数。之所以称为形式参数,是因为在定义函数时这些参数并不具有具体的值,而只是代表某个数据类型的一个变量。,函数的形式参数,函数形参的作用形参就是函数的输入接口:使用者在调用该函数时提供的输入信息被传递给相应的形式参数,然后函数按照预先设计的程序对形参进行处理,实际上就是对传递进来的数据进行处理。 在函数未被调用时,系统不对形参分配内存单元。在函数调用时,系统立刻给形参分配内存单元;调用结束后
8、,再释放形式参数所占的内存单元。因此形式参数属于局部变量,其作用域限定在它所在的函数体内,编写一个函数时很重要一个工作就是要确定形参(数量、类型、意义、作用)。,C语言程序设计,12,调用函数时出现在函数名后括号中的参数即是实际参数。之所以称为实际参数,是因为在调用函数时这些参数必须具有实际的值,才能用于去调用函数。实参可以使常量、变量或表达式。实际参数是一个具有确定值的表达式。函数调用时,要将实际参数赋给形式参数。,函数的实际参数,调用函数时给出的实参必须和形参一致实参必须和形参在数量、顺序、类型上一致才能正确调用。,C语言程序设计,13,int func(int x, int y, cha
9、r op) int z; switch(op) case + : z = x + y; break; case - : z = x - y;break; case * : z = x * y; break; case / : z = x / y; break; return(z);,函数的参数:例,result = func(3, 5, *);,定义函数时的参数是形式参数。,调用函数时的参数是实际参数。,C语言程序设计,14,函数调用的内部过程是:出现函数调用时,主调函数的执行过程暂时停止,在进行了必要的“现场”保存工作后,转去执行被调用函数的代码,待被调用函数执行完毕返回后,首先恢复刚才保存
10、的“现场”,然后继续主调函数的执行。,6.1.6 函数的调用和返回,C语言程序设计,15,任务6.1的调用过程,C语言程序设计,16,函数原型声明的方法函数返回值类型 函数名 (形参列表) ;形参列表可以只是形参类型列表,不指出形参的名字,函数原型声明的方法和位置,函数原型声明的位置:,放在所有函数外面,源程序文件开头的地方。优点:凡是在该声明之后定义的函数,无需再进行函数原 型声明即可调用该函数。,C语言程序设计,17,Int func(int x, int y, char op) ,函数原型声明:例,int func(int x, int y, char op) ;int main() i
11、nt a = 3, b = 5, result; result = func(a, b, * ); ,在所有函数之外,源程序文件开头进行函数原型声明。,注意:有分号,注意:没有分号,C语言程序设计,18,6.2 递推,递推是计算机数值计算中的一个重要算法。思路是通过数学推导,将复杂的运算化解为若干重复的简单运算,以充分发挥计算机长于重复计算的特点。任务6.3 A,B,C,D,E合伙夜间捕鱼,凌晨时都疲惫不堪,各自在河边的树丛中找地方睡着了。日上三竿,A第一个醒来,他将鱼平分成5份,把多余的一条扔回湖中,拿自己的一份回家去了;B第二个醒来,也将鱼平分为5份,扔掉多余的一条,只拿走自己的一份;接着
12、C,D,E依次醒来,也都按同样的办法分鱼。问5人至少合伙捕到多少条鱼?每个人醒来后看到的鱼数是多少条?,C语言程序设计,19,任务6.3,解题思路假定A,B,C,D,E的编号为1,2,3,4,5,整数数组fishk表示第k个人所看到的鱼数。显然:fish1=5人合伙捕到的总鱼数fisk2=(fish1-1)*4/5fish3=(fish2-1)*4/5fish4=(fish3-1)*4/5fish5=(fish4-1)*4/5即fishi=(fishi-1-1)*4/5,且fishi-1%5=1或fishi-1=fishi*5/4+1,且fishi%4=0(i1),C语言程序设计,20,任务6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计
限制150内