首页 理论教育C语言函数嵌套调用-C语言程序设计基础(第3版)

C语言函数嵌套调用-C语言程序设计基础(第3版)

【摘要】:图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果

图5.7 两层函数嵌套调用示意图

函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。一个两层嵌套函数调用的执行过程如图5.7所示,程序在主函数main的执行过程中调用了函数fun1,此时主函数并未执行完成但程序的控制流程已经从主函数转移到了函数fun1中;函数fun1在执行的过程中又调用了函数fun2,此时函数fun1并未执行完成但程序的控制流程已经转移到了函数fun2中;函数fun2执行完成后程序的控制流程会返回到函数fun1中对fun2的调用点继续执行函数fun1中未完成部分,当函数fun1执行完成后程序的控制流程返回主函数继续执行直至程序执行完成。

【例5.8】 编程序计算e x的近似数(要求用下面的近似公式计算,精确到10-6)。

解题思路:针对上面的近似公式,可以把问题分解为“求各项值模块”和“求和模块”,对于“求各项值模块”又可以分解为“求幂模块”和“求阶乘模块”。设计3个函数的功能及对应的函数原型如下所示:

①powers函数,参数为x,n,返回值为xn,函数原型为:

double powers(double x,int n);

②fac函数,参数为n,返回值为n!,函数原型为:

double fac(int n);

③sum函数,参数为x,返回值为e x,函数原型为:(www.chuimin.cn)

程序执行时,main函数通过调用sum函数求各项之和,sum函数在每一项的计算过程中,又分别调用了powers函数和fac函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!以及xn数值产生溢出错误。程序一次执行的过程和结果是:

?x:0.5 //0.5从键盘输入的数据

0.50 powers of e=1.648721 //程序执行结果