数-学-实-验.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数-学-实-验

实验五 函数编程设计 一、实验目的 掌握函数的说明、定义和调用方法 掌握函数的嵌套和递归调用 掌握文件包含处理的用途和方法 编译预处理介绍 二、函数编程 函数的一般形式是: 返回类型 函数名(参数列表) {   函数体 } 函数的定义从形式上可以分成三种:无参函数、有参函数和空函数。 函数返回的值有一个类型问题,系统默认返回值是整型,如果是其他类型则要加以说明,允许的类型可以是浮点型、双精度型和各种指针类型,也可以是void类型。函数返回值的类型和函数定义中函数的类型必须保持一致。 二、函数编程(续1) 如果一个函数要使用变元,就必须声明接受变元的变量。这些变量称为函数的形式参数,它们就像函数内的其它局部变量,在进入到函数时创建,在退出函数时销毁。 1、定义无参和有参函数的方法: 例1、验证一个无参函数,它仅输出“How are you.”。 #include stdio.h void Show() { printf(How are you. \n); } void main() { Show(); } 二、函数编程(续2) 验证一个有参函数,它能输出参数内容。 #include stdio.h void Show(char ch) { printf(%c,ch); } void main() { Show(H); Show(o); Show(w); Show(\n); } 二、函数编程(续3) 2、理解函数实参和形参的对应关系及值传递方式与地址传递方式 1)编写函数swap,将两数交换位置,参考程序如下: #include stdio.h void swap(int x,int y) { int temp; temp=x; x=y; y=temp; printf(x=%d,y=%d\n,x,y) -------① } void main() { int a=3,b=5; swap(a,b); printf(a=%d,b=%d\n,a,b) } 二、函数编程(续4) ①请上机录入以上程序并进行验证,对程序运行过程中变量空间的开辟和值的变化情况做一个图示分析。 ②在程序①处设置断点,查看main( )函数中a、b变量的值以及swap( )函数中的x、y和temp变量的值。 2)编写函数reverse,将数组中的数颠倒存放。在操作时,要求只能借助一个临时存储单元,而不得另外开辟数组空间。参考程序如下: 二、函数编程(续5)  #include stdio.h void reverse(int a[],int n) { int i,j,k; for(i=0,j=n-1;ij;i++,j--) { k=a[i]; a[i]=a[j]; a[j]=k; } } void main() { int i; int s[]={1,2,3,4,5,6,7,8,9}; revserse(s,9); //颠倒存放 for(i=0;i9;i++) //输出颠倒后的数组元素 printf(%d,s[i]); } 二、函数编程(续6) 上机录入以上程序并输出运行结果。 从上述两个例子可以看到,函数的实参传递到形参有两种方式,即值传递和地址传递。 当用简单变量作函数参数时,函数调用中发生的数据传递是单向的,即只能把实参的值传递给形参,而不能将形参的值反向传送给实参。因此,在函数调用过程中,若形参的值发生改变,则实参中的值是不会跟着变化的。 用数组作函数参数,就是将数组的首地址传递给函数,实参数组和形参数组占用同一段内存,在函数中对形参数组元素修改的结果,会影响结果主调函数中的实参数组,它的数据传递是双向的。 二、函数编程(续7) 3、C语言允许在一个函数的定义中调用另一个函数,称为函数的嵌套调用,即在被调函数中调用了其他函数。 一个函数在函数体内调用自身的情况称为递归调用。这是一种特殊的嵌套调用,C语言允许函数的递归调用。在递归调用中,主调函数同时又是被调函数。 二、函数编程(续8) 完善如下求n!的递归函数并进行验证。 long factorial(int n) { long f; if (n 0) { printf(n0,inpu error); } else if (n == 0 || n == 1) { f = 1; printf(%ld\n, f); } else { f = n * factorial(n-1); printf(%ld\n, f); } return(f); } 三、编译预处理 编译预处理是C

文档评论(0)

zijingling + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档