c语言函数课件.ppt_第1页
c语言函数课件.ppt_第2页
c语言函数课件.ppt_第3页
c语言函数课件.ppt_第4页
c语言函数课件.ppt_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、模块化编程基本思想:将一个大程序划分为按功能划分的小模块的功能:每个模块都相对独立,具有单一功能,结构清晰,简单的界面控制程序设计的复杂性提高开发组件的可靠性缩短开发周期程序开发避免重复性任务维护和功能扩展容易,第6章功能,C具有模块化编程语言,C程序结构,C具有基于函数的语言,并且只能有一个主函数C程序(名为main)的执行总是main,从用户角度看,函数分类标准函数(库函数):系统提供用户定义的函数提供的函数没有参数的函数,使用库函数:1,函数函数函数函数2,函数参数的数目和顺序,每个参数语义和类型3,函数返回值语义和类型4,所需的包含文件,Ch7_201.c,6.1Z=xy?X:yret

2、urn(z);,示例非本机函数print star() printf( * * * * * * * n );或print star(void) printf( * * * * * * * n );,返回语句格式:return(表达式);或return表达式;或return函数:通过调用函数说明启用程序控制,同时将返回值从调用的函数返回到调用函数。如果函数可以有多个return语句(),则当函数类型与return语句中的表达式值不匹配时,如果自动返回函数类型与return语句中的表达式值类型不匹配,则自动转换-函数将调用基于转换void的函数。例如,无返回值函数void swap (intx,i

3、nty) intr temp;temp=x;x=y;Y=temp,输入yes、creator和正整数n以查找以下表达式的值:必须定义和调用函数fact(k)以计算k的阶乘,函数返回值的类型为双精度。2006年春季考试题。double fact(intk) doubles=0;Inti,t=1;for(I=1);IB)c=1;else if(a=b)c=0;El sec=-1;return(c);,示例参数评估顺序,执行结果:0,调用函数语句1;主函数、主函数、Return语句或最后一个,执行函数调用的语义:1,传递实际参数值;2、将控制语句传递给发送的函数。也就是说,程序的执行被传递给主传输器

4、发送的函数。3、在函数中执行return语句,将返回值返回到主函数。print star() printf( * * * * * * * * * ); main() intra;a=print star();printf(“% d”,a);,实例函数返回不确定性。输出:10,voidprintstar() printf( * * * * * * ); main() intra;a=print star();printf(“% d”,a);,编译错误!示例函数返回值类型转换,main()floata,b;IntcScanf (%f,%f,3,函数参数及其传递方式参与实际参数:函数定义时函数名称后

5、面括号中的变量名称实际参数:函数调用时函数名称后面括号中的表达式、示例比较两个数字,如果输出大数字,请按main() iiiscanf(“%d,% d”,说明1:实际参数的类型参数类型必须匹配,如果数量相同的实际参数类型不匹配,则自动将参数类型转换为格式参数类型3354函数调用转换参数在调用函数之前不会耗尽内存。调用函数时,为几何参数分配内存。调用结束、释放内存、参与形实际参数:定义函数时函数名后加括号的变量名实际参数:调用函数时函数名后加括号的表达式;说明2: 1。形参数仅在调用函数时分配存储单位,并在调用结束时释放分配的单元;2.实际参数可以是常数、变量、表达式等。也就是说,必须有确定的值

6、,在调用函数时,将实际参数的值传递给参数,对于数组名,则传递数组的第一个地址。3.在调制函数中,必须指定形状参数类型以分配存储设备。4.实参,几何参的数据类型必须一致,赋值必须兼容,顺序必须一致。5.如果调制函数类型为非整形,请在主函数内声明或在主函数前定义调制函数的原型。6.实际参数到几何参数的数据传输是值传递或单向传输,调整函数的形状参数发生变化时,主函数实际值没有变化。计算x的立方体,# includefloatcube(floatx) return(x * x * x);main()floata,productprintf( pleaseinputvalueofa : );Scanf

7、(%f ,x,1.2,1.2,1.728,1,参数传递方法值传递方法:调用函数时,将单位分配给参数,并将实际参数值复制到参数中。调用结束,释放几何参数单位,保留实际参数单位,保留原始属性。形状参与参数使用不同的内存单位沿一个方向传递。例如,交换两个数字,/* ch7 _ 2 . c */# include main() intx=7,y=11Printf(x=%d,ty=%dn ,x,y);printf( swapped : n );Swap(x,y);Printf(x=%d,ty=%dn ,x,y); swap (intra,intb) intr temp;temp=a;a=b;B=temp

8、,函数描述呼叫的函数的需求:旧式资源库函数:#include使用者定义的函数:函数类型描述函数描述一般格式:函数类型函数名称(造型参数类型造型名称.);或函数类型函数名称();角色:函数定义告诉您编译的系统函数类型、参数数和类型,以确定函数说明与函数说明不同的函数说明位置。程序的数据说明部分(函数内部或外部)在以下情况下不能用作函数说明:如果函数返回值为char或int,则在某些系统(例如BorlandC)中,系统通过基于int的处理调用的函数定义开始函数之前,函数说明指示函数返回值类型和形类型,并且还需要基于void和int的函数的函数说明。示例函数说明示例,第二,地址传递方法:调用函数时,

9、将数据的存储地址作为参数传递给参数特性:具有相同几何参与参数的存储单元“双向”传递参数和参数用作地址常量或变量方法函数的参数的两个指针的参数数组,将指针(1)用作函数参数,将指针(地址)用作函数参数(2),使用指针作为函数参数,可以在调用函数时获取由调整后的函数更改的多个值。/* ch9 _ 3.c */swap (int * P1,int * p2) intp;P=* p1* p1=* p2* p2=p;main()inta,b;Scanf(%d,%d ,示例交换两个数字。例如,数组包含10个元素,需要输出其中最大和最小的元素值。# definen 10 main() voidmax _ m

10、in(intarr,int * pt1,int * pt2,intn);Intarray n=1,8,10,2,-5,0,7,15,4,-5,* P1,* p2,a,b;P1=、函数嵌套和递归调用(加)嵌套调用c规则:函数定义不能嵌套,但可以嵌套函数,例如求三个数字中最大和最小数量的差值。#includeintdif(intx、inty、intz);Intmax(intx、inty、intz);Intmin(intx、inty、intz);Voidmain()inta,b,c,d;Scanf (%d% d% d ,),ch7 _ 202.c,intdif (intx,inty,intz) returnmax (x,yintmax(int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论