¿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