PUERTA | Puerta TI 2007 | Pregunta 33

Considere el siguiente programa en un lenguaje hipotético que permite una variable global y una opción de llamada por referencia o llamada por métodos de valor de paso de parámetros.

int i ;
program main ()
{
    int j = 60;
    i = 50;
    call f (i, j);
    print i, j;
}
procedure f (x, y)
{           
    i = 100;
    x = 10;
    y = y + i ;
}

¿Cuál de las siguientes opciones representa la salida correcta del programa para los dos mecanismos de paso de parámetros?
(A) Llamada por valor: i = 70, j = 10; Llamada por referencia: i = 60, j = 70
(B) Llamada por valor: i = 50, j = 60; Llamada por referencia: i = 50, j = 70
(C) Llamada por valor: i = 10, j = 70; Llamada por referencia: i = 100, j = 60
(D) Llamada por valor: i = 100, j = 60; Llamada por referencia: i = 10, j = 70

Respuesta: (D)
Explicación: Llamada por valor: se pasará una copia de los parámetros y cualquier actualización que se realice será válida solo para esa copia, dejando intactos los valores originales.

Llamada por referencia: se pasará un enlace a las variables originales, al permitir que la función manipule las variables originales.

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 *