Considere las siguientes funciones de C.
int fun1(int n) { static int i= 0; if (n > 0) { ++i; fun1(n-1); } return (i); } int fun2(int n) { static int i= 0; if (n>0) { i = i+ fun1 (n) ; fun2(n-1) ; } return (i); }
El valor de retorno de fun2(5) es ________ .
Nota: esta pregunta era de tipo numérico.
(A) 55
(B) 45
(C) 50
(D) 52
Respuesta: (A)
Explicación: fun1() suma su valor anterior debido a la ‘ variable estática ‘.
Por lo tanto, imprime 55.
#include <stdio.h> int fun1(int n); int fun2(int n); int fun1(int n) { static int i= 0; if (n > 0) { ++i; fun1(n-1); } return (i); } int fun2(int n) { static int i= 0; if (n>0) { i = i+ fun1 (n) ; fun2(n-1) ; } return (i); } int main() { printf("%d", fun2(5)); return 0; }
Código: https://ide.geeksforgeeks.org/RAcxRv1gaA
La opción (A) 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