📌  相关文章
📜  国际空间研究组织 | ISRO CS 2014 |问题 38

📅  最后修改于: 2022-05-13 01:58:05.108000             🧑  作者: Mango

国际空间研究组织 | 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)是正确的。
这个问题的测验