C语言程序设计-第7章.ppt_第1页
C语言程序设计-第7章.ppt_第2页
C语言程序设计-第7章.ppt_第3页
C语言程序设计-第7章.ppt_第4页
C语言程序设计-第7章.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计 贵阳新科电脑培训中心 唐绍国 制作 全国计算机等级考试全国计算机等级考试 二级教程二级教程 本章要点: 函数的概念 库函数 函数的定义和返回值 函数的调用 函数的说明 调用函数和被调用函数之间的数据传递 第七章 函数 函数的概念:函数是能完成一定功能的程序模块 v一个较大的程序 一般应分为若干个程序模块,每一个程序模块用来 实现一个特定的功能 v在其他的高级语言中都有子程序这个概念,用子程序实现模块的功能 。而在C语言中,子程序的作用是由函数完成的 v一个C程序可由一个主函数和若干个其他函数构成。由主函数调用 其他函数。其他函数也可以互相调用。同一个函数可以被一个或多个函 数调用任意多次 函数的分类 从用户使用的角度看,函数有两种: (1)标准函数(库函数):这是由系统提供的,用户不必自己定义这 些函数,可以直接使用它们。 (2)用户自已定义的函数:用来解决用户的专门需要。 从函数的形式看,函数分两类: (1)无参函数:在调用这类函数时,主调函数并不将数据传递给被调用 函数,一般用来执行指定的一组操作。无参函数可以带回或不带回函数值 ,但一般以不带回函数值的居多。 (2)有参函数:在调用函数时,在主调函数和被调用子函数之间有数据 传递。也就是说,主调函数可以将数据传给被调函数使用,被调用函数中 的数据也可以带回来供主调函数使用。 库函数(标准函数) 注意:调用库函数时要给出包含该函数的头文件 例:调用数学库函数时,要求在函数前包含以下命令: #include “math.h” 说明:include命令必须以#开头, 系统提供的头文件以.h作为文件后缀 , 文件名用一对双撇号” 或一对尖括号括起来。 二者的区别是: 用形式编译时只在目标文件所在的子目录中找math.h文件,而 用“math.h”形式则编译系统先从目标文件所在的子目录中找math.h文 件,若找不到则到上级目录找,直到找到为止(除非它不存在)。 注意:include命令不是C语句,因此不能在最后加分号。 常用库函数包含该函数的头文件 数学函数“math.h” 字符函数“ctype.h” 字符串函数“string.h” 输入输出函数“stdio.h” 动态 分配函数和随机数函数 “stdlib.h” 常用库函数及相关的包含头文件 标准库函数的调用格式 对库函数的一般调用形式为: 函数名 (参数1,参数2, 参数n) 调用库函数的两种形式: 1、在表达式中调用(要求函数返回一个值) 例:y=pow(x,2.5)+1.3;或 s=fabs(x)-fabs(y); 2、作为独立的语句使用(不要求函数带回值,只要求完成一定的 操作) 例:exit();或 scanf(“%d”, printf(“%d”,a); 7.2 函数的定义和返回值 函数定义的语法 函数定义的一般形式: 函数体 数据类型 函数名(形式参数表) 内部数据; 可执行语句; 返回语句; 当形式参数表中的参数在一个以上时,定义形式为: (类型名 形式参数1,类型名 形式参数2,) Int sum(int x,int y) int z; z=x+y; return (z); v 函数名是函数的标志,调用函数时必须指定要调用的函数名。 v 数据类型是函数返回值的类型。在省略书写返回类型时,c语言默认为int型 或char型。当函数没有数据返回时,使用void关键字说明为“无类型”。 v 形式参数表包括形参类型说明。它是为了便于在调用该函数时将相应的参数 传递给函数。形式参数是函数的内部变量,在定义函数时可以没有形参,但不 能省略圆括号。 v 函数体是函数的主要部分,函数的功能就是由它来实现的。 v 函数体通常定义一些内部数据,使用一些执行语句来完成函数的功能,由返 回语句return()把函数的结果传送给函数的调用者。 函数体 数据类型 函数名(形式参数表) 内部数据; 可执行语句; 返回语句; 函数定义的例子及说明 例: 函数定义的说明 v函数名和形式参数都是由用户命名的标识符。在同一程序中,函数 名必须唯一;形式参数名在同一函数中唯一即可,可以与其他函数中的 变量同名。 v在同一个函数的内部不能再定义函数,但可以调用其他函数。 v函数体中的变量只有在函数被调用时才临时开辟存储单元,当退出 函数时,这些临时开辟的存储单元全被释放掉,因此,这种变量只在函 数体内部起作用,与其他函数体中的变量无关。 函数的返回值 函数的值通过return语句返回,return语句的形式如下: return 表达式;或 return (表达式); 或return; 例:return s;或return (x+y);或return; v也就是说,return语句中的表达式的值就是所求的函数值.此表达式值的类型 必须与函数首部所说明的类型一致.若类型不一致,则以函数值的类型为准,由系统 自动进行转换. v当程序执行到return语句时,程序的流程就返回到调用该函数的地方(通常称 为退出调用函数),并带回函数值.在同一个函数内,可以根据需要多处出现return 语句. vreturn语句也可以不含表达式,这时它的作用只是使流程返回到调用函数,并 没有确定的函数值. v函数体内可以没有return语句,程序的流程就一直执行到函数末尾”,然后 返回调用函数,这时也没有确定的值带回. 7.3 函数的调用 函数的一般调用形式为: 函数名(实在参数表) 当实在参数的个数多于一个时,参数之间用逗号分开。如果是无参 函数,则调用形式为:函数名 ( ) 例:若有以下两个用户自定义函数sum和outstar Int sum(int x,int y) return (x+y); void outstar( ) printf(“*”); 用户定义的函数也可以像调用标准库函数一样采用以下两种方式: 1、作为表达式出现在允许表达式出现的任何地方。 2、作为一条独立的语句。 演 示 则它们的调用形式分别为: sum(3,7) 和 outstar( ) 函数调用时的语法要求 (1)调用函数时,函数名必须与被调用的函数名字完全一致。实参 的个数和类型与形参的个数和类型一致。 (2)函数必须先定义、后调用,也就是调用函数必须在被调用之前 加以说明或被调用函数整个放在调用函数之前。但返回值类型为int型 或char类型的函数可以放在调用函数之后。 (3)c语言中函数的定义都是平行、独立的,c语言不允许嵌套定义 函数,但允许嵌套调用函数,也就是说,在调用一个函数的过程中,又 调用另一个函数。 (4)c语言允许函数出现递归调用(在调用一个函数的过程中又出现 直接或间接地调用函数本身)。 函数的说明 在C语言中,除了主函数外,对于用户定义的函数要遵循“先定义,后 使用”的原则。凡是未在调用前定义的函数,C编译程序都认为函数的返 回值为int类型。对于返回值为其他类型的函数,若把函数的定义放在调 用之后,应该在调用之前对函数进行说明(或称为函数原形说明)。 函数说明的一般形式如下: 类型名 函数名(参数类型1,参数类型2,) 如 float sum(float ,float) 或: 类型名 函数名(参数类型1 参数名1,参数类型2 参数名2,) 如 float sum(float x,float y) 函数说明也可以是一条独立的语句,如: float sum(float ,float); 也可以与普通变量一起出现在同一个定义语句中。如: float x,y,sum(float ,float); 函数说明的位置 v函数的定义是用来定义函数的实体,函数的说明是用来声 明函数的特征,一个函数只能定义一次,而说明可以是多个、多 处的,通常情况下,说明应放在调用之前。 v当在所有函数的外部,被调用之前说明函数时,在函数说明 的后面所有位置上都可以对该函数进行调用 v函数说明也可以放在调用函数内的说明部分,如在main函 数内部进行说明,则只能在main函数内部才能识别该函数. 7.5 调用函数和被调用函数之间的数据传递 1、实在参数与形式参数之间进行数据传递 形式参数与实在参数的区别: 形式参数是指在定义函数时形参里的变量,之所以称它为“形

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论