El siguiente fragmento de programa está escrito en un lenguaje de programación que permite variables y no permite declaraciones anidadas de funciones.
global int i = 100, j = 5; void P(x) { int i = 10; print(x + 10); i = 200; j = 20; print(x); } main() { P(i + j); }
Si el lenguaje de programación utiliza un alcance dinámico y un mecanismo de transferencia de parámetros de llamada por nombre, los valores impresos por el programa anterior son:
(A) 115, 220
(B) 25, 220
(C) 25, 15
(D) 115, 105
Respuesta: (A)
Explicación:
global int i = 100, j = 5; void P(x) // x = i + j { int i = 10; print(x + 10);// print (100+5+10) = 115 i = 200; j = 20; print(x); // print (200+20) = 220. // i and j would be changed as they are global variables } main() { P(i + j); }
Por lo tanto, A es la opción correcta ya que se imprimen 115 y 220.
Comente a continuación si encuentra algo incorrecto en la publicación anterior.
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