C语言程序设计_第二版_单元7 函数.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第7单元函数

C

ontents

目录

模块化程序设计思想

函数的定义和调用

函数的嵌套调用

函数间参数传递

变量的作用域

函数的递归调用

变量的生存期

模块化程序设计思想

PART

模块化程序设计思想

一个较大的程序,一般都会分解成若干个模块编写,每个模块都负责完成一定的功能,这个模块又称作子程序。在C语言中,子程序的功能是由函数来完成的。

模块化程序设计思想

函数的定义和调用

PART

函数的定义

函数的定义

【引例】求一个数的绝对值(要求用函数实现)。

思考以下两个问题:

1.用现有的知识如何编程此例?

2.转换成函数调用的方法编写的技巧?

函数的定义

【引例】求一个数的绝对值(要求用函数实现)。

main()

{

inta,b;

scanf(“%d”,a);

if(a=0)b=a;

elseb=-a;

printf(“abs=%d”,b);

}

函数的定义

函数类型

函数体

函数名

说明部分

形式参数

函数返回值

定义一个函数,求两个数的大者。(提示:先用一个main函数编写。)

main()

{

inta,b,max;

scanf(“%d,%d”,a,b);

if(ab)max=a;

elsemax=b;

printf(“max=%d”,max);

}

intzuida(intx,inty)

{

intma;

if(xy)ma=x;

elsema=y;

returnma;

}

函数的定义

函数的调用

1.表达式调用方式

例如:z=3*max(x,y);

函数的调用

2.函数调用语句方式

例如:printf(“hello!”);

函数的调用

3.函数参数调用

例如:m=max(a,max(b,c));

函数的调用

【例7-1】用函数调用的方法求1+2+3+…+100。

函数的调用

【例7-2】键盘输入一个数,求它的绝对值。

函数的调用

什么是函数声明?

“声明”与“定义”的区别?

为何要“声明”?

在什么情况下需要声明?

函数间的参数传递

PART

函数的参数传递

C语言中,数据传递

的方式

2.地址传送

1.值传送

值传递

分析下列程序,写出运行结果,得出必要结论。

voidswap(intx,inty)

{

intt;

t=x;

x=y;

y=t;

printf(“\nx=%d,y=%d\n”,x,y);

}

#include“stdio.h”

main()

{

inta=10,b=20;

swap(a,b);

printf(“\na=%d,b=%d\n”,a,b);

}

结论:形参值的改变,不会影响实参的值。(单向传递)

好处:减少了函数间的依赖,增强了自身的独立性。

地址传递

分析下列程序,写出运行结果,得出必要结论。

voidswap(int*x,int*y)

{

intt;

t=*x;

*x=*y;

*y=t;

printf(“\nx=%d,y=%d\n”,*x,*y);

}

#include“stdio.h”

main()

{

inta=10,b=20;

swap(a,b);

printf(“\na=%d,b=%d\n”,a,b);

}

结论:形参值的改变,不会影响实参的值。(单向传递)

好处:减少了函数间的依赖,增强了自身的独立性。

任务实施

一维数组score内放10个学生成绩,求平均成绩。(用数组名作参数)

#includestdio.h

#defineN10

floataverage(floatarray[],intn)

{

inti;

floatsum=0;

for(i=0;iN;i++)

sum=sum+array[i];

return(sum/n);

}

voidmain()

{

floatscore[N],

文档评论(0)

yuzuzou + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档