第9讲-C课件函数.ppt

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

;C程序的模块化结构;一个较大的程序可分为若干个程序模块,每一个模块用来实现一个特定的功能。在高级语言中用子程序实现模块的功能。子程序由函数来完成。

函数间的调用关系:由主函数调用其他函数,其他函数也可以互相调用。同一个函数可以被一个或多个函数调用任意多次。

;函数概述;函数的分类

从用户的观点分为:C编译系统提供的标准库函数和用户自定义函数;

从函数间数据传送的关系分为:有参函数、无参函数、有返回值函数、无返回值函数;

从函数的调用分为:内部函数和外部函数。

;函数的定义;函数定义的一般形式;函数定义的一般形式举例:;函数定义的一般形式说明:;floatsum(floatx,floaty)

{intz;

z=x+y;

returnz;

};floatsum(floatx,floaty)

{……

};floatsum(floatx,floaty)

{intz;

z=x+y;

returnz;

};形式参数和实际参数

实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值、输入等办法使实参获得确定值。

实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。

若形参与实参类型不一致,自动按形参类型转换———函数调用转换。

;例编写自定义函数计算:;#includestdio.h

intmax(inta,intb);//函数的原型声明

voidmain()

{

inta,b,c;

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

c=max(a,b);//函数调用(a、b为实参)

printf(thebiggestnumberis:%d\n,c);

}

intmax(inta,intb)//函数定义(a、b为形参)

{

return(ab?a:b);

};说明:

实参与形参的个数相等、类型相同、顺序一致,呈一一对应的关系。

实参的求值顺序不确定,与所用系统有关。

实参应有确定的值。;函数调用的方式

函数语句:(函数调用的一般形式加上分号即构成函数语句)

函数表达式

函数参数;函数调用的一般形式;例:说出下列程序的运行结果;函数的返回值:当被调用函数在完成一定的功能后,可以将处理的结果返回到调用函数。

;对于不需要提供返回值的函数可以???接用void作为函数类型定义,以表明此函数返回值为”无类型”或”空类型”。

voidpsch()

{printf(WuhanUniversity\n);}

main()

{psch();};对被调用函数的说明;

#includestdio.h

voidmain()

{floatadd(floatx,floaty);

/*对被调用函数add的声明*/

floata,b,c;

scanf("%f,%f",&a,&b);

c=add(a,b);

printf("sumis%f\n“,c);

floatadd(floatx,floaty)/*函数首部*/

{floatz;/*函数体*/

z=x+y;

return(z);

};例判定素数。;函数参数的传递方式;;2、地址传递方式;例:将任意两个字符串连接成一个字符串(数组名作为函数参数实现地址传递方式);str1;数组元素做函数实参,遵循”值传送”特性,此时形参为变量。

数组名可做实参和形参,传送的是整个数组。

在用数组名做函数参数时,实参和形参都应该用数组(或指针变量)。;有一个一维数组score,内放10个学生成绩,求平均成绩。

#includestdio.h

voidmain()

{floataverage(floatarray[10]);

/*函数声明*/

floatscore[10],aver;

inti;

printf(″input10scores:\n″);

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

scanf(″%f″

文档评论(0)

158****7198 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档