Download Lenguajes

Document related concepts

Función de orden superior wikipedia , lookup

Rust (lenguaje de programación) wikipedia , lookup

Maple (software) wikipedia , lookup

Haskell wikipedia , lookup

Caml wikipedia , lookup

Transcript
Lenguajes de Programación
1
GUÍA DE EJERCICIOS  LENGUAJES DE PROGRAMACIÓN
1.
La regla BNF < s > ::= 0 < s > | 1 < s > | 0 | 1 representa cualquier número binario:
a) Que comience con un 1 o con un 0
b) Con una cantidad de 1’s igual a la cantidad de 0’s
c) Que comience con un 0 y termine con un 1
d) Ninguna de las anteriores
2.
La sexta instrucción en RAM de un código generado para una máquina de 32 bits se sitúa:
a) En la dirección 20
b) En la dirección 24
c) En la dirección 160
d) Ninguna de las anteriores
3. Para la expresión ( (a + b ) – c ) * ( d / ( e + f ) ) su equivalente en notación polaca es:
a) * – a b + / c d + e f
b) * – + / a b c d + e f
c) * – + a b c / d + e f
d) Ninguna de las anteriores
4. Si en la expresión 4 * 3 + 8 / 2 + 5 – 3 todos los operadores tienen la misma prioridad y
se asocia por la derecha, entonces el resultado de su evaluación es:
a) 20
b) 18
c) 12
d) Ninguna de las anteriores
5.
La evaluación incompleta de (a  b && b  a) ocurre sólo si antes se ha ejecutado:
a) a = –5; b = ––a;
b) a = 5; b = a++;
c) a = 7; b = ––a;
d) Ninguna de las anteriores
6.
Si p = &x; entonces, los datos usados en la sentencia x = 2*x + *p; comprometen:
a) Dos referencias
b) Tres referencias
c) Cuatro referencias
d) Ninguna de las anteriores
7. Si en C se tiene n = 5; v[++n] = n++; entonces:
a) En v[5] se almacena 6
b) En v[6] se almacena 6
c) En v[6] se almacena 7
d) Ninguna de las anteriores
Héctor Pincheira Conejeros
1
Lenguajes de Programación
2
8. Si en C se declara float x, y; entonces en la expresión (int)(x/y)*(x/y) existe:
a) Sólo casting
b) Casting y coerción
c) Sólo coerción
d) Ninguna de las anteriores
9. Si en C se declara int x; la expresión 30000*x produce un resultado correcto:
a) Aunque se omita la comprobación de tipos
b) Realizando sólo la comprobación estática de tipos
c) Realizando sólo la comprobación dinámica de tipos
d) Ninguna de las anteriores
10. Los registros de activación incluyen enlace dinámico sólo cuando el respectivo stack:
a) Se representa en almacenamiento contiguo
b) Resulta de una sucesión de invocaciones recursivas
c) Se comporta dinámicamente
d) Ninguna de las anteriores
11. Para la función en C,
int f(int n) { if(n1) return f(n–1) + f(n–2); else return n; }
cantidad total de registros de activación que se genera con la invocación f(5) es:
a) 5
b) 10
c) 15
d) Ninguna de las anteriores
la
12. Sean las variables int k=3, *p=&k; y la función void h(int *s, int **t){ *s = *s + **t; }
Si se invoca h(p, &p); entonces la variable k queda finalmente con el valor:
a) 3
b) 4
c) 5
d) Ninguna de las anteriores
13. Si se define void f(int *p, int *q); y se invoca f(&n, &n); entonces:
a) Debió haberse declarado int *n;
b) p y q tienen la misma referencia
c) Usar *p es equivalente a usar *q
d) Ninguna de las anteriores
14. Si se define swap(name int p, q) y los respectivos parámetros actuales también son de
tipo "int", entonces la invocación que produce un efecto indeseado es:
a) swap(s.j, s.k);
b) swap(v[i, i);
c) swap(v[j, v[k);
d) Ninguna de las anteriores
Héctor Pincheira Conejeros
2
Lenguajes de Programación
3
15. Si se declara void P(int a, int *b, int &c), entonces una invocación correcta es:
a) P(j, &j, j);
b) P(j, *j, &j);
c) P(j, j, *j);
d) Ninguna de las anteriores
16. Si, como redefinición de una unidad genérica se tiene g is new f(int, float); entonces:
a) En f existen sólo dos parámetros formales
b) En g existirán dos tipos genéricos
c) En f existen dos tipos genéricos
d) Ninguna de las anteriores
17. Mientras se ejecuta un subprograma S, su entorno de referencia queda determinado por:
a) Todos los registros de activación presentes en el stack
b) La cadena de punteros estáticos
c) La cadena de enlaces dinámicos
d) Ninguna de las anteriores
18. Si en C se tiene nodo *p, *q = (nodo*)malloc(sizeof(nodo)); p = q; q = NULL; entonces
resulta el fenómeno conocido como:
a) Dangling reference
b) Garbage
c) Equivalence
d) Ninguna de las anteriores
19. El contador de referencias a un objeto representado en un heap se interpreta como:
a) Dangling reference cuando tiene el valor -1
b) Garbage cuando tiene el valor 0
c) Aliasing cuando tiene el valor 1
d) Ninguna de las anteriores
20. El código en C++, int *p = new int[10]; permite crear:
a) Un objeto de tipo int con valor inicial 10
b) Un arreglo para almacenar 10 valores enteros
c) Un puntero a un objeto int con valor inicial 10
d) Ninguna de las anteriores
21. Si Q es una clase, entonces en la declaración Q z, &t = z;
a) El valor de t es la dirección de z
b) El valor de t es una copia del valor de z
c) La referencia de t es una copia de la referencia de z
d) Ninguna de las anteriores
Héctor Pincheira Conejeros
3
Lenguajes de Programación
22. Un objeto es una combinación de:
a) Estado y comportamiento
b) Interfaz e implementación
c) Mensaje y método
d) Ninguna de las anteriores
23. Si se tiene class C: public B y luego el código B b, *p = new C; b = *p; entonces:
a) Se advierte un error
b) Se genera "garbage"
c) Se produce el "problema del corte"
d) Ninguna de las anteriores
24. Un constructor de clase derivada invoca al constructor de clase base:
a) Antes de ejecutar el propio
b) Para inicializar atributos de clase base
c) Después de ejecutar el propio
d) Ninguna de las anteriores
Héctor Pincheira Conejeros
4
4