第6章函数精品.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 函 数 从用户角度看,C语句中的函数可以分为两种: (1) 标准函数,即库函数。 (2) 用户自定义函数。 6.1 函数的定义 6.2 函数的调用 6.3 数组作为函数参数 6.4 变量的作用域 6.5 变量的存储类别 6.6 函数应用实例 本章小结 6.1 函数的定义 6.1.1 定义函数 函数定义的形式为: 类型说明符 函数名(形式参数表列) { 声明部分; 语句部分; } 例如: int sum ( int a, int b ) { int c; /* 声明部分 */ c = a + b; /* 语句部分 */ return c; } 这是一个求两个整数和的函数。 6.1.2 函数的参数 如果函数调用时需要传递数据,则在定义函数时在函数名后的括号内指明所需要的参数,包括参数类型和参数名。 在函数定义时指定的参数称为形式参数(简称 “形参” ),在函数调用中传递的数据称为实际参数(简称 “实参” )。 例6-1 输出两个整数的最大值。 int max ( int x, int y ) { int z; z = x y ? x : y; return z; } main( ) { int a,b,c; scanf( “%a %b” , a, b ); c = max ( a, b ); printf( “max is: %d” , c ); } 说明: 1.函数的形参可以有多个,可以是相同类型也可以不同类型。 int max ( int x, int y ) 2.形参必须是变量,但实参可以是常量、变量和表达式。 3.实参类型必须与形参类型兼容。 4.在C语言中,函数进行的是 “值传递” ,将实参的值传递给形参。这种传递是单向的. 6.1.3 函数的返回值 使用return语句将结果返回给调用程序。 格式为: return (表达式); 或者 return 表达式; 一个函数可以有多个return语句. 当遇到第一个return语句时,C立即终止函数的执行. 如果函数不需要返回计算结果,即不需要返回值时,最好定义为void类型. 6.2 函数的调用 6.2.1函数调用 函数调用的一般形式为: 函数名(实参表列); 如果函数没有参数,括号内为空,但不能省略括弧。 如果有多个参数,参数之间使用逗号分隔。调用时,应保证实参的个数与形参相同,类型一致。 例6-2 计算1到n的整数和。 int calcu( int x ) { int i, total = 0; for( i = 1; i = x; i++ ) total = total + i; return total; } main( ) { int n; scanf( “%d” , n ); printf( “sum = %d” , calcu( n) ); } 按照函数调用时出现的位置,可以分为以下三种调用方式: 1.函数语句 2.函数表达式 3.作为函数参数 6.2.2 函数原型 函数声明的格式和函数定义的首部相同,并在其后添加分号表示语句结束。 例如: int max ( int x, int y ); int calcu ( int x ); 这种函数声明称为 “函数原型” 。 一般地,为了提供程序的可读性,把函数原型写在main函数之前,函数的定义写在main函数之后。但如果函数的定义出现在main函数之前,则可省略相应的函数原型。 6.2.3 函数的嵌套调用和递归 函数定义内部不能定义其他函数,即不能出现函数定义的嵌套。 但函数的调用是可以嵌套的。 函数可以嵌套调用。若函数调用自身,称为函数的递归调用。 递归必须有条件地进行。 例6-3 求n! 分析:根据阶乘的性质可以有如下递归公式: 例如5!,等于5 * 4!,而4!= 4 * 3!,…… ,1!=1。 float fac( int n ) /* 求n的阶乘函数 */ { float f; if ( n = 1 ) f = 1; /* 条件满足,终止递归 */ else f = n * fac ( n –1 ); /* 否则继续递归 */ return f; /* 返回阶乘值 */ } 例6-4 求Fibonacci序列的第n项的值 分析:Fibonacci序列的规律是:每个数等于前面两个数之和。由此可得如下公式: 6.3 数组作为函数参数 6.3.1 数组元素作为函数参数 例6-5 找出数组的最大

文档评论(0)

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

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档