<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE function>
<Asignatura>
	<titulo>Programación I</titulo>
	<duracion>20</duracion>
	<numPreguntas>10</numPreguntas>
	<PuntosOk>30</PuntosOk>
	<PuntosNo>0</PuntosNo>
	<PuntosNC>0</PuntosNC>
	<Temas>3</Temas>
	<Indice>
		<Tema>
			<Numero>1</Numero>
			<Titulo>Unidad Didáctica 1</Titulo>
		</Tema>
		<Tema>
			<Numero>2</Numero>
			<Titulo>Unidad Didáctica 2</Titulo>
		</Tema>
		<Tema>
			<Numero>3</Numero>
			<Titulo>Unidad Didáctica 3</Titulo>
		</Tema>
	</Indice>
	<Examenes>
		<Examen>
			<FechaExamen>	1.- FEBRERO 2003 – ORIGINAL	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	2	</T>
					<P>	0101	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0102	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0103	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	0104	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	0105	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	0106	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	0107	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0108	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0109	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0110	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
		<Examen>
			<FechaExamen>	2.- FEBRERO 2003 RESERVA	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	2	</T>
					<P>	0201	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	0202	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0203	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0204	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0205	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0206	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0207	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0208	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0209	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0210	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
		<Examen>
			<FechaExamen>	3.- SEPTIEMBRE 2003	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	3	</T>
					<P>	0301	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0302	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0303	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0304	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0305	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0306	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0307	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	0308	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	0309	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0310	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
		<Examen>
			<FechaExamen>	4.- SEPTIEMBRE 2003 RESERVA	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	2	</T>
					<P>	0401	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0402	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0403	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0404	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0405	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0406	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0407	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0408	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	0409	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	0410	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
		<Examen>
			<FechaExamen>	5.- SEPTIEMBRE 2002	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	1	</T>
					<P>	0501	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	0502	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0503	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	0504	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0505	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0506	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0507	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0508	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0509	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0510	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
		<Examen>
			<FechaExamen>	6.- FEBRERO 2002	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	1	</T>
					<P>	0601	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0602	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0603	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0604	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0605	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0606	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0607	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0608	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0609	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	0610	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
		<Examen>
			<FechaExamen>	7.- ENERO 2002	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	2	</T>
					<P>	0701	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0702	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0703	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0704	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0705	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0706	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0707	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0708	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0709	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0710	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
		<Examen>
			<FechaExamen>	8.- SEPTIEMBRE 2001	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	1	</T>
					<P>	0801	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0802	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0803	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0804	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0805	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0806	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0807	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0808	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	0809	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	0810	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
		<Examen>
			<FechaExamen>	9.- FEBRERO 2001	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	1	</T>
					<P>	0901	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0902	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0903	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0904	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0905	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	0906	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0907	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	0908	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	0909	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	0910	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
		<Examen>
			<FechaExamen>	10.- ENERO 2001	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	1	</T>
					<P>	1001	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1002	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1003	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1004	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1005	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1006	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1007	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1008	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1009	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1010	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
		<Examen>
			<FechaExamen>	11.- SEPTIEMBRE 2000	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	1	</T>
					<P>	1101	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1102	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1103	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1104	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1105	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1106	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1107	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1108	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1109	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1110	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
		<Examen>
			<FechaExamen>	12.- FEBRERO 2000	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	3	</T>
					<P>	1201	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1202	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1203	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1204	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1205	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1206	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1207	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1208	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1209	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1210	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
		<Examen>
			<FechaExamen>	13.- ENERO 2000	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	3	</T>
					<P>	1301	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1302	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1303	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1304	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1305	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1306	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1307	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1308	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1309	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1310	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
		<Examen>
			<FechaExamen>	14.- SEPTIEMBRE 1999	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	2	</T>
					<P>	1401	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1402	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1403	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1404	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1405	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1406	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1407	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1408	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1409	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1410	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
		<Examen>
			<FechaExamen>	15.- FEBRERO 1999	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	2	</T>
					<P>	1501	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1502	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1503	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1504	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1505	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1506	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1507	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1508	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1509	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1510	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
		<Examen>
			<FechaExamen>	16.- ENERO 1999	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	3	</T>
					<P>	1601	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1602	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1603	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1604	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1605	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1606	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1607	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1608	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1609	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1610	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
		<Examen>
			<FechaExamen>	17.- SEPTIEMBRE 1995	</FechaExamen>
			<Cuestiones>
				<Cuestion>
					<T>	2	</T>
					<P>	1701	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1702	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1703	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1704	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1705	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1706	</P>
				</Cuestion>
				<Cuestion>
					<T>	2	</T>
					<P>	1707	</P>
				</Cuestion>
				<Cuestion>
					<T>	1	</T>
					<P>	1708	</P>
				</Cuestion>
				<Cuestion>
					<T>	3	</T>
					<P>	1709	</P>
				</Cuestion>
			</Cuestiones>
		</Examen>
	</Examenes>
	<Preguntas>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0101	</Numero>
			<Enunciado>En el procedimiento:   PROCEDURE Ej1(VAR R,S:INTEGER; 
T:CHAR);   los argumentos</Enunciado>
			<a>R es por referencia y S y T por valor</a>
			<b>S es por referencia y R y T por valor</b>
			<c>R y S son por referencia y T por valor</c>
			<d>R y S son por valor y T por referencia</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0102	</Numero>
			<Enunciado>Si p,q y r son variables booleanas que toman los valores 
p=TRUE, q=FALSE, r=TRUE, ¿cuál de las siguientes expresiones devuelve 
un valor FALSE?</Enunciado>
			<a>(p OR q AND NOT (r = q)) AND NOT(NOT r = q)</a>
			<b>p OR q OR NOT (r = q) OR NOT(NOT r = q)</b>
			<c>NOT (p AND q AND NOT (r = q) AND NOT(NOT r = q))</c>
			<d>(p OR q AND NOT (r &gt; q)) AND NOT(NOT r &lt; q)</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0103	</Numero>
			<Enunciado>El esquema básico de selección se corresponde con el 
esquema de datos:</Enunciado>
			<a>Formación</a>
			<b>Unión</b>
			<c>Tupla</c>
			<d>Registro</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0104	</Numero>
			<Enunciado>En la declaración:   TYPE TipoMatriz = ARRAY [1..3], 
[1..3] OF INTEGER; VAR matrizUno : TipoMatriz;   Nos podemos referir a un 
elemento de la matriz como: matrizUno[3]:</Enunciado>
			<a>Sí, porque hace referencia a todo un vector</a>
			<b>No, tendríamos que referenciarlo como matrizUno [1][2]</b>
			<c>Sí, porque los tipos índices son iguales</c>
			<d>No, tendríamos que referenciarlo como matrizUno [1,2]</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0105	</Numero>
			<Enunciado>Dado el tipo de dato:   TYPE Cero = ARRAY Uno OF ARRAY 
Dos OF Tres;</Enunciado>
			<a>Sólo Tres puede ser CHAR o BOOLEAN</a>
			<b>Sólo Uno y Tres pueden ser CHAR o BOOLEAN</b>
			<c>Sólo Uno y Dos pueden ser CHAR o BOOLEAN</c>
			<d>Uno, Dos y Tres pueden ser CHAR o BOOLEAN</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0106	</Numero>
			<Enunciado>La declaración:    VAR miVector: ARRAY [0..N] OF 
INTEGER;</Enunciado>
			<a>Es un tipo anónimo</a>
			<b>Es incorrecta</b>
			<c>Es un vector abierto</c>
			<d>Es una ristra</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0107	</Numero>
			<Enunciado>En un registro con variantes el tipo del discriminante 
siempre tiene que ser:</Enunciado>
			<a>Ordinal</a>
			<b>Real</b>
			<c>Cardinal</c>
			<d>Entero</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0108	</Numero>
			<Enunciado>¿Cuál de las siguientes afirmaciones es 
CORRECTA?</Enunciado>
			<a>El tipo INTEGER es exacto  y sin límites</a>
			<b>El tipo INTEGER es exacto pero con límites</b>
			<c>El tipo REAL es exacto y sin límites</c>
			<d>El tipo REAL es exacto pero con límites</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0109	</Numero>
			<Enunciado>¿Cuál de las siguientes afirmaciones es CORRECTA respecto 
a Modula-2?</Enunciado>
			<a>No tiene sentencias para manejo de excepciones ni se pueden 
programar</a>
			<b>Tiene sentencias para manejo de excepciones que emplean el 
RETURN</b>
			<c>No tiene sentencias para manejo de excepciones pero se pueden 
programar</c>
			<d>Tiene sentencias especiales para manejo de excepciones</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0110	</Numero>
			<Enunciado>- En Modula-2 y respecto a RETURN se puede decir 
