- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.1 函数概念;6.2 函数定义的一般形式;3.“ 空函数 ”;6.3 函数参数和函数的值;? 形参变量在被调用前不占用存储单元;在被调用结束后,形参所占存储单元亦被释放。
? 实参可以是常量、变量或表达式。
? 必须指定形参类型,且必须与实参的类型一致。
? 实参对形参的数据传递是“值传递”。即单向传递,不能逆传。
? 可以在形参表中直接说明形参类型。如:
int max(int x, int y);
float fun(int a[10], int n);;? 函数的返回值是通过return语句获得的。当不需返回函数值时,可省去return语句。
? return语句的后面可以有括号,也可以没有。如:
return z ; ? return(z);
? return语句的后面可以是变量,也可以是表达式。如:
return(x y ? x : y);
? return语句返回值的类型应与该函数的类型一致。否则以函数类型为准。;? 若函数中没有return语句,则该函数被调用后也会带回不确定的值。如:main( );1.函数调用的一般形式
函数名(实参表);
说明:
? 对于无参函数,尽管没有“实参表”,但也不得省略括号。
? “实参表”中的参数之间用逗号分开。
? 实参与形参之间的个数及类型必须一一对应。
? 对实参求值的顺序是自左至右还是自右至左, 视具体的系统而定。Turbo C 和 MS C 是按自右至左的顺序求值。;例6.2
main( )
{ int i =2 , p ;
p = fun( i , + + i );
printf ( “%d”, p ) ;
}
int fun ( a , b )
int a , b ;
{ int c ;
if ( a b ) c = 1;
else if ( a = = b ) c = 0 ;
else c = –1 ;
return( c ) ;
}; 调用函数,可以有如下三种方式:
? 将函数调用作为一个语句。如:
printf(“MS C pragramming”); gets(s);
? 将被调用的函数写在表达式中。如:
c=2?max(a, b);
注意:被调用函数max必须有确定的返回值。
? 将函数调用作为一个函数的实参。如:
m=max(max(a, b), c);
3.对被调用函数的说明
在一个函数中调用另一个函数时:
? 如果被调函数为库函数,则应在文件开头用“#include”命令声明相应的“头文件”。如:
#include “stdio.h”
#include “math.h”
; 类型标识符 被调函数名( );
如:float add( );
? 如果被调函数为自定义函数且其定义在主调函数定义之前,则在主调函数中可不必声明其类型。因为编译程序已知道其类型。
? 如果被调函数的值是整型或字符型,可不必声明类型,系统自动按整型说明。
? 如果在所有被调函数定义之前、在文件的开头、在函数的外部已对被调函数作了类型说明,则在各主调函数中可不必说明其类型。如:
char letter( );
float f( );
int i( );?
main( )
{……} /? 不必说明它所调用的函数的类型 ?/
;例6.3 编程求11~999之间的数m,而m、m2和m3均是回文数(数位左右对称)。 如:m=11、m2=121、m3=1331,…… 。; C 语言函数的定义都是相互平行、独立的,不能嵌套定义。但可以嵌套调用函数。所谓函数的嵌套调用就是在被调用的函数中又调用另外的函数。
6.6 函数的递归调用
在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。;例6.4 有5人排成一队,从最后一人开始,其年龄均比前面的人大2岁,而最前面的人年龄是10岁,问最后一人的年龄是多少岁?;函数的递归调用利用了堆栈技术。在本例中:;写出下面程序的运行结果:
例6.4 e
#include stdio.h
fun(int x)
{int p;
if(x==0||x==1) return 3;
p=x-fun(x-2);
return p;
}
void main()
{
printf(%d\n,fun(9));
};汉诺塔问题参考程序(将A座上的N个disks 借助B座移动到C座);1.局部变量
在一个函数内部定义的变量,只能在本函数内使用和有效,称为“局部变量”
您可能关注的文档
最近下载
- T∕CACM 1021.135-2018 中药材商品规格等级 桑椹.docx VIP
- 合肥南站枢纽方案.pdf
- 内蒙古自治区包头市昆都仑区2023-2024学年七年级下学期期中语文试题【含答案解析】.docx VIP
- 公司年度颁奖晚会主持词与公司年终工作总结2合集.doc VIP
- GB/T 27726-2011_热塑性塑料阀门压力试验方法及要求.pdf
- 医学生全国水平测试题库.pdf
- 2025年东莞实业投资控股集团有限公司招聘笔试模拟试题及答案解析.docx
- 《第十章-中国文化的基本精神》-课件.ppt VIP
- 基于模糊控制的智能浇灌系统设计.pptx VIP
- 乳腺癌诊治指南与规范(2025年版精要本).PDF VIP
文档评论(0)