Considere el siguiente programa en C:
#include<stdio.h> int r(){ int static num=7; return num--; } int main() { for(r();r();r()) { printf("%d ",r()); }; return 0; }
¿Cuál de los siguientes valores se mostrará en la ejecución de los programas?
(A) 41
(B) 52
(C) 63
(D) 630
Respuesta: (B)
Explicación: Según el ciclo “for” en C ,
for (initialization expr; test expr; update expr) { // body of the loop // statements we want to execute }
El código se ejecutará como el siguiente diagrama de flujo,
Además, tenga en cuenta que hay un postdecremento (num – -) en la declaración de devolución dada, por lo que devolverá el valor anterior de «num» y luego lo decrementará en 1.
Static asignará memoria una vez para la variable int «num» y todos los cambios ocurrirán aquí.
#include<stdio.h> int r(){ int static num=7; return num--; } int main() { for(r();r();r()) { printf("%d ",r()); }; return 0; }
Por lo tanto, el código dado imprimirá: 5 2 .
La opción (B) es correcta.
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