que:</Enunciado>
			<a>Es la palabra clave de una sentencia</a>
			<b>Es el identificador predefinido de un procedimiento</b>
			<c>Es el identificador predefinido de una función</c>
			<d>Es la palabra clave de una expresión</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0201	</Numero>
			<Enunciado>Dado el siguiente fragmento de código:   PROCEDURE Maximo 
(X,Y:INTEGER):INTEGER; BEGIN; IF X &gt; Y THEN RETURN X; ELSE RETURN Y 
END; END Maximo;</Enunciado>
			<a>Es correcto.</a>
			<b>No es posible usar dos RETURN.</b>
			<c>El RETURN debe ir fuera del IF.</c>
			<d>Sobran la X e Y del RETURN.</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0202	</Numero>
			<Enunciado>La compilación segura comprueba que el uso de elementos 
de otros módulos es consistente con:</Enunciado>
			<a>Los módulos de implementación</a>
			<b>Los módulos de definición</b>
			<c>La realización de los módulos</c>
			<d>La realización y la especificación de los módulos</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0203	</Numero>
			<Enunciado>¿Cuál de las siguientes expresiones aritméticas da 
Error?</Enunciado>
			<a>(-33 DIV 5)</a>
			<b>((-5) +10 MOD 3) DIV 2</b>
			<c>35.3 * 5.1 / 0.2</c>
			<d>55*2.8</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0204	</Numero>
			<Enunciado>Después de la palabra clave ELSIF:</Enunciado>
			<a>Siempre hay una condición</a>
			<b>Puede haber una acción o una condición</b>
			<c>Siempre hay una acción</c>
			<d>Acaba la selección</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0205	</Numero>
			<Enunciado>Dado el siguiente fragmento de código ?. CASE :BOOLEAN 
OF</Enunciado>
			<a>Es una selección por casos</a>
			<b>Está dentro de una unión</b>
			<c>Es una selección fija</c>
			<d>Es un caso extremo</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0206	</Numero>
			<Enunciado>La sentencia FOR:</Enunciado>
			<a>Se debe utilizar para realizar recorridos</a>
			<b>Se utiliza para realizar recorridos y búsquedas</b>
			<c>Se utiliza para realizar recorridos, búsquedas e inserciones</c>
			<d>Se debe utilizar para realizar recorridos y búsquedas</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0207	</Numero>
			<Enunciado>Dado el siguiente fragmento de código: Factorial := 1;   
FOR indice := 2 TO N DO; Factorial := Factorial * indice;  indice := 
indice + 1  END    Es incorrecto porque la variable indice:</Enunciado>
			<a>No se puede utilizar.</a>
			<b>El orden de las sentencias FOR es el contrario.</b>
			<c>Nunca se debe modificar.</c>
			<d>Debe comenzar por 1.</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0208	</Numero>
			<Enunciado>En la expresión aritmética b+6.2/c*a-d, la tercera 
operación realizada es:</Enunciado>
			<a>la multiplicación</a>
			<b>la suma</b>
			<c>la resta</c>
			<d>la división</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0209	</Numero>
			<Enunciado>En la declaración:    PROCEDURE Examen(R: ARRAY OF CHAR);   
se utiliza:</Enunciado>
			<a>Un vector abierto</a>
			<b>Un subrango de la ?A? a la ?Z?</b>
			<c>Un subrango de 1 a N</c>
			<d>Es una declaración incorrecta</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0210	</Numero>
			<Enunciado>- Una sentencia EXIT solo se debe usar dentro de una 
