no pase esta hoja hasta que se lo indique el profesor.

Anuncio
LOGIN: z10
DNI: 00000103
NO PASE ESTA HOJA
HASTA QUE SE LO INDIQUE EL PROFESOR.
Ä
Ponga su nombre en esta hoja y firme.
Ä
Rellene nombre, apellidos, login (en la casilla localidad), y firme la hoja de respuestas.
Ä
Maque la casilla TIPO TEST como 0.
Ä
Escriba y marque el número que aparece en la esquina superior izquierda en la casilla DNI, no marque su número de DNI real.
Ä
Use un color negro, lápiz o bolígrafo, para responder. No use color rojo.
Ä
Para marcar una respuesta, rellene el recuadro, no tache, ni use X, ni círculos.
Ä
Si se equivoca, rompa la hoja de respuestas y pida una nueva, no use typex, ni tache.
Ä
Responda usando las respuestas A-E de la 1 a la 20.
Ä
Al terminar, deje estas hojas y la hoja de respuestas en la mesa y quédese sentado esperando instrucciones.
Ä
No se permite el uso de libros, apuntes, o cualquier otro material para la realización del test.
Ä
Todas las respuestas correctas puntuan por igual.
Ä
Las respuestas incorrectas restan un 1/4 de su puntuación.
Ä
Sólo hay una respuesta correcta para cada pregunta.
Ä
El código supone que se han instanciado los paquetes necesarios para hacer entrada/salida de todos
los tipos de datos utilizados.
Ä
En las preguntas en las que se usa "..." para indicar el resto del programa, se supone que el resto del
programa es correcto.
-2-
POR EJEMPLO:
-3-
PREGUNTA 1: Este código
if a then
return False;
else
return True;
end if;
A) Podría escribirse en una sola línea sin usar not.
B) No funciona si la variable es Boolean.
C) Deberia usar una sentencia else.
D) Podría escribirse en una sola sentencia.
E) Deberia usar una sentencia case.
CORRECTA: D
PREGUNTA 2: Este código:
type T is array(’A’..’D’) of Integer;
...
x: T;
A) Permite usar x(’Z’).
B) No puede usar ’A’..’D’ como índice.
C) Define un tipo para arrays de 4 enteros.
D) Permite usar expresiones como x(3).
E) Define un tipo para arrays de 4 caracteres.
CORRECTA: C
PREGUNTA 3: Suponiendo que c es de tipo Integer, este código
c := 1;
loop
c := c + 1;
exit when c > 0;
end loop;
Put(c);
A) Entra en un bucle infinito y no escribe nada en la salida estándar
B) Realiza diez iteraciones y escribe en la salida estándar un 10
C) No realiza ninguna iteración y escribe en la salida estándar un 1
D) Realiza una iteración y escribe en la salida estándar un 2
E) Realiza una iteración y escribe en la salida estándar un 1
CORRECTA: D
PREGUNTA 4: Dado
function A(x: Integer) return Integer is
begin
return x + 2;
end;
function B(y: Integer) return Integer is
begin
return y * 2;
end;
z: Integer;
...
z := A(0);
z := B(z);
A) Los parámetros no pueden llamarse como las variables del programa principal
-4-
B) Los parámetros deberían ser por referencia
C) No hay problema con los identificadores del programa
D) El parámetro y debería llamarse z
E) Ambos parámetros deberían llamarse z
CORRECTA: C
PREGUNTA 5: Este código, siendo todas las variables de tipo Boolean:
a :=
b :=
c :=
if a
False;
False;
True;
and ((not b) or c) then
Put("X");
end if;
A) Lee la cadena "X" de la entrada estándar
B) Da un error en ejecución
C) No escribe nada por la salida estándar
D) Escribe por la salida estándar la cadena "X"
E) No compila por un error de tipos
CORRECTA: C
PREGUNTA 6: Dado
while True = True loop
Put("x");
end loop;
A) No se puede hacer lo mismo escribiendo True una sola vez
B) No entra en el bucle
C) Puede conseguirse el mismo efecto con un bucle for
D) Da un error de ejecución tras la primera iteración
E) Imprime muchas "x"
CORRECTA: E
PREGUNTA 7: El siguiente código
x: Integer;
...
x + 1 := 4;
A) Compila pero ejecuta con errores
B) Deja la variable x con valor 3
C) Deja la variable x con valor 5
D) Deja la variable x con valor 4
E) No compila
CORRECTA: E
PREGUNTA 8: Suponiendo
-5-
type TP is
record
x: Integer;
y: Integer;
end record;
p: TP;
q: TP;
begin
q.x := 3;
p.x := 3;
if p = q then
Put("X");
end if;
A) Nunca se escribe "X" por la salida estándar
B) A veces se escribe "X" por la salida estándar
C) No compila pero ejecuta
D) Da un error de tipos
E) Siempre se escribe "X" por la salida estándar
CORRECTA: B
PREGUNTA 9: Este código:
x: Integer;
-- (1)
procedure P(x: in out Integer)
begin
x := 3;
end;
...
P;
is
A) No compila al faltar argumentos en la llamada a P.
B) Debería cambiar la última línea por P(3).
C) Hace que la variable con el comentario (1) valga 3.
D) Debería usar paso por valor.
E) Compila pero da error al ejectuar.
CORRECTA: A
PREGUNTA 10: Dado este código
type TipoArray is array(1..10) of Integer;
a: TipoArray;
...
a(11) := 13;
A) El array no puede tener elementos mayores que 10, luego da un error
B) El array tiene 11 elementos
C) Compila y ejecuta perfectamente
D) No compila pero ejecuta perfectamente
E) Tenemos un error de rango al indexar
CORRECTA: E
PREGUNTA 11: Este código:
package FloatIO is new Float_IO(Float);
use FloatIO;
A) Siempre hace falta.
-6-
B) Hace falta si queremos que los enteros floten.
C) Hace falta si el programa va a usar Put con números de cualquier tipo.
D) Hace falta si el programa va a llamar a Sqrt.
E) Hace falta si el programa va a usar Put con números reales.
CORRECTA: E
PREGUNTA 12: Dado
a: array (1..5) of Character;
c: Integer;
...
c := a’First;
while c <= 5 loop
a(c) := ’A’;
end loop;
A) No podemos tener arrays de Character
B) Debería usarse a := a + 1;
C) No compila pero ejecuta bien
D) Es un bucle infinito
E) No compila ni ejecuta bien
CORRECTA: D
PREGUNTA 13: Suponiendo que inicialmente a es cero y b es uno, este código:
a := b;
b := a;
A) Da False en ambos casos.
B) No compila.
C) Hace que ambas variables valgan cero.
D) Hace que ambas variables valgan uno.
E) Intercambia los valores de a y b.
CORRECTA: D
PREGUNTA 14: Siendo x una variable de tipo Integer
function Func(x: Integer) return Integer is
begin
return 5 + x * 10;
end;
...
x := 0;
x := Func(3);
Put(x);
A) Se escribe en la salida estándar el entero 35
B) Se escribe en la salida estándar el entero 80
C) El programa no compila por un error de tipos
D) Se escribe en la salida estándar el entero 0
E) Se escribe en la salida estándar el entero 5
CORRECTA: A
PREGUNTA 15: El siguiente código:
-7-
procedure C(x: Integer) is
begin
return x + 4;
end;
A) El parámetro debería ser Float
B) No debería usar return en el cuerpo
C) Incrementa x en 4 unidades
D) El parámetro debería ser in out
E) El parámetro debería ser Boolean
CORRECTA: B
PREGUNTA 16: Siendo la variable x de tipo TipoColor
type TipoColor is (Rojo, Verde, Azul);
...
x := "Rojo";
A) Hay un error porque TipoColor no es un tipo que se pueda usar
B) Hay un error porque TipoColor no puede tener un valor Amarillo
C) Hay un error porque en Ada no se pueden definir tipos enumerados
D) La asignación provoca un error de tipos
E) La asignación compila sin errores
CORRECTA: D
PREGUNTA 17: Dado
type TipoPalabra is
record
longitud: Natural;
cadena: String(1..100);
end record;
a: array (1..50) of TipoPalabra;
Si queremos encontrar la palabra más larga del array:
A) Deberíamos hacerlo sin usar bucles
B) Hay que recorrer al menos dos veces el array completo
C) En general, deberemos recorrer las 50 posiciones del array
D) Siempre podemos encontrar la más larga sin recorrer todo el array
E) No podemos, porque cadena debería tener 50 elementos
CORRECTA: C
PREGUNTA 18: Siendo a b y c variables de tipo Integer
a := 10;
b := 13;
c := 1;
resultado := (a + c <= 123) or (c > 10 and b > 10);
A) La variable resultado debe ser de tipo Boolean y su valor será True
B) La variable resultado debe ser de tipo Integer y su valor será 123
C) La variable resultado debe ser de tipo Integer y su valor será True
D) La variable resultado debe ser de tipo Boolean y su valor será False
E) La variable resultado debe ser de tipo Integer y su valor será 2
CORRECTA: A
PREGUNTA 19: Este código:
-8-
type R is record
a: Integer;
b: Integer;
end record;
...
x: R;
...
a.x := 0;
A) Deja sólo x a cero.
B) Compila pero falla al ejecutar.
C) No compila.
D) Deja sólo a a cero.
E) Deja tanto x como a a cero.
CORRECTA: C
PREGUNTA 20: Dado
a: array (1..5) of Character;
c: Integer;
...
c := a’First;
while c <= 10 loop
a(c) := ’A’;
c := c + 1;
end loop;
A) Debería usarse a := a + 1;
B) No compila ni ejecuta bien
C) Tenemos un error de rango en ejecución
D) No compila pero ejecuta bien
E) No podemos tener arrays de Character
CORRECTA: C
Descargar