考虑下面的C程序:
#include
int main() {
float sum = 0.0, j = 1.0, i = 2.0;
while (i / j > 0.0625) {
j = j + j;
printf("%f\n", sum);
};
return 0;
}
当执行上述程序时,将打印变量sum的次数为_________。
注意:这是数值类型的问题。
(A) 5
(B) 6
(C) 4
(D) 0答案: (A)
解释:
#include
int main() {
float sum = 0.0, j = 1.0, i = 2.0;
while (i / j > 0.0625) {
j = j + j;
printf("%f\n", sum);
};
return 0;
}
根据“ while”循环,
Initially i = 2.0, j = 1.0
i / j = 2.0 / 1. 0 = 2.0 > 0.0625
j = j + j
j = 2.0
printed sum = 0.0
Second time,
i / j = 1 > 0.0625
j = 4
printed sum = 0.0
Third time,
i / j = 0.5 > 0.0625
j = 8
printed sum = 0.0
Fourth time,
i / j = 0.25 > 0.0625
j = 16
printed sum = 0.0
Fifth time,
i / j = 0.125 > 0.0625
j = 32
printed sum = 0.0
Sixth time,
i / j = 0.0625 = 0.0625
It violates the greater then condition.
This time while loop will not execute.
因此,选项(A)是正确的。
这个问题的测验