欢迎来到天天文库
浏览记录
ID:51686936
大小:33.50 KB
页数:3页
时间:2020-03-15
《C语言中函数调用机理的探讨.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、C语言中函数调用机理的探讨研究报告——以求n阶勒让德多项式的值为例一.探究意义通过c语言中函数调用机理的实例研究,尤其是过程较为为复杂的递归调用,实现对c语言函数调用逻辑关系的深入理解,并能将c语言函数调用这一重要功能运用于实际程序设计中。二.探究方法1.深入阅读理解课本所学相关知识点,结合网上相关资料,做好理论基础准备。2.将一个数学递推公式利用函数递归调用的方式转换为c语言程序,在此基础上完成递归调用的理解。三.理论基础1.函数是由函数首部和函数体两部分组成。函数首部包括函数类型函数名(函数参数类型函数参数(形参)名),函数体包括申明和
2、执行(包含实参)两部分。2.函数调用的过程(1)定义函数的形参在未出现函数调用时不占内存的存储单元。在发生函数调用时,形参被临时分配内存单元。(2)实参对应的值传递给形参,如实例中将3,2分别传给形参中的n,x,然后利用形参完成定义函数中的相关计算。(3)通过return语句将函数值带回主调函数,如实例中的将a的值带回function(2,3)中,就得到了最终结果。3.c语言的函数定义是相互平行独立的,但是能实现嵌套调用(调用一个函数中又调用另一个函数),也能实现递归调用(在调用一个函数的过程中直接或间接地调用该函数本身)。四.实例探究N阶
3、勒让德多项式的递归公式为:Pnx=1(n=0)x(n=1)2n-1∙x-Pn-1x-n-1∙Pn-2xn(n≥1)C语言程序过程分析:总体来看,自定义函数完成该公式的计算部分,主函数完成参数设置,函数调用和结果输出,由于自定义函数是在主函数前编写,可以略过函数申明这一部分。在主函数中程序运行到function(简写为f)时,开始调用函数,过程如下:fct(3,2)a=10-f(2,2)-2*f(1,2)/3a=f(2,2)=6-f(1,2)-2*f(0,2)/3a=f(1,2)=2a=f(0,2)=1输入3,2n=3n=2n=1n=0首先输
4、入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.运行结果
此文档下载收益归作者所有