sentencia:</Enunciado>
			<a>FOR</a>
			<b>LOOP</b>
			<c>WHILE</c>
			<d>REPEAT</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0301	</Numero>
			<Enunciado>Los campos de un registro:</Enunciado>
			<a>No pueden recorrerse con bucles.</a>
			<b>Se deben recorrer con un bucle FOR.</b>
			<c>Se deben recorrer con un bucle WHILE</c>
			<d>Se deben recorrer con un bucle REPEAT.</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0302	</Numero>
			<Enunciado>El siguiente fragmento de código:   IF x OR NOT x THEN (* 
WriteString(?uno?); ELSE WriteString(?dos?); *)  END;   
Produce:</Enunciado>
			<a>Un error</a>
			<b>La impresión de uno</b>
			<c>La impresión de dos</c>
			<d>Ninguna impresión</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0303	</Numero>
			<Enunciado>Dada la siguiente declaración:   TYPE TipoColor = (rojo, 
amarillo, azul, negro)   señale la expresión verdadera:</Enunciado>
			<a>ORD(VAL(TipoColor, 2)) = 1</a>
			<b>VAL(TipoColor, 0) = rojo</b>
			<c>VAL(TipoColor(ORD(rojo)) = amarillo</c>
			<d>ORD(azul) = 3</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0304	</Numero>
			<Enunciado>En Modula-2, el concepto de bloque engloba 
...</Enunciado>
			<a>Constantes, tipos, variables y subprogramas</a>
			<b>Constantes,    tipos,    variables,    subprogramas    y    parte 
ejecutable</b>
			<c>Subprogramas y parte ejecutable</c>
			<d>Sólo la parte ejecutable</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0305	</Numero>
			<Enunciado>El identificador BOOLEAN es ....</Enunciado>
			<a>Un valor constante predefinido</a>
			<b>Una palabra clave</b>
			<c>Un tipo predefinido enumerado</c>
			<d>Una variable predefinida</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0306	</Numero>
			<Enunciado>La sentencia EXIT sólo se ...</Enunciado>
			<a>puede usar dentro de un LOOP</a>
			<b>puede usar dentro de un IF</b>
			<c>debe usar una vez</c>
			<d>puede usar en un procedimiento</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0307	</Numero>
			<Enunciado>Dada la declaración:   CONST todos = Existencias{uno .. 
muchos};</Enunciado>
			<a>No es correcta en ningún caso</a>
			<b>Existencias debe ser de tipo enumerado</b>
			<c>Existencias debe ser de tipo conjunto</c>
			<d>Es correcta si se sustituye CONST por VAR</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0308	</Numero>
			<Enunciado>Un tipo vector abierto ....</Enunciado>
			<a>Necesita utilizar un centinela</a>
			<b>Sólo puede ser argumento de un PROCEDURE</b>
			<c>Se utiliza para declarar variables de tipo ristra</c>
			<d>Simplifica las condiciones de contorno</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0309	</Numero>
			<Enunciado>La definición de tipos se incluye en:</Enunciado>
			<a>la parte ejecutiva</a>
			<b>la cabecera del módulo</b>
			<c>la parte declarativa</c>
			<d>la cabecera de definición</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0310	</Numero>
			<Enunciado>-  En  el  esquema  de  selección  entre  varios  
valores,  tienen  que definirse los siguientes elementos:</Enunciado>
			<a>Variable que fija el valor, valores de los casos y acciones</a>
			<b>Variable que fija el valor, condición de los casos y acciones</b>
			<c>Condición de los casos y acciones</c>
			<d>Condición de los casos y valores</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0401	</Numero>
			<Enunciado>Dado el siguiente tipo: TYPE TipoColor = (rojo, amarillo, 
azul) Si x es de TipoColor y vale rojo, el siguiente código:    IF 
x=?Rojo? THEN WriteString(?uno?); ELSE WriteString(?dos?); END;</Enunciado>
			<a>Produce un error en tiempo de ejecución.</a>
			<b>Produce un error en tiempo de compilación.</b>
			<c>Imprime uno.</c>
			<d>Imprime dos.</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0402	</Numero>
			<Enunciado>En Modula-2, el empleo de identificadores con todas las 
letras en mayúsculas .....</Enunciado>
			<a>Está reservado a las palabras clave</a>
			<b>Es aconsejable para las constantes</b>
			<c>Disminuye la claridad</c>
			<d>Aumenta la corrección</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0403	</Numero>
			<Enunciado>El proceso de un programa en lenguaje fuente mediante 
interprete comparado al de mediante compilador se caracteriza 
por:</Enunciado>
			<a>Ser más rápido y más sencillo</a>
			<b>Ser más lento y más complejo</b>
			<c>Ser más lento y más sencillo</c>
			<d>Ser más rápido y más complejo</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0404	</Numero>
			<Enunciado>Si x, y, z son booleanos, dada la expresión x and not y 
&lt; z</Enunciado>
			<a>El primer operador que se ejecuta es and.</a>
			<b>Se producirá un error en tiempo de compilación</b>
			<c>Se producirá un error en tiempo de ejecución.</c>
			<d>El primer operador que se ejecuta es not.</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0405	</Numero>
			<Enunciado>La reutilización se consigue con el desarrollo de 
programas ...</Enunciado>
			<a>Sólo ascendente</a>
			<b>Sólo descendente</b>
			<c>Por refinamiento usando abstracciones</c>
			<d>Sólo ascendente o sólo descendente</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0406	</Numero>
			<Enunciado>La utilización de una sentencia RETURN en una 
función:</Enunciado>
			<a>Es incorrecta en cualquier caso</a>
			<b>Es correcta en cualquier punto ejecutable</b>
			<c>Es correcta si sólo aparece una vez</c>
			<d>Es correcta en la declaración</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0407	</Numero>
			<Enunciado>¿Cuál de las siguientes asociaciones entre tipos de 
operación y acción a realizar es correcta?</Enunciado>
			<a>Operación abstracta ? Descomponer</a>
			<b>Operación terminal ? Codificar</b>
			<c>Operación terminal ? Especificar</c>
			<d>Operación compleja - Codificar</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0408	</Numero>
			<Enunciado>Dado el siguiente subprograma:   PROCEDURE Operacion(x: 
REAL; VAR y: REAL): INTEGER; BEGIN; x := x/2.0 + y*2.0; y := y + x; 
RETURN TRUNC(y); END Operacion;   Si a=5.0 y b=3.0, los valores de a y b 
después de la llamada Operacion(a, b) son 
	respectivame</Enunciado>
			<a>5.0 y 11.5</a>
			<b>5.0 y 11</b>
			<c>8.5 y 11.5</c>
			<d>8.5 y 11</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0409	</Numero>
			<Enunciado>¿Cuál de las siguientes afirmaciones es 
CORRECTA?</Enunciado>
			<a>Una secuencia se debe hacer mediante punteros</a>
			<b>Los punteros sólo sirven para hacer secuencias</b>
			<c>Una secuencia se puede hacer mediante punteros</c>
			<d>Los punteros no sirven para hacer secuencias</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0410	</Numero>
			<Enunciado>- La ocultación:</Enunciado>
			<a>Facilita la reutilización de código.</a>
			<b>Produce programas de escasa complejidad.</b>
			<c>Permite que una variable tenga varios tipos.</c>
			<d>Se consigue gracias a la compilación segura.</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0501	</Numero>
			<Enunciado>Dadas las reglas de producción, que describen 
gramaticalmente los números reales (num_real):    dig::= 0|1| ...|9 sec_dig ::= 
dig {dig} vent ::= {+|-}sec_dig esc ::= e|E vent   num_real ::= 
[vent].[sec_dig][esc]    Elija la opción en la que todos los números reales son 
gramaticalmente 
	correctos:</Enunciado>
			<a>++3., -+2.2e-2, ., .E2</a>
			<b>5.e1, 2.2, .0, .E</b>
			<c>.- 8.-e1, -2.2, 0., .E1</c>
			<d>?.e1, +-2.2, 0.0, 1.e</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0502	</Numero>
			<Enunciado>Si queremos ocultación total para un sola variable 
utilizaremos un ?</Enunciado>
			<a>Tipo opaco</a>
			<b>Tipo transparente</b>
			<c>Dato encapsulado</c>
			<d>Tipo abstracto</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0503	</Numero>
			<Enunciado>El desarrollo de programas por refinamientos sucesivos 
consiste en:</Enunciado>
			<a>Programar sucesivas versiones que intentan resolverlo</a>
			<b>Descomponer en  acciones simples</b>
			<c>Programar la solución hasta conseguir la solución refinada</c>
			<d>Descomponer en acciones repetibles</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0504	</Numero>
			<Enunciado>El siguiente módulo: 
DEFINITION MODULE miModulo;   
  TYPE Dato;     
  PROCEDURE Operar(miDato:Dato):Dato; 
END miModulo.</Enunciado>
			<a>Es un tipo opaco</a>
			<b>Es una abstracción funcional</b>
			<c>Es un dato encapsulado</c>
			<d>Es incorrecto</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0505	</Numero>
			<Enunciado>Una adecuada elección de los identificadores en un 
programa mejora su ..</Enunciado>
			<a>Corrección</a>
			<b>Eficiencia</b>
			<c>Ejecución</c>
			<d>Claridad</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0506	</Numero>
			<Enunciado>A la vista  del siguiente fragmento de código: TYPE fruta 
= (pera, manzana, limon);   VAR a: SET OF fruta ;     de la variable 
?a? podemos decir que es:</Enunciado>
			<a>Una variable de tipo anónimo</a>
			<b>Una variable de tipo abstracto</b>
			<c>Una variable encapsulada</c>
			<d>Una variable abierta</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0507	</Numero>
			<Enunciado>En las asignaciones a variables de tipo conjunto, a la 
derecha del símbolo de asignación aparece el tipo ...</Enunciado>
			<a>Referencial</a>
			<b>Original</b>
			<c>Conjunto</c>
			<d>Cualquier tipo</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0508	</Numero>
			<Enunciado>Dada las siguientes líneas de código:     VAR  A,B: 
INTEGER;   PROCEDURE AUX(VAR A:INTEGER); VAR B: INTEGER;   BEGIN     A:=A 
DIV 100;     B:= B*A; END AUX; BEGIN     A:=10; B:=100;   AUX(A); END;     
El valor final de A y B es</Enunciado>
			<a>A=10, B=0 y B en AUX es 0</a>
			<b>A=0 , B=100 y B en AUX es 0</b>
			<c>A=0, B=10 y B en AUX es 0</c>
			<d>A=10, B=100  y B en AUX es 0</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0509	</Numero>
			<Enunciado>En la declaración de Modula-2      VAR MAX:INTEGER;     
podemos decir que:</Enunciado>
			<a>Hay redefinición de elementos</a>
			<b>Hay efectos secundarios</b>
			<c>Hay doble referencia</c>
			<d>Hay transparencia referencial</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0510	</Numero>
			<Enunciado>-  La sentencia :     a := a;</Enunciado>
			<a>Cambia el valor de a si a es global</a>
			<b>Cambia el valor de a si a es un parámetro</b>
			<c>Es una expresión de equivalencia</c>
			<d>No modifica el valor de a</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0601	</Numero>
			<Enunciado>¿Cuál de las siguientes afirmaciones es 
CORRECTA?</Enunciado>
			<a>Un compilador simula una máquina base</a>
			<b>Un interprete simula una máquina virtual</b>
			<c>Un interprete traduce desde un lenguaje a una máquina base</c>
			<d>Un compilador traduce desde un lenguaje a una máquina virtual</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0602	</Numero>
			<Enunciado>Dado un tipo Enumerado: La función predefinida que 
permite conocer la posición de un valor en la lista de valores 
es:</Enunciado>
			<a>VAL</a>
			<b>ODD</b>
			<c>ORD</c>
			<d>HIGH</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0603	</Numero>
			<Enunciado>Se define el TipoConjunto de la siguiente forma: TYPE 
TipoConjunto = SET OF [0..6];    Si a:=TipoConjunto{0,1,2}; 
b:=TipoConjunto{2,4,6}; c:=TipoConjunto{1,3,5}; d:=TipoConjunto{0,1,2,3,4,5}; Y se 
ejecutan las sentencias: EXCL(a,1); INCL(c,2);    Se 
verifica:</Enunciado>
			<a>(2 IN a*(c*b)) OR (a*d&lt;=b)</a>
			<b>(2 IN a*(c*b)) AND (a*d&lt;=b)</b>
			<c>(a-b&lt;=c) AND (0 IN c-a)</c>
			<d>(c&lt;=d) AND (b*c=TipoConjunto{})</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0604	</Numero>
			<Enunciado>Si p, q y r son variables booleanas que toman los valores 
p=TRUE, q=TRUE, r=FALSE, ¿cuál de las siguientes expresiones devuelve 
un valor FALSE?</Enunciado>
			<a>p AND r&lt;= q OR NOT r</a>
			<b>OR q AND r=p AND q OR r</b>
			<c>(p&lt;r) OR NOT q&lt;p AND q</c>
			<d>NOT p OR NOT r &lt;&gt; NOT(q AND r)</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0605	</Numero>
			<Enunciado>En Modula-2, la palabra clave CASE:</Enunciado>
			<a>Sólo se utiliza en la parte declarativa</a>
			<b>Sólo se utiliza en la parte ejecutiva</b>
			<c>Se utiliza en cualquier punto de un bloque</c>
			<d>Se utiliza en cualquier punto del módulo de implementación</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0606	</Numero>
			<Enunciado>Un programa A tiene definidos dos procedimientos B y C en 
este orden. El  procedimiento  C  contiene  una  función  D.  En  la  
sección  de declaración del programa, de los procedimientos y de  la  
función,  se declaran las siguientes variables: en A: k, l, m; en B: l, 
p, q; en C: k, m;
	 en D: l    Supóngase que ninguno de los procedimientos ni la función 
poseen parámetros formales asociados. Señale la afirmación 
correcta:</Enunciado>
			<a>La variable k definida en A es accesible en D.</a>
			<b>Las   variables  k  y  m  definidas  en  C  sólo  son  accesibles  
en  este procedimiento.</b>
			<c>La sentencia p:=m*k es válida en el procedimiento B</c>
			<d>Desde el programa A se puede llamar a los procedimientos B, C y 
D.</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0607	</Numero>
			<Enunciado>La expresión A+B sólo devuelve ..</Enunciado>
			<a>INTEGER o REAL o CARDINAL</a>
			<b>INTEGER</b>
			<c>INTEGER o REAL</c>
			<d>INTEGER o REAL o CARDINAL o Conjunto</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0608	</Numero>
			<Enunciado>Del siguiente fragmento de código podemos decir que..     
PROCEDURE Imprimir( VAR A: SET OF CHAR}</Enunciado>
			<a>A es un conjunto abierto</a>
			<b>la invocación Imprimir(dato) es incorrecta</b>
			<c>A es una cadena de caracteres</c>
			<d>la invocación Imprimir(dato) puede ser correcta</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0609	</Numero>
			<Enunciado>Una estructura de datos secuencia:</Enunciado>
			<a>Se ordena utilizando un FOR</a>
			<b>Siempre se realiza mediante punteros</b>
			<c>Es una estructura acotada</c>
			<d>Se recorre mediante un WHILE</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0610	</Numero>
			<Enunciado>-   Dado el siguiente fragmento de código        
dato^.siguiente:=dato</Enunciado>
			<a>dato y siguiente son registros</a>
			<b>dato es un registro y siguiente es un campo</b>
			<c>dato y siguiente son punteros</c>
			<d>dato es el cursor de un registro</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0701	</Numero>
			<Enunciado>Sean los siguientes conjuntos:   X:= Colores {Rojo, 
Amarillo, Verde}; Y:= Colores {Amarillo, Azul};   La operación que devuelve 
TRUE es:</Enunciado>
			<a>X &gt;= Y</a>
			<b>X - Y</b>
			<c>X / Y</c>
			<d>X &lt;&gt; Y</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0702	</Numero>
			<Enunciado>En Modula-2 la función predefinida ORD se puede aplicar 
a:</Enunciado>
			<a>Conjuntos, INTEGER, CHAR</a>
			<b>Enumerados, INTEGER, CHAR</b>
			<c>Enumerados, REAL, Conjuntos</c>
			<d>Enumerados, INTEGER, Ristras</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0703	</Numero>
			<Enunciado>Un argumento formal</Enunciado>
			<a>Sólo se puede pasar por valor</a>
			<b>No se puede utilizar en expresiones</b>
			<c>Se debe utilizar en el bloque del subprograma</c>
			<d>Sólo se puede utilizar en las funciones</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0704	</Numero>
			<Enunciado>La expresión:    ser OR NOT ser</Enunciado>
			<a>Es aritmética</a>
			<b>Es lógica</b>
			<c>Es existencial</c>
			<d>Es de comparación</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0705	</Numero>
			<Enunciado>En Modula-2 la sentencia EXIT provoca la salida 
...</Enunciado>
			<a>condicional de un LOOP.</a>
			<b>del módulo principal.</b>
			<c>incondicional de un LOOP.</c>
			<d>del módulo de implementación.</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0706	</Numero>
			<Enunciado>El Tipo CHAR</Enunciado>
			<a>Incluye todos los caracteres disponibles en un computador</a>
			<b>Es un tipo enumerado</b>
			<c>No se puede utilizar en ninguna expresión</c>
			<d>Asegura que las minúsculas están ordenadas delante de las 
mayúsculas</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0707	</Numero>
			<Enunciado>Dados los siguientes bucles, indique cuál de las 
siguientes afirmaciones es cierta: contador:=1;   WHILE contador&lt;&gt;20 DO   
contador:=contador+1;   END;      contador:=0;   REPEAT   
contador:=contador+1;   UNTIL contador&gt;19;</Enunciado>
			<a>Ambos bucles se ejecutan 19 veces.</a>
			<b>El bucle WHILE se ejecuta 19 veces y el REPEAT 20 veces.</b>
			<c>Ambos bucles se ejecutan 20 veces.</c>
			<d>El bucle WHILE se ejecuta 20 veces y el REPEAT 19 veces</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0708	</Numero>
			<Enunciado>Una manera de realizar estructuras de datos ilimitadas en 
Modula-2 es mediante variables:</Enunciado>
			<a>Estáticas</a>
			<b>Persistentes</b>
			<c>Con variantes</c>
			<d>Dinámicas</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0709	</Numero>
			<Enunciado>Dada la siguiente declaración    PROCEDURE Simetrico 
(texto: ARRAY OF CHAR)</Enunciado>
			<a>Al argumento le falta el rango del índice</a>
			<b>No se puede pasar un vector como argumento</b>
			<c>El argumento siempre debe pasarse por referencia</c>
			<d>El argumento está bien definido</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0710	</Numero>
			<Enunciado>- La reutilización:</Enunciado>
			<a>Está basada en el empleo de abstracciones</a>
			<b>Necesita el empleo de módulos</b>
			<c>Es una característica del lenguaje de programación</c>
			<d>Sólo se logra mediante desarrollo ascendente</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0801	</Numero>
			<Enunciado>Para imprimir una ristra de caracteres utiliando write, 
emplearemos:</Enunciado>
			<a>Selección</a>
			<b>Iteración</b>
			<c>Búsqueda</c>
			<d>Ordenación</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0802	</Numero>
			<Enunciado>En los comentarios ...</Enunciado>
			<a>Se puede incluir cualquier ristra de caracteres.</a>
			<b>No se puede incluir identificadores ya empleados.</b>
			<c>No se puede incluir palabras clave.</c>
			<d>No se puede incluir el carácter 'ñ'.</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0803	</Numero>
			<Enunciado>Dado el siguiente fragmento de código:     VAR   
A:INTEGER; BEGIN   A:=ORD(FALSE);</Enunciado>
			<a>A toma el valor 0.</a>
			<b>Error, la función ORD sólo es aplicable a tipos enumerados.</b>
			<c>A toma el valor FALSE.</c>
			<d>Error, FALSE no es un valor de tipo enumerado.</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0804	</Numero>
			<Enunciado>Dado el siguiente fragmento de código:     PROCEDURE 
distancia(X1,Y1,X2,Y2:REAL):REAL; BEGIN   X1:=X2-X1;Y1:=Y2-Y1;   RETURN 
sqrt(X1*X1+Y1*Y1); END distancia.     y sea el código:     
XA:=23.5;YA=12.3; XB:=5.7;YB:=2.6;   distanciaba:=distancia(XA,YA,XB,YB);     
	Después de esta llamada, la variable XA vale:</Enunciado>
			<a>23.5*23.5</a>
			<b>5.7-23.5</b>
			<c>23.5-5.7</c>
			<d>23.5</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0805	</Numero>
			<Enunciado>De la sentencia:    incognita IN Digitos{"0".."9"}    se 
puede afirmar que la variable incognita es de tipo:</Enunciado>
			<a>Conjunto</a>
			<b>Dígitos</b>
			<c>Enumerado</c>
			<d>CHAR</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0806	</Numero>
			<Enunciado>En la instrucción de asignación:     A:=B</Enunciado>
			<a>A debe ser variable y B constante.</a>
			<b>Tanto A como B deben ser variables.</b>
			<c>Debe haber compatibilidad de tipos entre A y B.</c>
			<d>A y B deben ser de tipo simple.</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0807	</Numero>
			<Enunciado>¿Cuál de las siguiente sentencias es de 
iteración?</Enunciado>
			<a>WHILE...END</a>
			<b>A:=B</b>
			<c>IF...THEN...ELSE...END</c>
			<d>BEGIN...END</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0808	</Numero>
			<Enunciado>Dado el siguiente fragmento de código:   n:=0;   IF 
n&lt;2 THEN      n:=n+1; END;   Después de su ejecución n contiene el 
valor:</Enunciado>
			<a>3</a>
			<b>1</b>
			<c>2</c>
			<d>0</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0809	</Numero>
			<Enunciado>Del fragmento:     RECORD   CASE: BOOLEAN OF    TRUE: x, 
y: REAL |   FALSE: m,a: REAL   END END;     Se puede 
afirmar:</Enunciado>
			<a>Es un esquema tabla.</a>
			<b>Faltan campos fijos.</b>
			<c>Es un esquema unión.</c>
			<d>Sobra el CASE.</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0810	</Numero>
			<Enunciado>Del módulo de definición:     DEFINITION MODULE Simple;   
PROCEDURE uno;   PROCEDURE dos; END Simple.     Se puede 
afirmar:</Enunciado>
			<a>Faltan argumentos a los procedimientos.</a>
			<b>Es un tipo abstracto.</b>
			<c>Falta una declaración de tipo.</c>
			<d>Es un dato encapsulado..</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0901	</Numero>
			<Enunciado>La ingeniería del software aporta fundamentalmente a la 
programación:</Enunciado>
			<a>Modelos abstractos de cómputo más sofisticados</a>
			<b>Técnicas organizativas para desarrollos a gran escala</b>
			<c>Mejores lenguajes de programación</c>
			<d>El desarrollo automático de grandes programas</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0902	</Numero>
			<Enunciado>La sentencia de asignación</Enunciado>
			<a>Necesita variables a ambos lados</a>
			<b>Emplea una expresión a su izquierda</b>
			<c>Emplea expresiones a ambos lados</c>
			<d>Necesita una variable a su izquierda</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0903	</Numero>
			<Enunciado>En programación, cual de las siguientes afirmaciones es 
correcta:</Enunciado>
			<a>Los valores reales siempre son exactos</a>
			<b>Los valores enteros siempre son exactos</b>
			<c>Los valores enteros y reales siempre son exactos</c>
			<d>Los valores enteros y reales nunca son exactos</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0904	</Numero>
			<Enunciado>Después de la palabra clave ELSIF</Enunciado>
			<a>Siempre hay una condición</a>
			<b>Siempre hay una acción</b>
			<c>Puede haber una acción o una condición</c>
			<d>Acaba la selección</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0905	</Numero>
			<Enunciado>Dado el siguiente fragmento de Código:     FOR cont1:=  
-1 TO 1 DO   FOR cont2:=1 TO cont1 DO WriteString("HOLA");WriteLn;   END   
END     El número de veces que HOLA aparecerá por la pantalla 
será</Enunciado>
			<a>1</a>
			<b>hay un error de tipos</b>
			<c>3</c>
			<d>0</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0906	</Numero>
			<Enunciado>Dado el siguiente fragmento de código      VAR 
pt1:TipoPunt;   reg:TipoReg;   BEGIN   NEW(pt1);   reg.dato:=2;   
pt1^.dato:=3;</Enunciado>
			<a>pt1 es memoria dinámica y reg es memoria estática</a>
			<b>2 y 3 están en memoria dinámica</b>
			<c>2 está en memoria estática  y 3 en memoria dinámica</c>
			<d>2 y 3 están en memoria estática</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0907	</Numero>
			<Enunciado>Una de las siguientes afirmaciones no siempre es cierta 
en MODULA 2</Enunciado>
			<a>?t? es un valor constante</a>
			<b>Dias{lunes} es un valor constante</b>
			<c>43.2 es un valor constante</c>
			<d>?Hola? es un valor constante</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	0908	</Numero>
			<Enunciado>De un subprograma que devuelva siempre los mismos 
resultados se puede decir</Enunciado>
			<a>que es robusto</a>
			<b>que es funcional</b>
			<c>nada</c>
			<d>que es eficiente</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	0909	</Numero>
			<Enunciado>En Modula-2 las funciones deben devolver  un valor 
...</Enunciado>
			<a>de un tipo estructurado</a>
			<b>de un tipo simple</b>
			<c>de cualquier tipo</c>
			<d>de un tipo que no sea declarado por el usuario</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	0910	</Numero>
			<Enunciado>-   La compilación separada:</Enunciado>
			<a>Garantiza la compilación segura</a>
			<b>Facilita el trabajo en equipo</b>
			<c>Es exclusiva de Modula-2</c>
			<d>Está ligada a los tipos abstractos</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1001	</Numero>
			<Enunciado>Dado el siguiente fragmento de Código:     VAR cont1, 
cont2: CARDINAL;   FOR cont1:=  -1 TO 1 DO   FOR cont2:=1 TO cont1 DO   
WriteString("HOLA");WriteLn;   END END     El número de veces que HOLA 
aparecerá por la pantalla ..</Enunciado>
			<a>1</a>
			<b>hay un error de tipos</b>
			<c>3</c>
			<d>0</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1002	</Numero>
			<Enunciado>Dado el siguiente fragmento de código     TYPE 
TipoDias=(L,M,X,J); VAR semana :SET OF TipoDias;     Podemos decir 
que</Enunciado>
			<a>semana es un conjunto abierto</a>
			<b>L IN semana devuelve FALSE</b>
			<c>TipoDias es un referencial anónimo</c>
			<d>No se pueden hacer asignaciones a semana</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1003	</Numero>
			<Enunciado>En una lista apuntada el número máximo de elementos que 
la integran lo determina</Enunciado>
			<a>no hay número máximo</a>
			<b>el cursor de la lista</b>
			<c>el índice de la lista</c>
			<d>su declaración</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1004	</Numero>
			<Enunciado>De HIGH(cadena) podemos decir que</Enunciado>
			<a>sólo puede aparecer dentro de un procedimiento</a>
			<b>permite conocer el valor máximo de cadena</b>
			<c>es un procedimiento clave de MODULA2</c>
			<d>permite conocer el tamaño del vector cadena</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1005	</Numero>
			<Enunciado>Después de ejecutar las sentencias     
AddCesta(Cesta,Objeto1); AddCesta(Cesta,Objeto2);     Cesta contiene un objeto más que 
antes. Podemos decir que..</Enunciado>
			<a>Cesta se pasa una vez por referencia y otra por valor</a>
			<b>Cesta se pasa las dos veces por referencia</b>
			<c>Cesta se pasa por valor y Objeto1 y  Objeto2 por referencia</c>
			<d>Cesta es un conjunto de tipo anónimo</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1006	</Numero>
			<Enunciado>De la sentencia: WHILE (c &lt;&gt; NIL) AND ( c^.v &lt; n 
) DO .... siempre podremos  afirmar que</Enunciado>
			<a>Puede dar errores en ejecución</a>
			<b>Tiene errores de compilación</b>
			<c>Nunca se ejecuta el cuerpo del bucle</c>
			<d>Es un bucle infinito</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1007	</Numero>
			<Enunciado>La declaración VAR AND : INTEGER;</Enunciado>
			<a>Es correcta</a>
			<b>Es incorrecta por utilizar sólo mayúsculas</b>
			<c>Es incorrecta por el identificador utilizado</c>
			<d>Es incorrecta por el tipo utilizado</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1008	</Numero>
			<Enunciado>En la práctica, la verificación:</Enunciado>
			<a>Garantiza que en el programa no hay ningún error</a>
			<b>Se hace mediante ensayos del programa</b>
			<c>Aumenta la complejidad del programa</c>
			<d>Garantiza la eficiencia del programa</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1009	</Numero>
			<Enunciado>¿ Cuál es la ristra de caracteres incorrecta en 
Modula-2?</Enunciado>
			<a>?abcd?efg?</a>
			<b>?abcd?e?efg?</b>
			<c>?abcd?efg?</c>
			<d>Todas son correctas</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1010	</Numero>
			<Enunciado>-   La realización de un tipo  abstracto de datos en 
Modula2 lleva implícito el uso de</Enunciado>
			<a>un  sólo módulo de implementación</a>
			<b>un sólo módulo de definición</b>
			<c>un módulo de definición y otro de implementación</c>
			<d>datos predefinidos</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1101	</Numero>
			<Enunciado>Nos encontramos con estas sentencias     dato := 3;   
dato := 4.3;     ¿Qué estamos manejando?</Enunciado>
			<a>Dos campos variantes con el mismo identificador</a>
			<b>Un error monumental</b>
			<c>Una variable multitipo</c>
			<d>Una redefinición</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1102	</Numero>
			<Enunciado>El dato ?hola? es</Enunciado>
			<a>Una constante cuyo identificador es ?hola?</a>
			<b>Es un ARRAY de CHAR</b>
			<c>Es un valor constante</c>
			<d>Es un CHAR</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1103	</Numero>
			<Enunciado>Dado el siguiente fragmento de código DEFINITION MODULE 
Juegos PROCEDURE InicioJuego; PROCEDURE FinJuego;   END Juegos.     
InicioJuego y FinJuego manipulan la variable jugadores. ¿Dónde debe 
inicializarse esta variable?</Enunciado>
			<a>En las sentencias de inicialización del módulo de 
implementación</a>
			<b>En las sentencias de inicialización del modulo de definición</b>
			<c>En el bloque ejecutivo de los procedimientos</c>
			<d>En la parte ejecutiva de los módulos que los usen</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1104	</Numero>
			<Enunciado>Dado el siguiente fragmento de código     VAR A:INTEGER 
PROCEDURE A( ):INTEGER; VAR A: INTEGER;   BEGIN RETURN A; END 
A;</Enunciado>
			<a>Error, identificador reutilizado</a>
			<b>Correcto, es una redefinición de identificadores</b>
			<c>Correcto, la reglas de visibilidad deciden</c>
			<d>Error por paralaje de identificadores</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1105	</Numero>
			<Enunciado>La sentencia de asignación:</Enunciado>
			<a>Siempre necesita una variable a su derecha</a>
			<b>Existe en todos los lenguajes de programación</b>
			<c>Siempre necesita una variable a su izquierda</c>
			<d>Existe en todos los modelos de computo</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1106	</Numero>
			<Enunciado>Los aspectos de estilo:</Enunciado>
			<a>Muestran la creatividad de cada programador</a>
			<b>No dependen del lenguaje utilizado</b>
			<c>Sólo tiene en cuenta el encolumnado y los comentarios</c>
			<d>Los fija el lenguaje utilizado</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1107	</Numero>
			<Enunciado>¿Cual de las siguiente afirmaciones es 
CORRECTA?:</Enunciado>
			<a>Los tipos opacos son tipos abstractos de datos</a>
			<b>Los datos encapsulados son tipos opacos</b>
			<c>Los tipos anónimos son datos encapsulados</c>
			<d>Los tipos abstractos son tipos opacos</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1108	</Numero>
			<Enunciado>Respecto a la sentencia:     P^ := P^.siguiente  DIV 23;     
Se puede decir:</Enunciado>
			<a>Hay incompatibilidad de tipos en la operación DIV</a>
			<b>Es correcta</b>
			<c>No es correcta la operación P^.siguiente</c>
			<d>Hay incompatibilidad de tipos en la asignación</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1109	</Numero>
			<Enunciado>A descomponer un problema en subproblemas se conoce 
como</Enunciado>
			<a>Reutilización</a>
			<b>Redefinición</b>
			<c>Refinamiento</c>
			<d>Reasignación</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1110	</Numero>
			<Enunciado>La complejidad de un algoritmo:</Enunciado>
			<a>Depende del programador</a>
			<b>Depende del anidamiento de bucles</b>
			<c>Depende del invariante</c>
			<d>Aumenta con el uso del LOOP</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1201	</Numero>
			<Enunciado>Para encapsular un dato lo podré hacer</Enunciado>
			<a>Dentro de un modulo de definición</a>
			<b>Dentro de un LOOP</b>
			<c>Dentro de un subprograma</c>
			<d>Dentro de un registro</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1202	</Numero>
			<Enunciado>El subprograma  Ordena devuelve, cualquier vector de 
letras  que se le pasa como parámetro, ordenado. Su cabecera podrá 
ser</Enunciado>
			<a>Ordena:ARRAY OF letras</a>
			<b>Ordena(VAR v: ARRAY OF letras)</b>
			<c>Ordena(VAR v: letras)</c>
			<d>Ordena(VAR v: tipovectletras)</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1203	</Numero>
			<Enunciado>La definición de un conjunto siempre está basada en un 
referencial de tipo:</Enunciado>
			<a>Enumerado u otro conjunto</a>
			<b>Enumerado o subrango</b>
			<c>Enumerado, subrango u otro conjunto</c>
			<d>Enumerado, subrango o escalar predefinido</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1204	</Numero>
			<Enunciado>Una expresión condicional?.</Enunciado>
			<a>Sólo se puede usar en sentencias IF, WHILE y REPEAT</a>
			<b>Sólo se puede usar en la sentencia IF</b>
			<c>Siempre emplea operadores de comparación</c>
			<d>Siempre da como resultado un tipo BOOLEAN</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1205	</Numero>
			<Enunciado>La sentencia:     P^ := P^.siguiente + 1;</Enunciado>
			<a>Es correcta</a>
			<b>Es correcta cuando siguiente es un puntero</b>
			<c>Es incorrecta</c>
			<d>Es correcta cuando siguiente es de tipo INTEGER</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1206	</Numero>
			<Enunciado>La reutilización se puede lograr mediante 
desarrollo:</Enunciado>
			<a>Ascendente y descendente</a>
			<b>Sólo descendente</b>
			<c>Sólo ascendente</c>
			<d>Específico</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1207	</Numero>
			<Enunciado>En el DEFINITION MODULE de un dato 
encapsulado:</Enunciado>
			<a>Se utilizan PROCEDURE y VAR</a>
			<b>Se utilizan PROCEDURE, VAR y TYPE</b>
			<c>Sólo se utilizan PROCEDURE</c>
			<d>Se utilizan todos los elementos de definición</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1208	</Numero>
			<Enunciado>La complejidad?.</Enunciado>
			<a>Determina la corrección de un programa</a>
			<b>Depende del anidamiento de bucles</b>
			<c>Mide la robustez de un programa</c>
			<d>Se calcula a partir del invariante</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1209	</Numero>
			<Enunciado>Dado el siguiente fragmento de código: TYPE tipo = 
(A,B,c);     PROCEDURE Prueba(VAR p1,p2:tipo): tipo; BEGIN   ...   RETURN p1; 
END Prueba;</Enunciado>
			<a>Se produce un error por incompatibilidad de tipos.</a>
			<b>Es correcto.</b>
			<c>La cabecera del subprograma es incorrecta.</c>
			<d>Sería correcta si lo fuera la declaración del tipo enumerado.</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1210	</Numero>
			<Enunciado>Dadas las siguientes reglas de producción: Letra ::= {a | 
b}     Numero ::= {1 | 2}     Cadena ::= [Letra | Numero]     Cadenas 
correctas del lenguaje generado por esta gramática serán:</Enunciado>
			<a>a1 y b1</a>
			<b>aab y 121</b>
			<c>2aa y b22</c>
			<d>ab12 y bb22</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1301	</Numero>
			<Enunciado>Dado el siguiente fragmento de codigo:     FOR c1:=1 TO 4 
DO NEW(puntero);puntero^:=c1;END;   FOR c1:=1 TO 4 DO 
WriteInt(puntero^,3);END;     El resultado generado será:</Enunciado>
			<a>3333</a>
			<b>4444</b>
			<c>1234</c>
			<d>4</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1302	</Numero>
			<Enunciado>Cuál de las siguientes notaciones BNF generará la cadena 
ab</Enunciado>
			<a>{a} | {b}</a>
			<b>[a] | [b]</b>
			<c>{b} | {a}</c>
			<d>{a | b}</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1303	</Numero>
			<Enunciado>Dado el siguiente modulo de definición     DEFINITION 
MODULE Ajedrez;   Var Cuadro (caballo, torre, alfil); PROCEDURE Jugar();   
END Ajedrez.     Si importamos el modulo con la sentencia IMPORT 
Ajedrez qué sentencia es correcta</Enunciado>
			<a>DEC(torre);</a>
			<b>Ajedrez.Jugar;</b>
			<c>INC(cuadro);</c>
			<d>Ajedrez.cuadro:=torre;</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1304	</Numero>
			<Enunciado>TYPE subletras["A".."C"]; Conjsubletras=SET OF subletras; 
Tconj=POINTER TO Conjsubletras; VAR a:Tconj;     ¿Cuál de las 
siguientes asignaciones es correcta?</Enunciado>
			<a>a^:=Conjsubletras{"C"};</a>
			<b>a:= Conjsubletras{"C"};</b>
			<c>a^:=subletras{"C"};</c>
			<d>a:=subletras{"C"};</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1305	</Numero>
			<Enunciado>DEFINITION MODULE Juegos; TYPE TipoDato;   ---   END 
Juegos.     Señalar la afirmación correcta:</Enunciado>
			<a>A.TipoDato es un dato opaco</a>
			<b>Nadie podrá declarar variables del tipo TipoDato</b>
			<c>La asignación entre variables de tipo TipoDato no está 
permitida;</c>
			<d>La definición es incorrecta</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1306	</Numero>
			<Enunciado>Dada la siguiente instrucción     A:= 
Tpalabra{Ordenar(Dato)};     Podemos decir</Enunciado>
			<a>Es correcta</a>
			<b>Ordenar devuelve un conjunto</b>
			<c>Dato es del tipo referencial</c>
			<d>Es incorrecta</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1307	</Numero>
			<Enunciado>DEFINITION MODULE Primero; TYPE TipoDato; END Primero.   
IMPLEMENTACION MODULE Primero; PROCEDURE Magico(dato:TipoDato); END 
Primero.</Enunciado>
			<a>Magico es anónimo</a>
			<b>Magico es opaco</b>
			<c>Nadie podrá usar Magico</c>
			<d>No tiene sentido definir Magico</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1308	</Numero>
			<Enunciado>Dado     CONST V1=3.0   VAR V3:INTEGER; V2:CHAR;     Y la 
siguiente invocación    Param(V1,V2,V3);    La cabecera correcta 
es</Enunciado>
			<a>PROCEDURE Param(VAR v1:REAL; VAR v2:CHAR; VAR v3:INTEGER);</a>
			<b>PROCEDURE Param(v1:REAL; VAR v2:CHAR; VAR v3:INTEGER);</b>
			<c>PROCEDURE Param(VAR v1:REAL; v2:CHAR; VAR v3:INTEGER);</c>
			<d>PROCEDURE Param(VAR v1:REAL; VAR v2:CHAR; v3:INTEGER);</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1309	</Numero>
			<Enunciado>La definición de un conjunto siempre está basada en un 
referencial de tipo:</Enunciado>
			<a>Enumerado o subrango</a>
			<b>Enumerado, subrango u otro conjunto</b>
			<c>Enumerado u otro conjunto</c>
			<d>Enumerado, subrango o escalar predefinido</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1310	</Numero>
			<Enunciado>Un interprete</Enunciado>
			<a>Simula una máquina virtual</a>
			<b>Traduce de un lenguaje fuente a un lenguaje objeto</b>
			<c>Analiza la red de operadores</c>
			<d>Mejora la eficiencia</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1401	</Numero>
			<Enunciado>Dado el siguiente fragmento de código: CASE j OF   
enero..junio:INC(j);|   diciembre..julio:DEC(j);    ELSE END;</Enunciado>
			<a>es necesaria alguna sentencia tras ELSE</a>
			<b>la sentencia ELSE no se puede usar dentro de una instrucción 
CASE</b>
			<c>la variable j tiene que ser de tipo ordinal para ser correcto</c>
			<d>los rangos establecidos son incorrectos</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1402	</Numero>
			<Enunciado>Para que en Modula-2, la siguiente definición de tipo sea 
la de una tabla: TYPE TipVect= ARRAY TipInd OF TipElem</Enunciado>
			<a>TipInd debe ser cualquier tipo predefinido y TipElem RECORD</a>
			<b>TipInd debe ser cualquier tipo ordinal y TipElem RECORD</b>
			<c>TipInd debe ser un tipo ordinal definido por el usuario y TipElem 
de cualquier tipo</c>
			<d>TipInd debe ser RECORD y TipElem de cualquier tipo</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1403	</Numero>
			<Enunciado>Dado el siguiente procedimiento: PROCEDURE 
proc(a,b:INTEGER); VAR aux:INTEGER;   BEGIN aux:=a+b+c; c:=aux;   END proc;   Para 
que fuese puro:</Enunciado>
			<a>Es ya un procedimiento puro</a>
			<b>bastaría con pasar las variables a y b por referencia</b>
			<c>la variable c se debería pasar por referencia</c>
			<d>Todas las variables, incluida aux, deben pasarse por 
referencia</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1404	</Numero>
			<Enunciado>Sabiendo que en Modula-2 existe el tipo predefinido 
BOOLEAN: TYPE BOOLEAN=(FALSE, TRUE)   Se puede afirmar:</Enunciado>
			<a>ORD(FALSE)=0</a>
			<b>ORD(FALSE)=1</b>
			<c>El tipo BOOLEAN no es un tipo ordinal</c>
			<d>Con los tipos predefinidos no se puede utilizar la ORD</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1405	</Numero>
			<Enunciado>La compilación segura:</Enunciado>
			<a>Tiene como objetivo comprobar la compatibilidad de tipos</a>
			<b>Produce un programa objeto más eficiente</b>
			<c>Mejora la reutilización</c>
			<d>Necesita un modulo de definición</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1406	</Numero>
			<Enunciado>Dado el siguiente fragmento de código: TYPE t1=RECORD c1, 
c2:REAL; END;   t2=POINTER TO REAL;   t3=POINTER TO t1; VAR a:t1; b:t2; 
c:t3;   ...   NEW(b); NEW(c);     La asignación correcta 
es:</Enunciado>
			<a>c^.c1:=a.c2;</a>
			<b>b:= c^.c1;</b>
			<c>a:=c;</c>
			<d>c.c1:=a.c2;</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1407	</Numero>
			<Enunciado>Dado la siguiente declaración de variables:   VAR c1:T1; 
c2:T2;   Después de ejecutar   Leer(c1); Leer(c2);   las variables c1 y 
c2 toman los valores ?esto? y ?aquello? respectivamente. A la vista del 
resultado, el procedimiento Leer tendrá como argumento:</Enunciado>
			<a>(a:T1,T2)</a>
			<b>(VAR a:T1,T2)</b>
			<c>(VAR a: ARRAY OF CHAR)</c>
			<d>(a: ARRAY OF CHAR)</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1408	</Numero>
			<Enunciado>Después de ejecutar el siguiente fragmento de código: VAR 
pt1, pt2, pt3: POINTER TO REAL; ...   NEW(pt1); pt1^:=3.0; pt2:=pt1; 
pt3:=pt2; DISPOSE(pt2);</Enunciado>
			<a>Sólo se libera pt3</a>
			<b>Sólo se libera pt3 y pt2</b>
			<c>Se liberan los punteros pt1, pt2 y pt3</c>
			<d>Se produce un error, y no se libera la memoria</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1409	</Numero>
			<Enunciado>La definición completa de un tipo opaco que se declara en 
un módulo de definición debe completarse en :</Enunciado>
			<a>El módulo principal del programa</a>
			<b>El propio módulo de definición</b>
			<c>El módulo de implementación correspondiente</c>
			<d>La declaración también se hace en el módulo de  
implementación</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1410	</Numero>
			<Enunciado>Dado el siguiente procedimiento: PROCEDURE Calcular (VAR 
A: INTEGER; B: INTEGER) : INTEGER; BEGIN    A := B MOD 2; B := A * A + 
3 * B - 6; RETURN A+B END Calcular;     El valor de X tras ejecutar 
X:=4; X:=Calcular(X,X);   será:</Enunciado>
			<a>0</a>
			<b>6</b>
			<c>4</c>
			<d>12</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1501	</Numero>
			<Enunciado>Respecto a la sentencia:   Correcto := calculo(matriz) IN 
grupo;   Se puede decir en cualquier caso que:</Enunciado>
			<a>Correcto es de tipo BOOLEAN</a>
			<b>Correcto y grupo son de tipos compatibles</b>
			<c>La función calculo devuelve un tipo BOOLEAN</c>
			<d>grupo es de tipo enumerado</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1502	</Numero>
			<Enunciado>En la sentencia: Pagina.Imprimir;</Enunciado>
			<a>Pagina es un registro</a>
			<b>Imprimir es un campo variante</b>
			<c>Imprimir es una función</c>
			<d>Pagina es un módulo</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1503	</Numero>
			<Enunciado>El invariante de una iteración es la condición que se 
debe cumplir siempre:</Enunciado>
			<a>Sólo después de cada repetición</a>
			<b>Sólo antes de cada repetición</b>
			<c>Antes y después de cada nueva repetición</c>
			<d>En cualquier punto del bucle iterativo</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1504	</Numero>
			<Enunciado>Dado el siguiente fragmento de código: TYPE 
INTEGER=[0..10];   VAR K: ARRAY [10..20] OF INTEGER; ... K[15]:= 10;</Enunciado>
			<a>Es correcto.</a>
			<b>El tipo de datos [10..20] utilizado en la declaración es 
incorrecto.</b>
			<c>El acceso al elemento 15 es incorrecto.</c>
			<d>La asignación del valor 10 produce un error de incompatibilidad 
de tipos.</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1505	</Numero>
			<Enunciado>Dado el siguiente fragmento de código: TYPE 
INTEGER=('0','1','2','3','4','5');   VAR  K: ARRAY [2..4] OF INTEGER; ...   K[3]:= 
2;</Enunciado>
			<a>La declaración de la variable K es incorrecta.</a>
			<b>La redefinición del tipo INTEGER es incorrecta.</b>
			<c>K[3] accede al tercer elemento del vector K.</c>
			<d>Es correcto.</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1506	</Numero>
			<Enunciado>Dado el siguiente fragmento de código: VAR a:INTEGER;   
TYPE CHAR=SET OF ['1'..'9']; VAR b:CHAR; ...   b:=CHAR{'1'};   
a:=VAL(CHAR, '1');</Enunciado>
			<a>Es correcto y la variable a toma el valor 0.</a>
			<b>Es correcto y la variable a toma el valor 1.</b>
			<c>Es correcto y la variable a toma el valor '1'.</c>
			<d>La asignación del valor a la variable a es incorrecta.</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1507	</Numero>
			<Enunciado>Dada la siguiente declaración     VAR T:tipodias     Del 
siguiente fragmento de código dato=dias{T}   podemos decir 
que</Enunciado>
			<a>dato debe ser una constante</a>
			<b>es una expresión condicional</b>
			<c>es una sentencia de asignación</c>
			<d>es una definición de un tipo</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1508	</Numero>
			<Enunciado>Dada la siguiente declaración   VAR p1:POINTER TO 
INTEGER;   p2:POINTER TO REAL; BEGIN   NEW(p1); NEW(p2); ...     La sentencia 
correcta será</Enunciado>
			<a>p1:=TRUNC(p2);</a>
			<b>p1:=p2;</b>
			<c>p1^:=TRUNC(p2^);</c>
			<d>p2:=FLOAT(p1);</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1509	</Numero>
			<Enunciado>Cuál de las siguientes parejas de operadores tienen 
siempre resultados del mismo tipo</Enunciado>
			<a>* ,  +</a>
			<b>*, IN</b>
			<c>OR, INCL</c>
			<d>AND , IN</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1510	</Numero>
			<Enunciado>Dada la siguiente declaración:     VAR dato:ARRAY[1..10] 
OF INTEGER; Con la siguiente sentencia   FOR cont:=1 TO 10 DO   
dato[cont]:=dato[cont+1]   END</Enunciado>
			<a>Trasladamos los elementos del vector una posición a la 
izquierda</a>
			<b>Trasladamos los elementos del vector una posición a la 
derecha</b>
			<c>Cometemos un error de acceso a los elementos del vector</c>
			<d>Manipulamos el índice del vector por referencia</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1601	</Numero>
			<Enunciado>Respecto a la sentencia:     Correcto := calculo(matriz) 
IN grupo;     Se puede decir en cualquier caso que:</Enunciado>
			<a>calculo es un procedimiento que devuelve como resultado 
matriz</a>
			<b>La función calculo devuelve un valor enumerado</b>
			<c>matriz y grupo son de tipos compatibles</c>
			<d>grupo es de tipo BOOLEAN</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1602	</Numero>
			<Enunciado>Los metasimbolos son:</Enunciado>
			<a>Elementos de la programación lógica</a>
			<b>Elementos de la programación funcional</b>
			<c>Elementos de la notación BNF</c>
			<d>Parte del modelo de flujo de datos</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1603	</Numero>
			<Enunciado>La reutilización se consigue mediante 
desarrollo:</Enunciado>
			<a>Sólo ascendente</a>
			<b>Sólo descendente</b>
			<c>Ascendente o descendente</c>
			<d>Robusto</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1604	</Numero>
			<Enunciado>Los tipos opacos:</Enunciado>
			<a>Son datos persistentes</a>
			<b>Son punteros</b>
			<c>Son tipos abstractos de datos</c>
			<d>Son de acceso secuencial</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1605	</Numero>
			<Enunciado>Dado el siguiente fragmento de código: FOR i:=0 TO 1 BY 
0.1 DO WriteString("Esto se escribe 10 veces"); END</Enunciado>
			<a>El cuerpo del bucle se ejecuta 10 veces.</a>
			<b>Se produce un error por incompatibilidad de tipos.</b>
			<c>La frase se escribe una vez, pero al incrementar el índice se 
produce un error.</c>
			<d>Aunque no hay errores, el cuerpo del bucle nunca se ejecuta.</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1606	</Numero>
			<Enunciado>Dado el siguiente fragmento de código: VAR a:CHAR;   TYPE 
CHAR=SET OF ['1'..'9']; VAR b:CHAR; ...  b:=CHAR{'3'..'5'}; 
a:=b;</Enunciado>
			<a>La declaración de las variables es incompatible.</a>
			<b>Se produce un error en la asignación b:=CHAR{'3'..'5'}.</b>
			<c>Es correcto.</c>
			<d>Se produce un error en la asignación a:=b.</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1607	</Numero>
			<Enunciado>A la vista únicamente de la siguiente declaración: VAR 
K:POINTER TO SET OF [1..10];   Sólo se puede decir que:</Enunciado>
			<a>Es incorrecta.</a>
			<b>K es un dato encapsulado.</b>
			<c>K es de tipo anónimo.</c>
			<d>K es de tipo opaco.</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1608	</Numero>
			<Enunciado>Dada la siguiente fragmento de código dato=dias{L};   
podemos decir que</Enunciado>
			<a>L puede ser una variable o una constante</a>
			<b>dias{L} es un valor constante de tipo conjunto</b>
			<c>dias es el nombre del tipo referencial</c>
			<d>dato no tiene tipo</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1609	</Numero>
			<Enunciado>Dado el siguiente módulo:   DEFINITION MODULE  Segundo;   
PROCEDURE Previo( VAR dato:tipodato): END Segundo.</Enunciado>
			<a>Es correcto, tipodato es un tipo opaco</a>
			<b>Es erróneo, se necesita la declaración de tipodato</b>
			<c>Es erróneo tipodato es un tipo anónimo</c>
			<d>Es erróneo dato debería ser por valor</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1610	</Numero>
			<Enunciado>La  cabecera  del  subprograma   WriteString  para  
imprimir  cadenas  de caracteres podría ser</Enunciado>
			<a>PROCEDURE WriteString(a:CHAR);</a>
			<b>PROCEDURE WriteString(a:ARRAY OF CHAR);</b>
			<c>PROCEDURE WriteString(VAR a:ARRAY[1..1000]OF CHAR );</c>
			<d>PROCEDURE WriteString(a:POINTER TO CHAR);</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1701	</Numero>
			<Enunciado>Dado el siguiente fragmento de código:   VAR 
d1:INTEGER;d2:REAL;   PROCEDURE Contar(VAR c:REAL;h:INTEGER):INTEGER;     La 
invocación correcta será:</Enunciado>
			<a>d1:=Contar (Contar(d2,d1),d1);</a>
			<b>d1:=Contar(d2,Contar(d1,d2));</b>
			<c>d1:=Contar(34,Contar(d2,34));</c>
			<d>d1:=Contar(d2,Contar(d2,34));</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1702	</Numero>
			<Enunciado>Los tipos enumerados y las formaciones:</Enunciado>
			<a>Son tipos acotados</a>
			<b>Sirven para lo mismo</b>
			<c>Son tipos estructurados</c>
			<d>Utilizan índices</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1703	</Numero>
			<Enunciado>¿Qué  carácter  imprimirá por pantalla la siguiente 
sentencia?   Write(CHR(ORD(?C?)+ORD(CHR(ORD(?d?-ORD(?a?)))));</Enunciado>
			<a>D (mayúscula)</a>
			<b>e (minúscula)</b>
			<c>F (mayúscula)</c>
			<d>c (minúscula)</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1704	</Numero>
			<Enunciado>Las reglas de visibilidad en Modula-2 
permiten:</Enunciado>
			<a>Consultar y modificar las variables de los bloques más 
internos.</a>
			<b>Consultar y modificar las variables de los bloques más 
externos.</b>
			<c>Consultar   las   variables   de   los   bloques   más 
internos.</c>
			<d>Consultar   las   variables   de   los   bloques   más 
externos.</d>
			<Solucion>B</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1705	</Numero>
			<Enunciado>Analizar  el  número  de  instrucciones   que   se 
ejecutarán  en  el  peor  caso  en  este  fragmento  de programa)  A:=7;   IF 
A&lt;C THEN   A:=C;B:=C;C:=3   ELSE   C:=2*A;B:=C-5; END</Enunciado>
			<a>4</a>
			<b>5</b>
			<c>6</c>
			<d>7</d>
			<Solucion>D</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1706	</Numero>
			<Enunciado>La  técnica  de  refinamientos  sucesivos  es  una 
estrategia de desarrollo de programas:</Enunciado>
			<a>Descendente</a>
			<b>Abstracta</b>
			<c>Ascendente</c>
			<d>Horizontal</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	2	</Capitulo>
			<Numero>	1707	</Numero>
			<Enunciado>Con qué objetivos se definen los 
subprogramas:</Enunciado>
			<a>Aumentar la claridad.</a>
			<b>Aumentar la potencia de cálculo.</b>
			<c>Aumentar la eficiencia.</c>
			<d>Aumentar la robustez.</d>
			<Solucion>A</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	1	</Capitulo>
			<Numero>	1708	</Numero>
			<Enunciado>El desarrollo ascendente:</Enunciado>
			<a>Mejora la robustez</a>
			<b>Evita la verificación.</b>
			<c>Facilita la reutilización.</c>
			<d>Disminuye la complejidad.</d>
			<Solucion>C</Solucion>
		</Pregunta>
		<Pregunta>
			<Capitulo>	3	</Capitulo>
			<Numero>	1709	</Numero>
			<Enunciado>La transparencia referencial se da cuando:</Enunciado>
			<a>Un   subprograma   produce  siempre  los  mismos resultados 
independientemente de los argumentos con que se le invoque.</a>
			<b>Se produce doble referencia en un subprograma.</b>
			<c>Un  subprograma produce los mismos resultados siempre  que  se  
le  invoque   con   los   mismos argumentos.</c>
			<d>A un programa se le pasan solamente argumentos por 
referencia.</d>
			<Solucion>C</Solucion>
		</Pregunta>
	</Preguntas>
</Asignatura>
 