1、三级数据库技术-517 及答案解析(总分:100.00,做题时间:90 分钟)一、设计与应用题(总题数:1,分数:100.00)1.程序 test.c的功能是:利用以下所示的简单迭代方法求方程 cos(x)-x=0的一个实根。 迭代公式:x n+1 =cos(x n )(n是迭代次数) 迭代步骤如下: (1)取 x1初值为 0.0; (2)x0=x1,把 x1的值赋给 x0; (3)x1=cos(x0),求出一个新的 x1; (4)若 x0-x1的绝对值小于 0.000001,执行步骤(5),否则执行步骤(2); (5)所求 x1就是方程 cos(x)-x=0的一个实根,作为函数值返回。 请编
2、写函数 countValue()实现程序的功能,最后 main()函数调用函数 writeDAT()把结果输出到文件out.dat中。 请勿改动主函数 main()和输出数据函数 writeDAT()的内容。 #include math.h /表示这个程序中要引用 vc6.0的数学库函数 #include stdio.h /表示这个程序要引用 vc6.0的标准输入输出函数 void writeDAT(); /writeDAT()函数的说明语句 double countValue() main () printf (“实根=%fn“, countValue (); /在屏幕上显示方程的一个实根
3、printf (“ %fn“, cos (countValue () -countValue (); /在屏幕显示求得这个实根的精度 writeDAT (); /把结果输出到文件 out.dat中 / *函数 writeDAT()把结果输出到文件 out.dat中* / void writeDAT() FILE *wf; /定义文件指针变量 wf wf=fopen ( “out.dat“, “w“ ); /以只写的方式打开 out.dat,并使 wf指向这个文件 fprintf(wf, “%fkn“, countValue(); /把求得的实根写入到文件 out.dat fclose (wf)
4、; /关闭文件 out.dat (分数:100.00)_三级数据库技术-517 答案解析(总分:100.00,做题时间:90 分钟)一、设计与应用题(总题数:1,分数:100.00)1.程序 test.c的功能是:利用以下所示的简单迭代方法求方程 cos(x)-x=0的一个实根。 迭代公式:x n+1 =cos(x n )(n是迭代次数) 迭代步骤如下: (1)取 x1初值为 0.0; (2)x0=x1,把 x1的值赋给 x0; (3)x1=cos(x0),求出一个新的 x1; (4)若 x0-x1的绝对值小于 0.000001,执行步骤(5),否则执行步骤(2); (5)所求 x1就是方程
5、cos(x)-x=0的一个实根,作为函数值返回。 请编写函数 countValue()实现程序的功能,最后 main()函数调用函数 writeDAT()把结果输出到文件out.dat中。 请勿改动主函数 main()和输出数据函数 writeDAT()的内容。 #include math.h /表示这个程序中要引用 vc6.0的数学库函数 #include stdio.h /表示这个程序要引用 vc6.0的标准输入输出函数 void writeDAT(); /writeDAT()函数的说明语句 double countValue() main () printf (“实根=%fn“, cou
6、ntValue (); /在屏幕上显示方程的一个实根 printf (“ %fn“, cos (countValue () -countValue (); /在屏幕显示求得这个实根的精度 writeDAT (); /把结果输出到文件 out.dat中 / *函数 writeDAT()把结果输出到文件 out.dat中* / void writeDAT() FILE *wf; /定义文件指针变量 wf wf=fopen ( “out.dat“, “w“ ); /以只写的方式打开 out.dat,并使 wf指向这个文件 fprintf(wf, “%fkn“, countValue(); /把求得的
7、实根写入到文件 out.dat fclose (wf); /关闭文件 out.dat (分数:100.00)_正确答案:()解析:double x1,x1=0.0; /定义双精度型变量 x0,x1,变量 x1赋初值为 0.0 while(1) /执行 while循环语句 x0=x1; /把 x1的值赋给 x0 x1=cos(x0); /求出一个新的 x1 if(fabs(x0-x1)0.000001) /如果 x0-x1的绝对值小于 0.000001,则退出循环 break; /退出循环 return x1; /此时 x1的值就是方程的一个实根 解析 Xn+1=cos(Xn)的迭代计算。 因为方程 cos(x)-x=0的根为实数,所以定义两个双精度型变量 x0,x1。并把变量 x1的初值设为 0.0。 根据题目中给出的求方程一个实根的迭代算法,在 while循环中,首先把变量 x1的值赋给 x0,然后利用表达式 cos(x0)求出一个值 x1,再调用 vc6.0的求绝对值的库函数 fabs(),判断如果 x0与 x1差的绝对值小于 0.000001,就认为 x1的值是方程 cos(x)-x=0的一个实根,此时退出循环,把 x1的值返回。