- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第17讲 调用函数和被调用函数间的数据传递 函数的递归调用、程序举例 例7.1 函数参数之间的单向传递 例7.2 实参向形参按位置传递数据 2.数组名作为参数 例7.3 选择法排序 对10个数排序的算法步骤演示如下: 对10个数排序的算法步骤演示如下: 10个数排序的完整程序如下: 例7.4 将一个数组中的n个数据按颠倒的顺序重新存放 数组逆序程序 例7.5 求二维数组每行元素的平均值 7.6 函数的嵌套与递归调用 7.7 函数程序举例例7.8 例7.9 编写函数,验证任意偶数为两个素数之和并输出这两个素数。 例7.10 利用梯形法求定积分 利用梯形法求定积分 例7.11 编写函数统计输入的一行字符中出现的每个小写字母的个数。 例7.12 求某班每门课程的平均成绩和每个学生的平均成绩 求某班的课程平均成绩和学生的平均成绩 * 1.函数定义相互独立 2.因为婚书定义出现在main之前,不必函数说明 3.嵌套调用 4.fabs 形参与实参的概念 形式参数:定义函数时函数名后面括号中的变量名 实际参数:调用函数时函数名后面括号中的表达式 §7.5 调用函数和被调用函数之间的数据传递 int max2(int x, int y) {int z; z=(xy)?x,y ; return(z); } main() {int a,b,c; a=30,b=58; c=max2(a,b); c=max2(a+5,100); printf(“%f\n”,c); } 例如: 形参:x,y 形参必须指定类型; 实参:a,b 实参: a+5,100 (1) 实参表达式也可以是变量或常量,但必须有确定的值; (2) 要求形参与实参类型一致,个数相同(多:略/少:随机值); (4) 形参在函数被调用前不占内存;函数调用时为形参分配内存;调用结束,内存释放; (5) C语言的参数传递方式 值传递方式:函数调用时,系统临时为被调函数的形参分配存贮单元,并将实参的值复制到形参中;当被调函数结束时,形参单元被释放,实参单元仍保留并维持原值。 特点:单向的值传递(数值或地址值)。 有关参数传递的几点说明 x a product ×× ×× 1.2 1.2 1.728 1.变量作为参数(单向的数值传递) #include stdio.h float cube(float x) { return(x*x*x); } void main() { float a, product; printf(Please input value of a:); scanf(%f,a); product=cube(a); printf(”Cube of %.4f is %.4f\n,a,product); } 例 计算x的立方 Cube [kju:b] n.立方体, 立方 main() {void swap(int , int); int x=10,y=20; printf(“(1)x=%d y=%d\n”,x,y); swap(x,y); printf(“(4)x=%d y=%d\n”,x,y); } void swap(int a, int b) {int t; printf(“(2)a=%d b=%d\n”,a,b); t=a; a=b; b=t; printf(“(3)a=%d b=%d\n”,a,b); } 10 20 x: y: 调用前: 调用结束: 10 20 x: y: 调用: 10 20 a: b: 10 20 x: y: swap: 10 20 x: y: 20 10 a: b: t: 程序运行结果为: (1)x=10 y=20 (2)a=10 b=20 (3)a=20 b=10 (4)x=10 y=20 main( ) {void ex(int z,int y,int x); int x=10,y=20,z=30; printf(“(1)x=%d y=%d z=%d\n”,x,y,z); ex(y,z,x); } void ex(int x,int y,int z) { printf(“(2)x=%d y=%d z=%d\n”,x,y,z); } 程序运行结果为: (1)x=10 y=20 z=30 (2)x=20 y=30 z=10 实参: 30 10 y: z: 30 10 z: x: 形参: 20 x: 20 y: 函数说明语句 形参名是一种虚设 函数调用语句确定实参顺序 函数定
文档评论(0)