1、计算机三级数据库技术-108 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.下列程序的功能是:利用如下的简单迭代方法求方程 cos(x)-x=0的一个实根。 x(n+1)=cos(xn) 迭代步骤如下: (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的一个实根,作为函数值返回。 请编写函数 countValue()实现程序功能
2、,最后调用函数 writeDAT(),把结果输出到文件 OUT.DAT中。 请勿改动主函数 main()和写函数 writeDAT()的内容。 试题程序 #includestdlib.h #includemath.h #includestdio.h void writeDAT(); float countValue() void main() system(“CLS“); printf(“实根=%fn“,countValue(); printf(“%fn“,cos(countValue()- countValue(); writeDAT(); void writeDAT() FILE* wf;
3、 wf=fopen(“OUT.DAT“,“w“); fprintf(wf,“%fn“,countValue(); fclose(wf); (分数:100.00)_计算机三级数据库技术-108 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.下列程序的功能是:利用如下的简单迭代方法求方程 cos(x)-x=0的一个实根。 x(n+1)=cos(xn) 迭代步骤如下: (1)取 x1初值为 0.0。 (2)x0=x1,把 x1的值赋给 x0。 (3)x1=cos(x0),求出一个新的 x1。 (4)若 x0-x1的绝对值小于 0.000001,执
4、行步骤(5),否则执行步骤(2)。 (5)所求 x1就是方程 cos(x)-x=0的一个实根,作为函数值返回。 请编写函数 countValue()实现程序功能,最后调用函数 writeDAT(),把结果输出到文件 OUT.DAT中。 请勿改动主函数 main()和写函数 writeDAT()的内容。 试题程序 #includestdlib.h #includemath.h #includestdio.h void writeDAT(); float countValue() void main() system(“CLS“); printf(“实根=%fn“,countValue(); pr
5、intf(“%fn“,cos(countValue()- countValue(); writeDAT(); void writeDAT() FILE* wf; wf=fopen(“OUT.DAT“,“w“); fprintf(wf,“%fn“,countValue(); fclose(wf); (分数:100.00)_正确答案:()解析:Float countValue( ) float x0,x1=0.0; /*定义两个浮点型变量进行迭代*/ while(1) /*无条件循环*/ x0=x1; /*将 x1赋值给 x0*/ x1=cos(x0); /*求出新的 x1*/ if(fabs(x0-x1)1e-6) break; /*若 x0-x1的绝对值小于 0.000001,则结束循环*/ return x1; /*返回 x1 的值*/ 考点 本题考查数学计算问题。考查的知识点主要包括:C 语言循环结构,迭代算法,if 判断结构和逻辑表达式,浮点型数据的相等比较。 此题属于数学计算题型。题目要求实现函数 countValue()的功能。本题的解题思路是:首先通过一个无条件循环结构作为程序的主体,在该循环体中实现迭代运算,且当条件“x0-x1 的绝对值小于 0.000001“满足时,退出循环,停止计算,此时 x1就是要计算的结果,最后函数返回该结果。