- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第1章 C语言概述.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第2章 数据类型表达式及其运算.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第3章 顺序结构程序设计.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第4章 选择结构程序设计.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第5章 循环结构程序设计.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第6章 数组和指向数组的指针.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第7章 函数与指针.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第8章 结构体和共用体.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第9章 文件.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第10章 C语言屏幕操作函数及应用.ppt
- 小平方房屋买卖合同(28篇).docx
- 渭华起义馆观后感作文500字五篇.docx
- 自然语言处理NLPTextRNN实现情感分类.docx
- 清明节继承先烈遗志演讲稿700字(24篇).docx
- 语文五年级上册第18课慈母情深部编版.docx
- Unit5Thevalueofmoneywords1单词课件高中人教版(2019)(1).pptx
- 中考英语话题复习之兴趣爱好省公开课金奖全国赛课一等奖微课获奖课件.pptx
- Unit1FestivalsandCelebrationsReadingandthinking课件-人教版高中英语.pptx
- 监狱防爆车采购合同协议.docx
- 电力服务代办合同协议.docx
文档评论(0)