- 1、本文档共84页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序的设计第5章 函数.ppt
第5章 函数;从用户的观点出发,C语言的函数分为库函数和用户自定义函数两种。;5.2 函数基础 ;5.2.1 函数的定义;函数类型是指函数返回值的类型。若函数返回值的类型标识符省略,默认为int类型。若函数无返回值,则要将函数定义为void类型。
;float sum (float x , float y )
{ int z ;
z = x + y ; return z ;
};5.2.1 函数的定义;5.2.1 函数的定义;5.2.1 函数的定义;例:编写一个自定义函数求 n!;5.2 函数基础 ;5.2.2 函数的调用 ;5.2.2 函数的调用;5.2.2 函数的调用;2.函数调用时的语法要求 ;5.2.2 函数的调用;5.2 函数基础 ;5.2.3 函数原型;5.2.3 函数原型 ;5.2 函数基础 ;被调函数执行完成后,常常需要将处理的结果返回给主调函数,这种数据传递称为函数的返回值(函数值)。
函数的返回值是函数数据输出的通道之一。除了void函数外,所有的函数都应该返回一个值。
函数的返回值通常采用在函数体中用return语句显式地给出。一般形式为:;5.2.4 函数的返回值 ;5.2 函数基础 ;5.2.5 函数之间的数据传递 ;5.2.5 函数之间的数据传递 ;2;5.2 函数基础 ;5.2.6 函数应用举例;5.2.6 函数应用举例;5.2.6 函数应用举例;5.3 函数的递归调用 ;嵌套调用 :在一个函数调用过程中又调用另一个函数。
C语言中,函数的定义是独立的,各函数均处于平行的关系。理论上,任何一个函数都可调用其他的函数,甚至调用它本身。main为例外已强调过多次。
由于一个大的问题往往会被逐步分解为不同层次的许多函数。因此,对函数的嵌套调用将不可避免,并大量存在。原则上,C语言对函数的嵌套调用深度并未刻意加以限制。;main函数 a 函数 b 函数
调用a 函数 调用b 函数
结束;5.3.2 函数的嵌套调用;5.3 函数的递归调用 ;5.3.3 递归调用 ;5.3.3 递归调用 ;5.3.3 递归调用 ;5.3.3 递归调用 ;递归函数的结构十分简练。构造递归函数的关键是找到适当的递归算法和终结条件。因为递推的过程不能无限制地进行下去,必须要有一个结束此过程的条件。在前面的例子求n!的过程中,1!=1就是这样的结束递推过程的条件。;5.3.3 递归调用 ;5.3.3 递归调用 ;5.3.3 递归调用 ;5.3.3 递归调用 ;5.3.3 递归调用 ;5.3.3 递归调用 ;5.3.3 递归调用 ;5.3.3 递归调用 ;使用递归算法求m和n的最大公约数gcd;#include stdio.h
#include math.h
int main(void)
{
float gcd( ),m,n,g;
printf(“\n Input m, n:\n”);
scanf(“%f,%f”,m,n);
g=gcd(m,n);
printf(“\n gcd(%2.0f,%2.0f)=%5.0f\n”,m,n,g);
return 0;
};float gcd(a,b)
float a,b;
{
if (b==0)
return(a);
else
return(gcd (b, fmod(a,b)));
};5.4 标识符的作用域和生存期 ;5.4 标识符的作用域和生存期 ;5.4.1 标识符的作用域 ;5.4.1 标识符的作用域 ;局部变量的使用:说出下列程序的运行结果;5.4.1 标识符的作用域 ;int Abc, D1 ;
main()
{ float f1, f2 ;
···
}
float Ka, Hc ;
hanshu(int x, int y)
{ double c, e ;
···
};5.4.1 标识符的作用域 ;全局变量的特点:; #include stdio.h
int X=3;
int func( ) { int c=0 ; c+=X; X+= 10 ; return ( c ) ; }
int main(void )
{ int k=2;
k=func( ) ; printf(1)%d\n, k ) ;
您可能关注的文档
- C5概述及安装具体方案-硬横梁.ppt
- CA6140卧式车床的维修第七章 设备维修相关管理.ppt
- CA6140卧式车床的维修第二章X6132(X62W)卧式铣床的修理技术知识.ppt
- CBT考试相关复习材料737NG电子(电器)设备冷却风扇M项CBT.pptx
- CBT考试相关复习材料737NG起动活门超控M项.pptx
- CBT考试相关复习材料73N 发动机引气活门锁定在关闭位.ppt
- CBT考试相关复习材料73N 发动机高压级活门锁定在关闭位.pptx
- CBT考试相关复习材料73N 将左点火嘴连接到交流备用汇流条上.pptx
- CBT考试相关复习材料73N 马赫配平系统-对应的M项“证实升降舵后缘处于正确位置”.pptx
- CBT考试相关复习材料73N_发动机和进气道防冰活门锁开位M项.ppt
文档评论(0)