PUERTA | PUERTA-CS-2003 | Pregunta 74

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *