C语言程序设计 第8章 函数(一).ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计 第8章 函数(一)

  在C语言中,子程序的功能是由函数来完成的。一个C程序可由一个主函数和若干个函数组成,由主函数调用其他函数,其他函数之间也可以互相调用,同一个函数可以被任意多个函数调用任意多次。   象我们在前面的程序中所经常调用的scanf()和printf()都是函数,因为他们是常用的功能,所以将这些常用的功能编写成函数,放在函数库中供公共使用,当我们需要使用时只需要直接调用就可以了,而不需要重复编写,以此来减少因重复编写程序而增加工作量。   因此当我们在编程过程中若遇见需要反复使用的功能时,也可以将其编写成具有某种功能的函数,然后进行调用。 例:简单函数调用 注意: 函数的分类: 2.1 无参函数的定义形式 2.3 可以有“空函数” 函数的嵌套调用 # include stdio.h main() { int sum(int x,int y); int a=2,b=3; printf(返回结果:%d\n,sum(a,b)); } int sum(int x,int y) { void welcome(); printf(\nsum函数说:我被main函数调用); welcome(); return (x+y); } void welcome() { printf(\nwelcome函数说:我被sum函数调用\n); } 7、函数的递归调用 在调用一个函数的过程中又出现直接或间接的调用该函数本身,称为函数的递归调用 f 函数 调用f 函数 直接调用 f 1 函数 调用f 1函数 调用f 2函数 f 2 函数 间接调用   这两种递归调用都是无终止的自身调用.显然,程序中不应出现这种无终止的递归调用,而只应出现有限次数的,有终止的递归调用,这可以用if语句来控制,只有在某一条件成立时才继续执行递归调用,否则不再继续. 【例】有4个人坐在一起,问第4个人多少岁?他说他比第3个人大2岁.问第3个多大,他说比第2个人大2岁.问第2个人,又说比第1个人大2岁.最后问第1个人,他说他10岁.请问第4个人多少岁. age(n)= 10 (n=1) age(n-1)+2 (n1)   可以看到,当n1时,求第n个人的年龄的公式是相同的,因此可以用一个函数表示上述关系.    可以用数学公式表述如下: age(4)=age(3)+2 age(3)=age(2)+2 age(2)=age(1)+2 age(1)=10 程序如下: age(int n) { int c; if(n==1) c=10; else c=age(n-1)+2; return(c); } main( ) { printf(“第4个人%d岁\n”,age(4)); } 2005年3月 回 推 main( ) age(4) age(3) age(2) age(1) { { { { { … … … … … age(4); c=age(3)+2; c=age(2)+2; c=age(1)+2; c=10; … … … … … return 16 return 14 return 12 return 10 }

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档