问答题
18分
下列给定程序中函数fun的功能是:用递归算法求形参a的平方根。求平方根的迭代公式如下:例如,a为2时,平方根值为:1.414214。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MO...
下列给定程序中函数fun的功能是:用递归算法求形参a的平方根。求平方根的迭代公式如下:
例如,a为2时,平方根值为:1.414214。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!
例如,a为2时,平方根值为:1.414214。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!
参考解析: 【参考答案】
(1)double fun(double a,double x0)
(2)if(fabs(x1-x0)>=0.00001)
【考点分析】
本题考查:双精度实型变量定义(double);if语句条件表达式。
【解题思路】
用C语言求平方根的方法一般有两种经典的算法,分别是迭代法和递归法,本题要求仅用递归法。该程序采用了if语句,错误在于if语句的判断条件,程序的含义是当迭代结果差大于误差时进行循环,故正确的答案应该是if(fabs(x1-x0)>=0.00001)。
【解题宝典】
递归算法:一个过程或函数在其定义或说明时又直接或间接调用自身的一种方法。递归算法一般用于解决三类问题:
(1)数据的定义是按递归定义的。(Fibonacci函数)
(2)问题解法按递归算法实现。(回溯)
(3)数据的结构形式是按递归定义的。(树的遍历)