- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C程序设计教程(十一) 函数的调用 数组作为函数参数 局部变量和全局变量 变量的存储类别 上节内容回顾 1.函数的定义、声明和调用,以及函数的参数和函数的值; main( ) { float add(float x,float y); float a,b,c; scanf(“%f,%f”,a,b); c=add(a.b); printf(“sum is %f”,c); } float add(float x,float y) { float z; z=x+y; return(z); } 2函数原型 在C语言中,对被调用函数的函数声明称为函数原型 作用:利用函数声明在程序的编译阶段对调用函数的合法性进行全面的检查,和函数原型不匹配的函数调用会导致编译出错,它属于语法错误。 函数原型的一般形式: 函数类型 函数名(参数类型1,参数类型2,…) 函数类型 函数名(参数类型1 参数名1,参数类 型2 参数名2,…) §8.5 函数的嵌套调用 C语言的函数定义都是互相平行的独立的,在定义函数时,一个函数内不能包含另一个函数。也就是说C语句不能嵌套定义函数,但可以嵌套调用函数 。 嵌套调用实际上就是在调用 一个函数时,该函数又同时调用另一个函数。 如图: 举例说明: 例8.6 用弦截法求方程f(x)=0的根。 1、算法 (1)先取两个不同的点x1,x2,如果f(x1)和 f(x2)异号,则在(x1,x2)区间内必有根。若f(x1)和f(x2) 同号,则改变x1,x2使f(x1)和f(x2)异号为止。注意x1,x2的值不应相差太大,以保证(x1,x2)区间内只有一个根。 (2)连接f(x1)和f(x2) 两点,此线与x轴交于x点,见图8-6。求出曲线上对应x点的坐标(x,f(x))。 (3)若f(x)与f(x1)同号,则根必在(x,x2)区间内,此时将x作为新的x1。如果f(x)与f(x2)同号,则根必在(x1,x)区间内,此时将x作为新的x2。 (4)重复步骤(2)和(3),直到|f(x)|ε, ε为一个很小的数。如:10-6。则认为f(x)=0。 §8.6 函数的递归调用 1 定义:在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。 实际上,递归调用可以看作是嵌套调用的特殊形式之一,即自己调用自己。 在意义上,它相当于一个循环。 如图: 例如: 有5 个人坐在一起,问第五个人多少岁?他说比第四个人大2岁。问第四个岁数,他说比第三个人大2岁,问第三个人,又说比第二个人大2岁。问第二个人,说比第一个人大2岁。最后问第一个人,他说是10岁。请问第五个人多大。 age(int n) { int c; if(n= =1) c=10; else c=age(n-1)+2; return( c); } main( ) { printf(“%d\n”,age(5)); } §8.7 数组作为函数参数 1 数组元素作函数实参 2 数组名作函数参数 3 用多维数组名作函数参数 一、数组元素作函数实参 数组元素可作为函数实参,用法与变量作为函数实参相同。也是单向的值传递。 如例8.10 比较两个数组的大小。比较方法是:对两个有相同元素个数的a、b两数组,将它们对应地逐个比较(即a[0]与b[0]相比,a[1]与b[1]相比),如果a数组中的元素大于b数组中的相应元素的数目多于b数组中元素大于a数组中的相应的元素的数目(例如a[i]b[i]6次, b[i]a[i]3次,i每次为不同的值),则认为a数组大于b数组,并分别统计出两个数组相应元素大于、等于、小于的次数。 main( ) {int large(int x,int y); int a[10],b[10],i,n=0,m=0,k=0; printf(enter A:\n); for(i=0;i10;i++) scanf(%d,a[i]); printf(\n); printf(enter B:\n); for(i=0;i10;i++) scanf(%d,b[i]); printf(\n); for(i=0;i10;i++) {if(large(a[i],b[i])==0) n=n+1; else if(large(a[i],b[i])==0) m=m+1; else k=k+1; } printf(a[i]b[i]%d
您可能关注的文档
最近下载
- 附着式升降脚手架施工方案范本.pdf VIP
- 小学四年级英语阅读理解30篇及小学四年级英语作文.doc VIP
- 电梯安装工程管理重难点分析.doc VIP
- 2025年保安员资格证考试题库大全(答案附后面).docx
- 【高考必备】高考总复习系列丛书-高三化学一轮复习考点优化设计(第五辑):考点六十三等效平衡Word版含解析[原创精品].doc VIP
- 米家小米智能门锁 E30使用说明书.pdf
- 统编版道德与法治八年级上册《诚实守信》说课课件.pptx VIP
- 第一单元峥嵘岁月 第1课情感表达 教学设计 人教版初中美术七年级上册.docx VIP
- 大班幼儿参与幼儿园物质环境创设的现状及提升策略.docx VIP
- 省优秀科组申报材料.pdf VIP
文档评论(0)