函数的声明与定义1_第1页
函数的声明与定义1_第2页
函数的声明与定义1_第3页
函数的声明与定义1_第4页
函数的声明与定义1_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

模块化程序设计,模块化程序设计就是进行大程序设计的一种有效措施。其基本思想是将一个大程序按功能进行分割成一些模块,使每一个模块都成为功能单一、结构清晰、接口简单、容易理解的小程序。,函数,无论涉及的问题是复杂还是简单,规模是大还是小,用C语言设计程序,任务只有一种,就是编写函数,至少也要写一个main()函数。执行C程序就是执行相应的main()函数,即从它的main()函数的第一个前花括号开始,依次执行后面的语句,直到最后的后花括号为止。其它函数只有在执行main()函数的过程中被调用时才执行。,main()inta,sum=0;for(a=1;a=10;a+)sum=sum+a*a;printf(“%d”,sum);,C语言函数,一、数学函数二、字符函数三、字符串函数四、输入输出函数五、动态存储分配函数stdlib.h六、其他函数,math.h,ctype.h,string.h,stdio.h,C语言中所有的函数都在其相应的库中。,一个完整的C源程序必须含有一个主函数(即main函数)和若干个子函数。main()inta;scanf(“%d”,一个完整的C源程序必须含有一个主函数(即main函数)和若干个子函数。main()inta;scanf(“%d”,求两个数之和,main()inta,b,c;intadd(intm,intn);scanf(“%d%d”,intadd(intm,intn)intd;d=m+n;return(d);,自定义的一个函数add();,求两个数之和,main()inta,b,c;intadd(intm,intn);scanf(“%d%d”,intadd(intm,intn)intd;d=m+n;return(d);,自定义的一个函数add();,函数体内容,函数定义的内容为:,函数类型,函数名,(类型形参名称),求两个数之和,main()inta,b,c;intadd(intm,intn);scanf(“%d%d”,intadd(intm,intn)intd;d=m+n;return(d);,自定义的一个函数add();,函数定义的内容为:,函数类型,函数名,(类型形参名称),函数体内容,1、自定义的函数只能写在main()之外2、在定义时后面不要加分号!,main()inta,b,c;intadd(intm,intn);scanf(“%d%d”,intadd(intm,intn)intd;d=m+n;return(d);,函数的定义,main()inta,b,c;intadd(intm,intn);scanf(“%d%d”,类型标识符,函数名,(标识符形参,标识符形参);,函数声明的一般格式为:,int,add,(intm,intn);,main()inta,b,c;intadd(intm,intn);scanf(“%d%d”,类型标识符,函数名,(标识符形参,标识符形参);,函数声明的一般格式为:,int,add,(intm,intn);,函数声明是对所用到的函数的特征进行必要的声明。编译系统以函数声明中给出的信息为依据,对调用表达式进行测试。,函数声明的意义:,main()inta,b,c;intadd(intm,intn);scanf(“%d%d”,函数的一般调用,调用方法:主调函数调用被调函数时,首先计算实参表中值,,函数名,(实参,实参);,调用方法:主调函数调用被调函数时,首先计算实参表中值,接着进行参数传递,再将控制转移到被调函数,,main()inta,b,c;intadd(intm,intn);scanf(“%d%d”,intadd(intm,intn)intd;d=m+n;return(d);,函数的一般调用,求两个数之和,main()inta,b,c;intadd(intm,intn);scanf(“%d%d”,intadd(intm,intn)intd;d=m+n;return(d);,被调函数的形参以及局部量开始起作用,然后执行函数体。,main()inta,b,c;intadd(intm,intn);scanf(“%d%d”,intadd(intm,intn)intd;d=m+n;return(d);,当函数执行完毕时,控制返回到主调函数继续执行。,main()inta,b,c;intadd(intm,intn);scanf(“%d%d”,intadd(intm,intn)intd;d=m+n;return(d);,函数的返回,函数执行的最后一个操作是返回。返回的意义是:(1)使流程返回主调函数,宣告函数的一次执行终结,在调用期间所分配的变量单元被撤销。(2)送函数值到调用表达式中。有些函数有返回值,有些函数可以没有返回值。,void的函数类型,/*打印n个空格的函数*/voidspc(intn)inti;for(i=0;in;i+)printf(“”);return;,这个函数只执行打印n个空格的操作,不返回任何值到调用函数中,所以将用void定义它。,C语言中,当不带表达式的return语句省去,用作函数体结束的右花括号也会将流程返回调用函数。,/*打印n个空格的函数*/voidspc(intn)inti;for(i=0;in;i+)printf(“”);return;,此语句可省略!,main()inta,b,c;intadd(intm,intn);scanf(“%d%d”,intadd(intm,intn)intd;d=m+n;return(d);,函数的定义,函数的调用,函数的声明,main()intadd(intm,intn);c=add(a,b);,intadd(intm,intn)intd;d=m+n;return(d);,函数的定义,函数的调用,函数的声明,main()intadd(intm,intn);c=add(a,b);,intadd(intm,intn)intd;d=m+n;return(d);,函数的定义,函数的调用,函数的声明,函数的声明与函数的调用均是在main()函数中,函数的定义在main()之外,故不需加分号。,1,main()intadd(intm,intn);c=add(a,b);,intadd(intm,intn)intd;d=m+n;return(d);,函数的定义,函数的调用,函数的声明,1,main()intadd(intm,intn);c=add(a,b);,intadd(intm,intn)intd;d=m+n;return(d);,函数的调用,1,main()intadd(intm,intn);c=add(a,b);,intadd(intm,intn)intd;d=m+n;return(d);,函数的调用,1,对表达式x2-x+1(x=0),在一个函数中允许有一个或多个return语句,流程执行到其中一个return时即返回主调用函数。,可写出一个函数:floaty(floatx)if(x0)return(x*x-x+1);elsereturn(x*x*x+x+3);,floaty(floatx)if(x0)return(x*x-x+1);elsereturn(x*x*x+x+3);,main()floaty(floatx);floatn,m;scanf(“%f”,floaty(floatx)if(x0)return(x*x-x+1);elsereturn(x*x*x+x+3);,main()floaty(floatx);floatn,m;scanf(“%f”,输入-2,则:,floaty(floatx)if(x0)return(x*x-x+1)

温馨提示

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

评论

0/150

提交评论