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