Principio de los lenguajes de programación | Serie 1

Se han hecho las siguientes preguntas en el examen GATE CS.

1. La combinación más adecuada para los siguientes pares

X: Indirect addressing                  1: Loops
Y: Immediate addressing                 2: Pointers
Z: Auto decrement addressing            3. Constants

es (GATE CS 2000)
(a) X—3 Y—2 Z—1
(b) X—1 Y—3 Z—2
(c) X—2 Y—3 Z—1
(d) X—3 Y— 1 Z—2

Respuesta (c)

Referencia:
http://en.wikipedia.org/wiki/Addressing_mode
http://www.cs.nmsu.edu/~pfeiffer/classes/273/notes/immdirext.html

2. La creación de alias en el contexto de los lenguajes de programación se refiere a (GATE CS 2000)
(a) múltiples variables que tienen la misma ubicación de memoria
(b) múltiples variables que tienen el mismo valor
(c) múltiples variables que tienen el mismo identificador
(d) múltiples usos de la misma variable

Respuesta (a)
Aliasing describe una situación en la que se puede acceder a una ubicación de datos en la memoria a través de diferentes nombres simbólicos en el programa.

Referencia
http://en.wikipedia.org/wiki/Aliasing_%28computing%29


3. ¿Qué imprimen las sentencias de impresión en el programa P1 suponiendo que se pasa una llamada por parámetro de referencia? (PUERTA CS 2001)

Program Pl() 
{ 
  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)
Tenga en cuenta el orden en que se pasan los parámetros. Dentro de func1(), x en realidad se referirá a y de main(); ey y z se referirán a x de main(). El enunciado y = y + 4; dará como resultado 14 y la declaración z = x + y + z hará que z = 3 + 14 + 14 = 31 (porque y y z apuntan a la misma variable x de main). Dado que z se refiere a x de main(), main imprimirá 31.


4. Considere el siguiente programa

Program P2 
    var n: int: 
     procedure W(var x: int) 
     begin 
         x=x+1; 
         print x;   
     end 
  
     procedure D 
     begin  
         var n: int; 
         n=3; 
         W(n);  
     end 
begin //beginP2 
  n=10; 
  D; 
end 

Si el lenguaje tiene alcance dinámico y los parámetros se pasan por referencia, ¿qué imprimirá el programa? (GATE CS 2001)
a) 10
b) 11
c) 3
d) Ninguna de las anteriores

Respuesta(d)
El programa imprimirá 4.

5. Los resultados devueltos por funciones bajo convenciones de paso de parámetro de referencia y valor-resultado (GATE CS 2002)

a) No difieren
b) Difieren en presencia de bucles
c) Difieren en todos los casos
d) Pueden diferir en presencia de excepciones

Respuesta(d)
En la evaluación de llamada por referencia, una función recibe una referencia implícita al argumento, en lugar de una copia de su valor. Esto normalmente significa que la función puede modificar el argumento, algo que verá la persona que llama. Tenga en cuenta que C no admite la llamada por referencia, pero la llamada por referencia se puede implementar mediante punteros.

Call-by-value-result utiliza una combinación de call-by-value y call-by-reference. Call-by-value-result funciona mediante la creación de versiones locales de los parámetros pasados. Sin embargo, los valores de estas versiones locales se vuelven a copiar en los argumentos originales una vez finalizado el procedimiento.

En caso de excepciones, los resultados pueden diferir. Veamos el siguiente ejemplo en un lenguaje arbitrario.

  int addTwo(a, b)
  {
     a = a + b;
     b = a + b;
     return b;
  }

Si se utiliza el resultado de la llamada por valor, la llamada a addTwo(x, x) devolverá 3x (consulte la explicación a continuación).

     a = a + b; will result in a = x + x
     b = a + b; will result in  b = 2x + x 

Si se utiliza la llamada por referencia, addTwo(x, x) devolverá 4x (consulte la explicación a continuación).

     a = a + b; will result in a = x + x
     b = a + b; will result in  b = 2x + 2x 

Referencias:
http://c2.com/cgi/wiki?CallByValueResult
http://en.wikipedia.org/wiki/Evalue_strategy

Consulte GATE Corner para ver todos los documentos/soluciones/explicaciones del año anterior, programa de estudios, fechas importantes, notas, etc.

Escriba comentarios si encuentra que alguna de las respuestas/explicaciones anteriores es incorrecta o si desea compartir más información sobre los temas discutidos anteriormente.

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 *