PUERTA | PUERTA CS 2019 | Pregunta 36

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.

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 *