C语言(第7节函数).ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计 信息与计算机学院 Email:yixuan0820@163.com 第7章 函数 本章主要内容: 函数的定义 函数的调用 函数的参数和函数返回值 递归函数 变量的作用域和存储类别 7.1 函数的定义 C函数的概念 函数:一段可以重复调用的、功能相对独立完整的程序段。 1)库函数:由C语言系统提供,用户无须定义,可直接使用 。 2)用户自定义函数:由用户按需要编写的函数 函数的定义 如果函数执行后没有返回值,则函数类型标识符用“void”,称为“空类型”或“无类型”。 函数名必须符合标识符的命名规则。在函数定义时,函数体中不能再出现与函数名同名的其他对象名(如变量名、数组名等)。 函数首部括号内的参数称为形式参数(简称形参),形参的值来自函数调用时所提供的参数(称为实参)值。 形参也称形参变量。 【例7.4】求一个数的立方。 #include stdio.h long cub(int x) /* 函数定义 */ { long y; /* 函数体中的声明部分 */ y=x*x*x; /* 函数体中的执行部分 */ return y; } void main ( ) { int num; long cub_num; printf(请输入一个整数:\n); scanf(%d,num); cub_num=cub(num); /*函数调用 */ printf( %d的立方值是%1d, num, cub_num); } 7.2 函数参数和返回值 形式参数和实际参数 形参:在定义函数时函数名后面括号中变量名称为形式参数,简称形参 。 实参:在主调函数中调用一个函数时,函数名后面括号中的参数称为实际参数,简称实参。 函数关于参数的几点说明: 1、用函数调用完成求一个数组{12,3,2,4,5,8, 9,12,2,40}中的最小(大、平均值、总和)元素值 要求:通过函数调用实现(计算方法在子函数中,通过主函数调用实现) 2、求一个数的平方(立方); 3、求两个数的平方和(平方差); 4、用函数调用完成求一个3×3数组主对角线上所有元素的最大值。(注:主对角线是左上角到右下角的对角线) 【例7.5】 分析以下程序的运行结果。(值传递方式) #include stdio.h void swap(float x,float y) /* 定义交换变量x,y值的函数 */ { float temp; temp=x; x=y; y=temp; printf(x=%.2f y=%.2f\n,x,y); } void main() { float x=8.5,y=3.7; swap( x,y ); /*调用swap函数*/ printf(x=%.2f y=%.2f\n,x,y); } 地址传递方式: 函数调用时,将实参数据的存储地址作为参数传递给形参。 其特点是:形参与实参占用同样的内存单元,函数中对形参值的改变也会改变实参的值。因此函数参数的地址传递方式可实现调用函数与被调函数之间的双向数据传递。 比较典型的地址传递方式就是用数组名作为函数的参数,在用数组名作函数参数时,不是进行值的传送,因为实际上形参数组并不存在,编译系统不为形参数组分配内存。 实际上是形参数组和实参数组为同一数组,共同拥有同一段内存空间。 【例7.6】一个一维数组score内放10个学生成绩,用一个函数求平均成绩。(地址传递方式) #include stdio.h float average(float array[10]) { int i; float aver,sum=array[0]; for(i=1;i10;i++) sum=sum+array[i]; aver=sum/10; return(aver); 程序说明: ①用数组名作函数参数,应在主调函数和被调用函数分别定义数组,其中score 是实参数组名,array是形参数组名。 ②在被调用函数average中声明了形参数组的大小是10,其实指定其大小不起作用,形参数组可以不指定大小,在定义数组时可以只在数组名后跟一个空的方括号。因为C语言编译系统对形参数组大小不做检查,只是将实参数组的首地址传给形参数组,因此形参数组名获得了实参数组的首元素的地址。 7.2.2 函数的返回值 return语句的一般形式: ① return; ② return 表达式; 或 return (表达

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档