重庆工学院:《C语言程序教程》第七章 函数

第占章 函数
6 第六章 函 数

第六章函数 要编好程序,就要合理地划分程序中的各个 程序块,C语言中称这种程序块为函数。 本章介绍函数的定义、调用方法及与函数应 用相关的问题。 2021年2月20日星期六
2 2021年2月20日星期六 第六章 函数 要编好程序,就要合理地划分程序中的各个 程序块,C语言中称这种程序块为函数。 本章介绍函数的定义、调用方法及与函数应 用相关的问题

6.1函数概述 函数( Function)是按给定的任务,把相关语句组织在一起 的程序块,也称为例程或过程。 函数分为标准库函数和用户自定义函数 标准库函数:可以在任何程序中使用的公共函数,由C 编译器提供。 用户自定义函数:必须按C要求通过函数定义、函数说 明,才能被调用,由用户自定义。 程序从main(开始,一个函数可以调用其他函数,也可 以被其他函数调用。 函数与函数之间通过传递参数和返回值相联系。 C不允许函数嵌套定义。在一个函数中再定义一个函数 是非法的。 2021年2月20日星期六
3 2021年2月20日星期六 函数(Function)是按给定的任务,把相关语句组织在一起 的程序块,也称为例程或过程。 函数分为标准库函数和用户自定义函数。 标准库函数:可以在任何程序中使用的公共函数,由C 编译器提供。 用户自定义函数:必须按C要求通过函数定义、函数说 明,才能被调用,由用户自定义。 程序从main( )开始,一个函数可以调用其他函数,也可 以被其他函数调用。 函数与函数之间通过传递参数和返回值相联系。 C不允许函数嵌套定义。在一个函数中再定义一个函数 是非法的。 6.1函数概述

6.2函数定义和调用 6.2.1函数定义 定义的一般形式 返回值类型定义符函数名(形式参数表 例如: 函数体 int area s int a, int b) return(a*b) 其中: 函数名—给自定义的函数取的名字。 形式参数表—函数被调用时,接收调用函数传递的实参数。 函数体执行功能的语句块。 ←类型定义符—通过函数调用获得的函数返回值,通常用 return语句返回。类型定义符是指函数返回值的数据类型 4 2021年2月20日星期六
4 2021年2月20日星期六 6.2.1 函数定义 定义的一般形式: 返回值类型定义符 函数名(形式参数表) { 函数体 } 其中: 函数名—给自定义的函数取的名字。 形式参数表—函数被调用时,接收调用函数传递的实参数。 函数体—执行功能的语句块。 类型定义符—通过函数调用获得的函数返回值,通常用 return语句返回。类型定义符是指函数返回值的数据类型。 例如: int area_s(int a ,int b) { return(a*b) } 6.2函数定义和调用

1.无参函数的一般形式 类型说明符函数名0 类型说明 语句 例6.1:定义一个无参函数(61.cpp) void Helloo printf( Hello, how do you do. In"); 2021年2月20日星期六
5 2021年2月20日星期六 1.无参函数的一般形式 类型说明符 函数名() { 类型说明 语句 } 例6.1:定义一个无参函数(6_1.cpp) void Hello() { printf("Hello, how do you do. \n"); }

2有参函数的一般形式 类型说明符函数名(形式参数表) 形式参数类型说明 类型说明 语句 例6.2:函数,求两个数中较小的数(6_2.cpp) int min(int a, int b) if(a>b)return b: else return a 2021年2月20日星期六
6 2021年2月20日星期六 2有参函数的一般形式 类型说明符 函数名(形式参数表) 形式参数类型说明 { 类型说明 语句 } 例6.2: 函数,求两个数中较小的数(6_2.cpp) int min(int a, int b) { if(a>b) return b; else return a; }

6.2.2函数调用 (1)函数调用的一般格式: 函数名(实参数表); (2)调用实质: 程序执行流程转向由函数名指定的被调用函数。 实参数一—对应地传递给函数定义中的形参数 执行函数定义中的函数体。 执行结束,通过 return语句将值返回到调用处 程序执行流程返回调用处。执行后面的语句 2021年2月20日星期六
7 2021年2月20日星期六 6.2.2 函数调用 (1)函数调用的一般格式: 函数名(实参数表); (2)调用实质: 程序执行流程转向由函数名指定的被调用函数。 实参数一一对应地传递给函数定义中的形参数。 执行函数定义中的函数体。 执行结束,通过return语句将值返回到调用处。 程序执行流程返回调用处。执行后面的语句

(3)函数调用的几种情况 函数调用语句 pr instar( 函数调用返回值构成表达式 C=2*area s(I, w 函数调用返回值作为函数实参数 m=max(a, max(b, c)) 2021年2月20日星期六
8 2021年2月20日星期六 (3)函数调用的几种情况 函数调用语句 printstar( ); 函数调用返回值构成表达式 C=2*area_s(l,w); 函数调用返回值作为函数实参数 m=max(a,max(b,c));

例如 main() int Iv scanf(%d,&D) =cube(i) *函数调用返回值赋给变量v* pr intf("cube=%d\n?, v) int cube(int x) *自定义函数*/ int cb cb=x*x*x return(cb) /*函数返回值* 输入:5 输出:cube=125 2021年2月20日星期六
9 2021年2月20日星期六 例如: main( ) { int i,v; scanf(”%d”,&i); v=cube(i); /* 函数调用返回值赋给变量v */ printf(”cube=%d\n”,v); } int cube(int x) /* 自定义函数 */ { int cb; cb=x*x*x; return(cb); /* 函数返回值 */ } 输入: 5 输出: cube=125

6,2.3函数原型 函数原型( Funct ion Prototyping)是一条程序语句,必须 以分号结束。它由函数返回类型、函数名和参数表构成,其形式 与函数定义的头部相似。 格式:返回类型函数名(参数表); 对于用户自己定义的函数,只要函数调用点在自定义函 数之前,程序员必须在源代码中说明函数原型。函数原型可不 包含形参数变量名,只包含形参数类型名。 如 注意:当前很多编译程序对所有函数, 无论什么情况,都要求写函数原型 int area s(int a,in 以帮助函数调用时的错误查找。因此 b); 对程序所使用的所有函数都写函数原 也可简写为: 型,是一种好的编程风格。 int area s(int, int) 2021年2月20日星期六
10 2021年2月20日星期六 如: int area_s(int a,int b); 也可简写为: int area_s(int ,int); 注意:当前很多编译程序对所有函数, 无论什么情况,都要求写函数原型, 以帮助函数调用时的错误查找。因此 对程序所使用的所有函数都写函数原 型,是一种好的编程风格。 6.2.3 函数原型 函数原型(Function Prototyping)是一条程序语句,必须 以分号结束。它由函数返回类型、函数名和参数表构成,其形式 与函数定义的头部相似。 格式: 返回类型 函数名(参数表); 对于用户自己定义的函数,只要函数调用点在自定义函 数之前,程序员必须在源代码中说明函数原型。函数原型可不 包含形参数变量名,只包含形参数类型名
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 重庆工学院:《C语言程序教程》第六章 数组.ppt
- 重庆工学院:《C语言程序教程》第五章 循环程序设计.ppt
- 重庆工学院:《C语言程序教程》第四章 选择结构程序设计.ppt
- 重庆工学院:《C语言程序教程》第三章 顺序结构程序设计.ppt
- 重庆工学院:《C语言程序教程》第二章 基本数据类型、运算符与表达式.ppt
- 重庆工学院:《C语言程序教程》第一章 语言的发展及其特点和应用.ppt
- 重庆工学院:《C语言程序教程》第十一章 复杂数据类型.ppt
- 高等学校21世纪教材:《计算机网络》第9章(9-2) 网络管理与网络安全2.ppt
- 高等学校21世纪教材:《计算机网络》第9章(9-1) 网络管理与网络安全1.ppt
- 高等学校21世纪教材:《计算机网络》第8章(8-2) 网页制作基础2.ppt
- 高等学校21世纪教材:《计算机网络》第8章(8-1) 网页制作基础1.ppt
- 高等学校21世纪教材:《计算机网络》第7章(7-2) 网络软件2.ppt
- 高等学校21世纪教材:《计算机网络》第7章 (7-1) 网络软件1.ppt
- 高等学校21世纪教材:《计算机网络》第6章(6-2) 无线通信2.ppt
- 高等学校21世纪教材:《计算机网络》第6章(6-1) 无线通信1.ppt
- 高等学校21世纪教材:《计算机网络》第5章 (5-3) 广域网3.ppt
- 高等学校21世纪教材:《计算机网络》第5章 (5-2) 广域网2.ppt
- 高等学校21世纪教材:《计算机网络》第5章 (5-1) 广域网1.ppt
- 高等学校21世纪教材:《计算机网络》第4章 基于交换的高速网络.ppt
- 高等学校21世纪教材:《计算机网络》第1章 计算机网络概述.ppt
- 重庆工学院:《C语言程序教程》第九章 编译预处理.ppt
- 重庆工学院:《C语言程序教程》教学日历.doc
- 重庆工学院:《C语言程序教程》第八章 指针(纪钢).ppt
- 重庆工学院:《C语言程序教程》教学日历2.doc
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)课程介绍(主讲:钱晓捷).ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第1章 汇编语言基础知识.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第2章 8086的指念系统 2.1 8086的寄存器组 2.2 8086的寻址方式.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第2章 8086的指念系统 2.3 数据传送类指令 2.4 算术运算类指令.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第2章 8086的指念系统 2.5 位操作类指令 2.6 串操作类指令.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第2章 8086的指念系统 2.7 控制转移类指令 2.8 处理机控制类指令.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第3章 汇编语言程序格式.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第4章 汇编语言程序设计.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第5章 32位指令及其编程.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)第6章 汇编语言与C/C++的混合编程.ppt
- 郑州大学远程教育学院:《汇编语言程序设计》课程电子教案(PPT课件)Win32汇编.ppt
- 《Visual Basic 教程》第十章 图形操作.ppt
- 《Visual Basic 教程》第十一章 Visual Basic与数据库.ppt
- 《Visual Basic 教程》第二章 Vb简单的程序设计.ppt
- 《Visual Basic 教程》第三章 VB语言基础.ppt
- 《Visual Basic 教程》第四章 基本的控制结构.ppt