资源预览内容
第1页 / 共29页
第2页 / 共29页
第3页 / 共29页
第4页 / 共29页
第5页 / 共29页
第6页 / 共29页
第7页 / 共29页
第8页 / 共29页
第9页 / 共29页
第10页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第3章第8次课-函数的定义、声明和调用C语言与数据结构又开始学习 新的一章了第3章第8次课-函数的定义、声明和调用C语言与数据结构教学主题函数的定义、声明和调用教学目标通过过本次课课的学习习,使学生掌握函数的 定义义、声明及调调用方法,函数之间间参数传传 递递的方法。教学重点1函数的定义义、声明及调调用2函数的形参、实实参、参数的传递传递3函数的返回值值教学难点1函数的定义义、声明及调调用三者的区 别别2函数参数的传递传递 方法教案第3章第8次课-函数的定义、声明和调用C语言与数据结构主要内容 函数的全面认识 函数的定义 函数的调用 函数的声明 函数的形参和实参 函数的返回值第3章第8次课-函数的定义、声明和调用C语言与数据结构本章任务编写(简易)成绩管理系统的主菜单框架,有 输入成绩、计算总成绩、计算平均成绩、输出成绩 等菜单项。第3章第8次课-函数的定义、声明和调用C语言与数据结构函数的全面认识 什么是函数? 函数是一个完成特定功能的程序段。 用户可以把程序编写成一个个相对独立的函 数模块,然后用调用的方法来实现所要求的功能。 采用函数结构的好处? 使程序层次结构清晰。 便于程序的编写、阅读和调试。第3章第8次课-函数的定义、声明和调用C语言与数据结构函数的全面认识 一个C程序由一个主函数和若干个其它函数构成 。 所有函数都是平行的,即在定义时相互独立的, 函数不能嵌套定义。 由主函数调用其它函数,其它函数之间可以相互 调用。同一个函数可以被一个或多个函数调用任意 多次。 C程序总是从main函数开始执行,main函数执行 完,整个C程序也就结束。第3章第8次课-函数的定义、声明和调用C语言与数据结构函数的全面认识 在C语言中,函数有两种:标准库函数、用户自定 义函数。 C语言中的标准库函数是系统提供的,主要提供一 些基本的功能。比如前面提到的输入输出函数、数 学函数等。 在使用这些库函数的时候,必须包含该函数声明 所在的头文件。例如,使用scanf和printf时,要在程序开始处加下 面一行。#include “stdio.h”第3章第8次课-函数的定义、声明和调用C语言与数据结构函数的定义 定义的位置 在语言中,所有的函数定义(包括主函数main在内 )都是平行的。也就是说,在一个函数的函数体内, 不能再定义另一个函数, 即函数不能嵌套定义。第3章第8次课-函数的定义、声明和调用C语言与数据结构函数的定义 函数定义的一般形式:有两种。格式2: 类型标识符 函数名(类型 形参1,类型 形参n) 函数体 格式1: 类型标识符 函数名(形参表) 形参类型说明; 函数体 说明函数的返回值类型, 可以是任何一种有效类型 ,当返回值是int或char时 可以省略,不需要返回值 时写成void。必须是一个合 法的标识符。TC中两种格式都可以用, VC环境中用格式2。第3章第8次课-函数的定义、声明和调用C语言与数据结构函数定义举例 【问题1】编编写函数max(),求整型a、b的较较大数, 并作为为函数值值返回。 用格式1编码编码 如下: int max( a, b ) int a, b; int c;c = a=b?a:b;return c; 函数头部函数名为max函数返回值类型为int有a、b两个形参,类型为整型函数体将变量c的值作为函数值返回,其类型为int,和上面一致。第3章第8次课-函数的定义、声明和调用C语言与数据结构函数定义举例 【问题1】编编写函数max(),求整型a、b的较较大数, 并作为为函数值值返回。 用格式2编码编码 如下: int max( int a, int b ) int c;c = a=b?a:b;return c; 提倡大家用格式2第3章第8次课-函数的定义、声明和调用C语言与数据结构函数的调用 在完成函数的定义以后,就可以调用函数了。 函数调用的一般形式函数名(实参表列)如果调用的是无参函数, 则“实参表列”可以没有, 但括弧不能省略。第3章第8次课-函数的定义、声明和调用C语言与数据结构函数的调用 函数调用的方式主要有三种情况: 函数语句:适合于无返回值的函数,或者不需要使 用返回值的函数。例如: printf( “hello!” ); 函数表达式:出现在一个表达式中,此时使用函数 的返回值,并将此返回值作为运算对象参与表达式的 运算。例如: c=3*max(a,b); 函数参数:将函数调用作为一个函数的实参。例如: d=max( c, max(a,b) );第3章第8次课-函数的定义、声明和调用C语言与数据结构函数调用举例 【问题2】利用前面的max函数,编写main函数, 实现求三个整数的最大数。 源程序 void main() int a,b,c,d;scanf(“%d,%d,%d“, d=max(c,max(a,b); printf(“MAX=%d“,d); 思考 有几处函数调用? 分别是哪种调用方式?运行程序 (7_2)看源程序 (7_2)第3章第8次课-函数的定义、声明和调用C语言与数据结构函数调用举例 【问题3】编写程序,实现求三个实数的最大数。运行程序 (7_3)看源程序 (7_3) 思考 将两个函数的位置前后交换一下,结果如何?调用集成开发环境演示!第3章第8次课-函数的定义、声明和调用C语言与数据结构函数的声明 被调函数应具备的条件: 必须已存在(定义); 如是库函数,应该在本文件的开头用#include命 令将有关的头文件包含到本文件中。 如是用户自定义函数,并且定义在后调用在前, 则必须在调用之前对被调函数作声明。 第3章第8次课-函数的定义、声明和调用C语言与数据结构函数的声明 函数声明的一般格式:类型标识符 函数名(类型 形参,类型 形参);例如:double max(double a, double b ); 注意 函数声明(函数首部加一个分号)和函数定义( 对函数功能的确立)的不同。 在函数声明中可以不写形参名,而只写形参的类 型。例如:double max(double, double );不可少第3章第8次课-函数的定义、声明和调用C语言与数据结构再看问题3 【问题3】编写程序,实现求三个实数的最大数。运行程序 (7_3_1)看源程序 (7_3_1) 思考 将两个函数的位置前后交换一下,结果如何?解决办法:对函数进行声明。第3章第8次课-函数的定义、声明和调用C语言与数据结构函数定义、调用、声明三者关系 函数定义、函数调用、函数声明三者的区别: 函数定义是实现一定功能的程序段。 函数调用是对函数的使用。 函数声明是说明语句,说明函数的返回值类型、 函数参数的个数及类型。第3章第8次课-函数的定义、声明和调用C语言与数据结构double max( double a, double b ); void main() double a,b,c,d;printf( “请输入3个实数(以逗号隔开):“ );scanf(“%lf,%lf,%lf“, d=max(c,max(a,b); printf(“MAX=%lfn“,d); double max( double a, double b ) double c;c = a=b?a:b;return c; 函数定义、调用、声明三者关系函数调用函数声明函数定义第3章第8次课-函数的定义、声明和调用C语言与数据结构函数的形参和实参 形参(形式参数的简称):在函数的定义和声明语 句中,函数名后面括号中的参数。 实参(实际参数的简称):在函数的调用语句中, 函数名后面括号中的参数。 形参和实参是主调函数和被调函数进行信息通信的 接口。 传递给 实参 形参第3章第8次课-函数的定义、声明和调用C语言与数据结构参数传递规则 在实参向形参传送参数的过程中,遵循如下的规则: 数目一致、类型兼容。 实参可以是常量、变量或表达式,但它们应有确定的值 ;形参只能是变量,而且形参随着函数被调用而占有内存单 元,函数调用结束时,其所占内存单元也释放。 如同时有多个实参,实参的求值顺序有的系统是自左而 右,有的系统是自右而左。Turbo c 和 MS c 是自右而左顺 序求值。单向值传递,即:只由实参传给形参,而不能由形参传 回来给实参(换言之,形参的值的变化不会影响实参)。运行程序 (7_3_2)看源程序 (7_3_2)第3章第8次课-函数的定义、声明和调用C语言与数据结构参数传递举例 【问题4】输入两个数,并求和。要求用函数实现求 和。运行程序 (7_4)看源程序 (7_4) 思考上述程序能实现求和吗?为什么?由于参数采用“单向值传递”, 所以变量c不能得到正确的结果。第3章第8次课-函数的定义、声明和调用C语言与数据结构函数的返回值 通常,函数运算结果由函数返回值返回的。 函数的返回值是通过函数中的return语句获得。 函数返回值的类型应当在定义函数时指定。 函数返回值的类型和return语句中表达式的类型 不一致时,则以函数返回值类型为准。 如果不使用return语句,则带回一个不确定的值 。 为了明确表示“不带回值”,可以使用“void” 定义成“无类型”。 第3章第8次课-函数的定义、声明和调用C语言与数据结构再看问题4 【问题4】输入两个数,并求和。要求用函数实现求和。 正确的源程序运行程序 (7_4_1)int sum(int x, int y) int z;z=x+y;return z; void main() int a,b,c=0;scanf(“%d%d“,c=sum (a,b);printf(“%d+%d=%d“,a,b,c); 通过return语句 返回和值函数返回值类型函数调用方式第3章第8次课-函数的定义、声明和调用C语言与数据结构函数返回值说明 一般情况,一个函数只能返回一个值。 如果需要函数有两个及以上返回值时,可用传递 指针、数组名等方式来实现。具体方法在以后章节 中介绍。第3章第8次课-函数的定义、声明和调用C语言与数据结构函数举举例【问题5】编程计算: 。 要求:用函数实现 求阶乘。 流程图看源程序 (7_5)运行程序 (7_5) 源程序第3章第8次课-函数的定义、声明和调用C语言与数据结构本次课总结 函数的全面认识 C程序由一个主函数和若干个其它函数构成。 函数有两种:标准库函数、用户自定义函数。 C程序从main函数开始执行,到main函数结束。 函数的定义 函数的调用 函数的声明 函数的形参和实参单向值传递 函数的返回值三者的区别通过return语句实现第3章第8次课-函数的定义、声明和调用C语言与数据结构下课
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号