c语言中函数调用机理的探讨,c语言中函数调用机理的探讨(3页)-原创力文档...

C语言中函数调用机理的探讨研究报告

——以求n 阶勒让德多项式的值为例

一.探究意义

通过c语言中函数调用机理的实例研究,尤其是过程较为为复杂的递归调用,实现对c语言函数调用逻辑关系的深入理解,并能将c语言函数调用这一重要功能运用于实际程序设计中。版权文档,请勿用做商业用途

探究方法

1.深入阅读理解课本所学相关知识点,结合网上相关资料,做好理论基础准备。

2.将一个数学递推公式利用函数递归调用的方式转换为c语言程序,在此基础上完成递归调用的理解。

三.理论基础

1.函数是由函数首部和函数体两部分组成。函数首部包括 函数类型 函数名(函数参数类型 函数参数(形参)名),函数体包括申明和执行(包含实参)两部分。版权文档,请勿用做商业用途

2.函数调用的过程

(1)定义函数的形参在未出现函数调用时不占内存的存储单元。在发生函数调用时,形参被临时分配内存单元。

(2)实参对应的值传递给形参,如实例中将3,2分别传给形参中的n,x,然后利用形参完成定义函数中的相关计算。版权文档,请勿用做商业用途

(3)通过return语句将函数值带回主调函数,如实例中的将a的值带回function(2,3)中,就得到了最终结果。版权文档,请勿用做商业用途

3.c语言的函数定义是相互平行独立的,但是能实现嵌套调用(调用一个函数中又调用另一个函数),也能实现递归调用(在调用一个函数的过程中直接或间接地调用该函数本身)。版权文档,请勿用做商业用途

四.实例探究

N阶勒让德多项式的递归公式为:

Pnx

C 语言程序

过程分析:

总体来看,自定义函数完成该公式的计算部分,主函数完成参数设置,函数调用和结果输出,由于自定义函数是在主函数前编写,可以略过函数申明这一部分。版权文档,请勿用做商业用途

在主函数中程序运行到function(简写为f)时,开始调用函数,过程如下:

fct(3,2)

a=10-f(2,2)-2*f(1,2)/3

a=f(2,2)=6-f(1,2)-2*f(0,2)/3

a=f(1,2)=2

a=f(0,2)=1

输入3,2

n=3

n=2

n=1

n=0

首先输入n(项数),x(自变量),在程序读到function(3,2)时,就把n=3,x=2传递给定义函数中的形参n和x,开始调用定义函数,每次调用f函数后都会产生返回值 a,这个值返回到调用f函数处 。例如,调用n=2时,a=6-f(1)-2*f(0)/3,再调用 f(1)=2,f(0) =1,返回值是3.50000,如下图所示,这个返回值就取代了n=3中的f(2,2),由此就可以得出最后的结果,递归的终止条件是n=0.版权文档,请勿用做商业用途

运行结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值