Considere el siguiente programa ANSI C.
#includeint main() { int i, j, count; count=0; i=0; for (j=-3; j<=3; j++) { if (( j >= 0) && (i++)) count = count + j; } count = count +i; printf(“%d”, count); return 0; }
¿Cuál de las siguientes opciones es la correcta?
(A) El programa no se compilará con éxito
(B) El programa se compilará con éxito y generará 10 cuando se ejecute
(C) El programa se compilará con éxito y generará 8 cuando se ejecute
(D) El programa se compilará con éxito y generará 13 cuando se ejecute
Respuesta: (B)
Explicación: Inicialmente, i=0, count=0 y un bucle for se ejecuta desde j= -3 hasta j=3.
Si la condición dentro del ciclo for se ejecutará cuando j>=0 e i no sea cero,
entonces para j=-3, -2, -1, no irá dentro de la condición if, ya que j es menor que 0.
Cuando j=0, el valor inicial de i también es 0, por lo que la condición if no se cumplirá, pero i++ incrementará el valor de i después de verificar la condición if. entonces ahora yo = 1.
Cuando j=1, el valor de i es 1, por lo que entrará en la condición if y el valor de count será 0+1 = 1, y i++ incrementará el valor de i después de verificar la condición if. entonces ahora yo = 2.
Cuando j=2, el valor de i es 2, por lo que entrará en la condición if y el valor de count será 1+2 = 3, y i++ incrementará el valor de i después de verificar la condición if. entonces ahora yo =3.
Cuando j=3, el valor de i es 3, por lo que entrará en la condición if y el valor de count será 3+3 =6, y i++ incrementará el valor de i después de verificar la condición if. entonces ahora yo =4.
Después de ejecutar el bucle for, el valor de la variable de conteo es 6 y el valor de i es 4.
Por lo tanto, conteo = conteo +i será 6+4=10.
Por lo tanto, el programa se compilará con éxito y generará 10 cuando se ejecute: https://ide.geeksforgeeks.org/lyJ79mDqil
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