下列给定程序中,函数fun的功能是:计算如下公式 直到,并且把计算结果作为函数值返回。 例如,若形参e的值为1e-3,则函数返回值为0.551690。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行

admin2015-07-30  29

问题 下列给定程序中,函数fun的功能是:计算如下公式

直到,并且把计算结果作为函数值返回。
例如,若形参e的值为1e-3,则函数返回值为0.551690。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行。也不得更改程序的结构!
试题程序:
#include
double fun(double e)
{  int i t k;double s , t, x;
   s=0;k=1;i=2;
/**********found**********/
  x=【1】/4 ;
/**********found**********/
  while(x 【2】e)
  {  s=s+k*x;
k=k*(-1);
t=2*i;
/**********found**********/
x=【3】/(t*t),
i++;
}
return S;
}
main()
{double e=1e-3;
  printf("\nThe result is:%f\n",fun(e));
}

选项

答案【1】3.0或(double)3 【2】> 【3】(t+1)

解析 本题考查:基本算术运算的类型转换。其转换规则如下:
    如果双目运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致。
    如果双目运算符两边运算数的类型不一致,系统将自动进行类型转换,使运算符两边运算数的类型达到一致后再进行运算。其类型转换规律见下表。

    while循环语句,一般考查如何根据题意确定循环条件,以及如何通过循环变量的变化实现循环操作。
    填空1:变量x定义为double类型,而运算符“/”后面是整型数,因此给x赋值时,需要注意数据类型,此处不能将3.0写成3。
    填空2:while循环语句的循环条件。根据题意确定循环变量应大于1e-3,因此此处应填“>”。
    填空3:表达式的通项是(2*i+1)/(2*i)2,由于程序中已定义t=2*i,所以此处应该填写(t+1)。
    本题填空1还可以运用强制类型转换来实现。强制类型转换是通过类型转换运算来实现的,其一般形式为“(类型说明符)(表达式)”。
    其功能是:把表达式的运算结果强制转换成类型说明符所表示的类型。
    例如:
    (float)a    把a转换为实型
    (int)(x+y)    把x+y的结果转换为整型
转载请注明原文地址:https://jikaoti.com/ti/hZi0FFFM
0

最新回复(0)