📜  门| GATE CS 2019 |简体中文第62章

📅  最后修改于: 2021-06-28 21:06:41             🧑  作者: Mango

考虑下面的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)是正确的。

这个问题的测验