ISRO | CS ISRO 2014 | Pregunta 38

¿Cuántas líneas de salida produce el siguiente código C?

#include<stdio.h>
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);
    }
}

(A) 8
(B) 9
(C) 10
(D) 11

Respuesta: (D)
Explicación: Dado, i = 2.0 y j = 1.0.
Dado que «i» no cambia, para satisfacer la condición:

 i/j > 0.001 
→ 2.0/j > 0.001
→ 2.0/0.001 > j
→ 2000 > j 

El valor de «j» debe ser inferior a 2000 para satisfacer la condición dada. El valor de «j» aumenta en potencia de 2, es decir, 2 n . Asi que,

 2n > 2000
→ n > 10.9657
→ n = 11 

Entonces, después de la línea 11, el ciclo while terminará.
La salida real es:

1.000000
1.500000
1.750000
1.875000
1.937500
1.968750
1.984375
1.992188
1.996094
1.998047
1.999023

Estos son un total de 11 líneas.

Entonces, la opción (D) es correcta.
Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *