C语言程序设计课件:函数.pptx

C语言程序设计课件:函数.pptx

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

C语言程序设计;函数;C语言不仅提供了极为丰富的库函数(如TurboC,MSC都提供了三百多个库函数),还允许用户建立自己定义的函数。用户编写一个个相对独立的函数模块算法,然后用调用的方法来使用函数。;例8-1带参函数程序

main()

{inta,b,c;

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

c=fun(a,b);

printf(“funis%d”,c);

}

fun(intx,inty)

{intz;

if(xy)z=x;

elsez=y;

return(z);

}

;;;8.1函数的定义;8.2.1形式参数和实际参数 ;;;;;函数调用的一般形式为

被调用函数名([参数表达式1,参数表达式2,…,参数表达式n]);

其中,参数前不加数据类型说明,参数表达式可以是常量、变量或表达式。各个参数表达式之间用逗号分割。参数表示式的个数与该函数定义时形式参数的个数、数据类型都应该匹配,否则会出现预料不到的结果。如果被调用函数是无参函数,即[]中没有内容时,函数名后面的括号不要省略。

使用C语言的库函数就是函数简单调用的方法。例如:

main()

{

printf(“******\n”);

}

;(1)函数表达式

函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数有返回值。

例如:

z=max(x,y)*8;

其中,函数max是赋值表达式的一部分,它的值乘以8后在赋予变量z

(2)函数语句

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

例如:

printf(“%d”,m);

max(x,y);等都是以函数语句的方式调用函数。

;(3)函数实参

函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实参传递给调用函数,因此要求该函数必须有返回值。

例如:

printf(“%d”,max(m,n));

上述语句是把max函数的返回值又作为printf函数的实参来使用。

;对被调函数的说明也有两种格式,一种为传统格式。

其格式为:类型说明符被调函数名();

这种格式只给出函数返回值的类型,被调函数名及一个空括号。这种格式由于在括号中没有任何参数信息,因此不便于编译系统进行错误检查,容易发生错误。

另一种为现代格式,其一般形式为:

类型说明符被调函数名(类型形参,类型形参…);

或为:类型说明符被调函数名(类型,类型…);

现代格式的括号内给出了形参的类型和形参名,或只给出形参类型。这便于编译系统进行检错,以防止可能出现的错误。

max函数的说明若用传统格式可写为:

intmax();

用现代格式可写为:

intmax(inta,intb);或写为:intmax(int,int);

;注意:

(1)被调用的函数必须是已经存在的函数(是库函数或用户自己定义的函数)

(2)在调用系统函数时,需要用包含命令#include“头文件名.h”将定义系统函数的库文件包含在本程序中,有关包含命令的相关知识在后面章节中详细介绍。

(3)如果调用函数和主函数在一个编译单元中,则在书写顺序上被调用函数比主函数先出现;或者被调用函数虽然在主函数之后出现,而被调用函数的数据类型是整型或字符型,可以不对被调函数加以说明,除了上述两种情况以外,都要对被调用函数加以说明。

;函数的原型说明;8.3.3函数嵌套调用 ;例8-5用以下近似公式编程计算ex的值,ex=1+x+x2/2!+x3/3!+…(前20项的和)。

#includestdio.h

floatf2(intn)

{if(n==1)return1;

elsereturn(f2(n-1)*n);

}

floatf1(intx,intn)

{inti;floatj=1;

for(i=1;i=n;i++)

j=j*x;

returnj;

}

voidmain()

{floatexp=1.0;intn,x;

printf(“Inputanumber:”);

scanf(“%d”,x);printf(“%\n”,x);

exp=exp+x;

for(n=2;n=19;n++)exp=exp+f1(x,n)/f2(n);

prin

文档评论(0)

ning2021 + 关注
实名认证
内容提供者

中医资格证持证人

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

领域认证该用户于2023年05月10日上传了中医资格证

1亿VIP精品文档

相关文档