1、三级数据库技术机试-195 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编写函数 findRoot(),其功能是:利用以下所示的简单迭代方法求方程 cos(x)-x=0 的一个实根。迭代步骤如下:(1)取 x1初值为 0.0。(2)把 x1的值赋给 x0,即 x0=x1。(3)求出一个新的 x1,即 x1=cos(x0)。(4)若 x0-x1的绝对值小于 0.000001,执行步骤(5),否则执行步骤(2)。(5)所求 x1就是方程 cos(x)-x=0 的一个实根,作为函数值返回。函数 writeData()负责把结果输出到 OUT
2、.DAT 文件中。注意:部分源程序已给出。请勿改动主函数 main()和写函数 writeData()的内容。试题程序:#includestdlib.h#includemath.h#includestdio.hvoid writeData();float findRoot()float x1=0.00,x0;int i=0;dox0=x1;/将 x1 的值赋给 x0x1=cos(x0);/得到一个新的 x1 的值while(fabs(x1-x0)0.000001);/如果误差比所要求的值大,则继续循环return x1;void main()system(“CLS“);printf(“root
3、=%f“,findRoot();writeData();void writeData()FILE*wf;wf=fopen(“OUT.DAT“,“w“);fprintf(wf,“%f“,findRoot():fclose(wf);(分数:100.00)_三级数据库技术机试-195 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编写函数 findRoot(),其功能是:利用以下所示的简单迭代方法求方程 cos(x)-x=0 的一个实根。迭代步骤如下:(1)取 x1初值为 0.0。(2)把 x1的值赋给 x0,即 x0=x1。(3)求出一个新的
4、 x1,即 x1=cos(x0)。(4)若 x0-x1的绝对值小于 0.000001,执行步骤(5),否则执行步骤(2)。(5)所求 x1就是方程 cos(x)-x=0 的一个实根,作为函数值返回。函数 writeData()负责把结果输出到 OUT.DAT 文件中。注意:部分源程序已给出。请勿改动主函数 main()和写函数 writeData()的内容。试题程序:#includestdlib.h#includemath.h#includestdio.hvoid writeData();float findRoot()float x1=0.00,x0;int i=0;dox0=x1;/将 x
5、1 的值赋给 x0x1=cos(x0);/得到一个新的 x1 的值while(fabs(x1-x0)0.000001);/如果误差比所要求的值大,则继续循环return x1;void main()system(“CLS“);printf(“root=%f“,findRoot();writeData();void writeData()FILE*wf;wf=fopen(“OUT.DAT“,“w“);fprintf(wf,“%f“,findRoot():fclose(wf);(分数:100.00)_正确答案:(float findRoot()float x1=0.00,x0;int i=0;dox0=x1;/将 x1 的值赋给 x0x1=cos(x0);/得到一个新的 x1 的值while(fabs(x1-x0)0.000001);/如果误差比所要求的值大,则继续循环return x1;)解析:解析 本题主要考查方程的数值解法。题目较简单,按照题目中所给的流程即可很快编出程序。