- 1、本文档共90页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章C语言课件
第七章; 本章要点
函数的定义
函数的调用
函数参数的传递方式
变量的作用域和存储方法
内部函数和外部函数;C程序是函数的集合体,每个函数是一个独立的程序模块;
由一个主函数和若干个子函数组成,程序总是从主函数开始执行;
所有子函数地位平等,可互相调用、自我调用。
函数可集中或分散存放在一个或多个源程序文件中。
· 引入函数的优点: 减少重复编写程序的工作量;使程序便于调试和阅读。
;main: 主函数
e, d, h ,g 被多次调用
a, b, c,d, e, f,g, h, 相互调用;函数调用举例;一个c程序由一个或多个源文件组成;;一、定义形式:
[类型标识符] 函数名([形式参数表])
[形式参数说明]
{ [说明与定义部分]
语句
};无参函数的定义形式:
[类型标识符] 函数名( )
{[说明部分]
语句
};
long facto ( n )
int n;
{ long s=1;int i;
for (i=1; i=n; i++)
s *= i;
return (s);
}; main( )
{ int a,b,c;
int max();
scanf(”%d,%d”,a, b );
c = max( a,b );
printf(”Max = %d”, c);
}
int max ( x , y )
int x,y;
{ int z;
z = x y ? x : y ;
return ( z );
};二、 形式参数和实际参数
形式参数:
形参调用前不占内存单元,调用时占用,调用后释放
形参是函数的内部变量,只在函数内部才有意义。
对每个形参必须指明其名字和数据类型。
实际参数:
实参必须有确定的值,可以是常量,变量或表达式。
实参与形参的类型、个数必须一致。;7.1.3 函数的调用;例:调用max函数的程序
main()
{int a,b,c;
int max();
scanf(%d,%d,a,b);
c=max(a,b);
printf(max=%d\n,c);
} ;/*1*/
/*2*/
/*3*/
/*4*/
/*5*/
/*11*/
/*12*/
/*13*/
/*14*/
/*15*/
/*16*/;(1) 函数语句 (把函数调用作为一个语句)
一般形式:函数名(实际参数表);
此时不要求函数带回值,只要求函数完成一定的操作。
例如: printstar( );;值传递:
在调用函数时,实参将值传递给形参。
C语言规定,实参对形参的数据传递是“值传递”,即单向传递。
在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。
因此,在执行一个被调用函数时,形参的值如果发生变化,并不会改变主调函数中实参的值。;例如:
void add(int a, int b)
{
a+=3;
b+=6;
printf(“a=%d, b=%d\n”, a,b);
}?; 值传递的优点:被调用的函数不可能改变调用函数
中变量的值,而只能改变它的局部的临时副本。;7.1.5 函数的返回值;说明:;说明(续):;int max(x,y)
int x,y;
{int z;
if (xy)
z=x;
else z=y;
return(z);
};3. 函数值的类型;例:编写计算 的程序。 ;例:阅读程序
float add (x, y)
float x, y;
{ float z;
z=x+y;
return (z);
}
main( )
{
float a, b;
scanf(%f, %f, a, b);
printf( sum is %f \n, add(a, b) );
}
;以上程序另一写法:
main( )
{
float add( );
float a, b;
scanf(%f, %f, a, b);
您可能关注的文档
- 第6讲第5章地下水.ppt
- 第6讲秘书实务_信息工作.ppt
- 第6讲文化与经济.ppt
- 第6讲放大电路的分析方法_new.ppt
- 第6讲联系与发展1.ppt
- 第6讲心脏的泵血生理.ppt
- 第6讲电磁位函数.ppt
- 第6讲索引和视图.ppt
- 第6讲群体与团队.ppt
- 第6讲视放及显像管附属电路.ppt
- 2025甘肃定西市水务投资(集团)有限公司遴选专业技术人员13人笔试历年参考题库附带答案详解.pdf
- 2025山东济南润易集团有限公司应届毕业生招聘6人笔试历年参考题库附带答案详解.pdf
- 2025山西建设投资集团有限公司高校毕业生招聘885人笔试历年参考题库附带答案详解.pdf
- 2025四川泸州市兴泸投资集团有限公司第一次招聘16人笔试历年参考题库附带答案详解.pdf
- 2025年上半年浙江瓯海城市建设投资集团有限公司招聘拟聘用(三)笔试历年参考题库附带答案详解.pdf
- 2025甘肃省公路交通建设集团有限公司春季招聘111人笔试历年参考题库附带答案详解.pdf
- 2025广东深圳九州光电子技术有限公司招聘工程师拟录用人员笔试历年参考题库附带答案详解.pdf
- 2025山东高速交通建设集团股份有限公司招聘32人笔试历年参考题库附带答案详解.pdf
- 2025国企校招开启简历要怎么才能突出自己优势笔试历年参考题库附带答案详解.pdf
- 2025年7月福建三明市明溪县君峰城市建设投资有限责任公司招聘5人笔试历年参考题库附带答案详解.pdf
文档评论(0)