网站大量收购独家精品文档,联系QQ:2885784924

C语言程序设计(第二版) 教学课件 作者 刘加海 朱云其第六章 第六章.ppt

C语言程序设计(第二版) 教学课件 作者 刘加海 朱云其第六章 第六章.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Company Logo LOGO 第6章 函数及其应用 本章重点 § 函数的原型 § 函数的参数传递 § 系统函数的调用 § 函数的定义 § 函数的应用 § 函数的递归调用 本章难点 § 函数的原型 § 函数的参数传递 § 函数的定义 § 函数的递归调用 6.1 函数的基本概念 C语言中的函数可分为系统函数及自定义函数。不论是系统函数还是自定义函数,都有一定的格式,即函数原型,其形式如下: 函数返回值类型 函数名(形式参数列表); 自定义函数的格式如下: 函数返回值类型 函数名(形式参数声明) { 函数体; } 1)函数add有几个参数?参数间用什么分隔?函数返回值是什么类型? int add(int x,int y) { int z; z=x+y; return z; } 说明:此函数的原型为:int add(int x,int y); 函数的调用形式:y=add(a,b); 其中a、b为实参,x、y为形参,实参是不带类型说明的。 2)如果省略函数返回值类型,请思考函数返回值是什么类型?如何检验? 3)下列函数返回值是什么类型? int f( int i ) { double x; x=i/2; return x; } 6.2 函数的参数 调用函数时,实参的值一一复制给形参。当从被调用的函数返回到主函数时,形参被释放。在函数内部对形参的任何操作,其结果都只影响形参的值,而不影响实参的值。形参和实参结合分为两种形式:数据复制方式和地址传送方式。 1. 数据复制方式传递数据 【例6.1】 函数值传递的例子。 注意: 1)函数add被调用时,形参变量x、y被创建,main函数中变量a、b分别传递给被调函数add中的变量x、y,实参与形参占用不同的存储空间。 2)形参变量的值是从实参中一一对应复制得到的。 在程序6-1.c中,变量x、y和z的作用范围是什么? 编辑源程序代码6-1.c 2. 地址传送方式传递数据 地址方式传递的参数可以是变量的地址、指针和数组名,在本章中主要针对数组名进行介绍。 【例6.2】 函数地址传递的例子。在main函数中读入一个由数字字符组成的字符串,把数组名作为函数的参数,传给另一个函数,此函数把这个数字字符转换为一个整 型数。 分析:假定有数字字符数组char str[20]=123;int sum=0;具体运算过程如下。 第1步:i=0;sum=sum*10+str[i]-0;此时sum=1,然后i++; 第2步:i=1;sum=sum*10+str[i]-0;此时sum=12,然后i++; 第3步:i=2;sum=sum*10+str[i]-0;此时sum=123,然后i++; 第4步:i=3;字符串结束,程序结束。 编辑源程序代码6-2.c 图6.1 程序流程图 6.3 系统函数的应用 C语言提供了丰富的库函数。这些函数包括常用的数学函数,如求正弦值的sin函数、求平方根值的sqrt函数等;对字符和字符串进行处理的函数、输入/输出函数,如strcmp、gets等。读者应该学会正确调用这些已有的库函数,而不必自己编写。 调用C语言标准库函数时要包含函数库。例如,调用数学库函数时,要求程序在调用数学库函数之前包含#includemath.h命令。 6.3.1 数学函数 常用的数学函数有sqrt、pow、ln、exp、sin、fabs等。 【例6.3】 求z=xy +c的值。在C语言中xy可以通过调用pow函数来求得。 pow函数的函数原型如下: double pow(double x,double y); 它表示pow函数有两个double型的形参x和y,调用后的返回值也为double型,在表达式调用中可表示为 z= pow(x,y)+c; 编辑源程序代码6-3.c: #includestdio.h #includemath.h int main( ) { double x,y,z,c; printf(please input x y c\n); scanf(%lf%lf%lf,x,y,c); z=pow(x,y)+c; /* 表达式形式调用函数pow */ printf(z=%lf\n,z); return 0; } 如何求y=logax的值,a、x

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档