PUERTA | PUERTA-CS-2001 | Pregunta 42

¿Qué imprimen las sentencias de impresión en el programa P1 suponiendo que se pasa una llamada por parámetro de referencia?

Program P1()
{
   x = 10;
   y = 3;
   func1(y,x,x);
   print x;
   print y;
}
func1(x,y,z)
{
   y = y+4;
   z = x+y+z;
}

(A) 10, 3
(B) 31, 3
(C) 27, 7
(D) Ninguna de las anteriores

Respuesta: (B)
Explicación: Aquí, estamos pasando las variables por llamada por referencia. Esto significa que los cambios que haremos en el parámetro se verán reflejados en el argumento pasado.

Aquí, la primera variable pasada en la función func1 (es decir, y) apunta a la dirección de la variable x.

De manera similar, la segunda variable pasada en la función func1 (es decir, x) apunta a la dirección de la variable y y la tercera variable pasada en la función func1 (es decir, x) apunta a la dirección de la variable z.

Entonces, tenemos y = y + 4 ⇒ y = 10 + 4 = 14

y z = x + y + z ⇒ z = 14 + 14 + 3 = 31

z se devolverá a x. Entonces, x = 31 y y seguirá siendo 3.

Por lo tanto, la opción correcta es B.

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 *