国际空间研究组织 | ISRO CS 2014 |问题 38
以下 C 代码产生多少行输出?
#include
float i=2.0;
float j=1.0;
float sum = 0.0;
main()
{
while (i/j > 0.001)
{
j+=j;
sum=sum+(i/j);
printf("%f\n", sum);
}
}
(一) 8
(乙) 9
(三) 10
(四) 11答案: (D)
解释:给定,i = 2.0 和 j = 1.0。
由于“i”不变,满足条件:
i/j > 0.001
→ 2.0/j > 0.001
→ 2.0/0.001 > j
→ 2000 > j
“j”的值应小于 2000 以满足给定条件。 “j”的值以 2 的幂次方递增,即 2 n 。所以,
2n > 2000
→ n > 10.9657
→ n = 11
因此,在第 11 行之后,while 循环将终止。
实际输出为:
1.000000
1.500000
1.750000
1.875000
1.937500
1.968750
1.984375
1.992188
1.996094
1.998047
1.999023
这些是总共11行。
所以,选项(D)是正确的。
这个问题的测验