工信版(中职)编程语言基础——C语言模块5教学课件
2022-10-26
|
86页
|
112人阅读
|
1人下载
普通
内容正文:
YCF
(中职)编程语言基础——C语言模块5教学课件
1
模块5函数
任务1 函数概述
任务2 函数的调用
任务3 函数的参数传递
任务4 函数的返回与返回值的传递
任务5 用数组作为函数参数
任务6 字符串参数的传递
任务7 变量的作用域和生存期
任务1函数概述
5.1.1 函数定义
函数定义的一般形式为:
(1)类型是函数的类型,也是该函数返回值的数据类型。
(2)函数名是标识符,可由用户指定。
(3)参数表部分可有可无。
(4)函数中由最外一层”{}”括起的部分为函数体,包括变量说明和语句,其中变量说明可有可无,语句也可有可无。
下一页
返回
任务1函数概述
【例5-1】函数定义的一个实例。
上一页
返回
下一页
任务1函数概述
5.1.2 函数的说明
在函数中调用某函数之前应对被调用函数进行说明,这与使用变量之前要先进行变量说明是一样的。在调用函数中对被调用函数作说明的目的是使编译系统知道被调用函数返回值的类型,以便在调用函数中按此种类型对返回值作相应的处理。
对被调用函数的说明也有两种格式,一种为传统方式,其一般格式为:
类型说明符被调用函数名();
这种格式只给出函数返回值的类型,被调用函数名及一个空括号。由于在括号中没有任何参数信息,因此不便于编译系统对错误进行检查,易发生错误。
上一页
返回
下一页
任务1函数概述
另一种为现代方式,其一般格式为:
类型说明符被调用函数名(类型形参,类型形参…)或类型说明符被调用函数名(类型,类型…);
现代格式的括号内给出了形参的类型和形参名,或只给出形参类型。这便于编译系统进行检错,以防止可能出现的错误。
C语言中规定在以下几种情况时,可以省去调用函数中对被调用函数的说明。
(1)如果被调用函数的返回值是整型或字符型时,可以不对被调用函数作说明,而直接调用。这时系统将自动对被调用函数返回值按整型处理。
(2)当被调用函数的函数定义出现在调用函数之前时,在调用函数中也可以不对被调用函数作说明而直接调用。
上一页
返回
下一页
任务1函数概述
(3)如在所有函数定义之前,在函数外预先说明了各个函数的类型,则在以后的各调用函数中,可不再对被调用函数作说明。例如:
上一页
返回
下一页
任务1函数概述
5.1.3 函数的介类
从用户的使用角度看,函数有两种:标准函数(或库函数)和用户自定义函数。
1. 标准函数(或库函数)
库函数是系统已经编好的函数,一个库函数就能实现一个特定的功能。C语言包括了丰富的库函数,详细情况见附录。关于库函数有以下几点说明。
调用标准库函数时要使用include命令,例如:#include < stdio. h >
对于每一类库函数,附录中都列出了在调用该类库函数时,用户在源程序include命令中应该包含的头文件名。
上一页
返回
下一页
任务1函数概述
调用数学库函数时,要用到以下的命令:
调用字符(串)函数时,要用到以下的命令:
2. 用户自己定义的函数
这种函数由用户自己编写,主要用于执行特定的功能,缩写用户自定义函数是使用C语言进行程序设计的重点。此外,从函数的形式来看,函数还可以分为无参函数和有参函数两种,这两种函数的详细情况将在后面介绍。
上一页
返回
任务2函数的调用
5.2.1 函数调用的方式
在C语言中,可以用以下几种方式调用函数:
函数表达式:函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。
函数语句:函数调用的一般形式加上分号即构成函数语句。
函数实参:函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。
返回
下一页
任务2函数的调用
5.2.2 函数的嵌套调用
C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用。即在被调函数中又调用其他函数。这与其他语言的子程序嵌套的情形是类似的。其关系可如图5-1所示。
图5-1表示了两层嵌套的情形。其执行过程是:执行main函数中调用a函数的语句时,即转去执行a函数,在a函数中调用b函数时,又转去执行b函数,b函数执行完毕返回a函数的断点继纯执行.a函数执行完毕返回main函数的断点继纯执行。
上一页
返回
下一页
任务2函数的调用
上一页
返回
下一页
任务2函数的调用
用图5-2表示求函数值s的嵌套调用。
上一页
返回
下一页
任务2函数的调用
5.2.3 函数的递归调用
一个函数在它的函数体内直接或间接调用它自身称为递归调用。这种函数称为递归函数。c语言允许函数的递归调用。递归调用有直接递归
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。