Sunteți pe pagina 1din 23

CUESTIONARIO N 1

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

1.1.- En programacin, cul de las siguientes afirmaciones es correcta:


a)
b)
c)
d)

Los valores reales son siempre exactos.


Los valores enteros siempre son exactos.
Los valores enteros y reales siempre son exactos.
Los valores enteros y reales nunca son exactos.

1.2.- Que valor devuelve la expresin char(int(c)):


a)
b)
c)
d)

Error.
El ASCII correspondiente al carcter c.
Una variable en memoria.
El carcter c.

1.3.- Que resultados devuelven las siguientes expresiones y como las expresaras de
forma ms clara (tened en cuenta el Manual de estilo):
a)
b)
c)
d)

35.3 * 5.1 + 4.5 / 7.6


Float(25) / -6.2 * 5.4 / 2.4
25.5 * int(3.5)
334 / 6 % 4 5 * 4

1.4.- Una de las siguientes afirmaciones no siempre es cierta en C+/-:


a)
b)
c)
d)

t es un valor constante
Int(dias/2.0) es un valor constante
43.2 es un valor constante
Hola es un valor constante

1.5.- La sentencia de asignacin:


a)
b)
c)
d)

Precisa de variables a ambos lados.


Emplea una expresin a su izquierda.
Emplea expresiones a ambos lados
Necesita una variable a su izquierda

1.6.- La declaracin int AND;


a)
b)
c)
d)

Es correcta.
Es incorrecta por utilizar slo maysculas.
Es incorrecta por el tipo utilizado.
Es incorrecta por el identificador utilizado.

1.7.- Cul es la ristra de caracteres incorrecta en C+/- ?;


a) Datos: %d # %f
b) abcdeefg
c) abcdefg
Pag.1

CUESTIONARIO N 1

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

d) Todas son correctas


1.8.- En la asignacin A = B;
a)
b)
c)
d)

Tanto A como B deben ser variables


A debe ser variable y B constante
Debe haber compatibilidad de tipos entre A y B
A y B deben ser de tipo simple

1.9.- En los comentarios


a)
b)
c)
d)

No se pueden incluir palabras clave


No se pueden emplear identificadores ya empleados
Se pueden incluir cualquier ristra de caracteres
No se puede incluir la

PROBLEMA
Dadas las variables cdigo, cantidad y precio de un producto en el almacn (debern
pedirse al usuario para que las introduzca), realizar una pequea aplicacin en C+/usando la tcnica de refinamientos sucesivos para extraer en pantalla:
Cdigo_Producto

Cantidad

Precio

Importe

Base Imponible
IVA
Total

Pag.2

CUESTIONARIO N 2

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

2.1.- Despus de la palabra clave else { if:


a)
b)
c)
d)

Siempre hay una condicin.


Siempre hay una accin.
Puede haber una accin o condicin.
Acaba la seleccin.

2.2.- De un subprograma que devuelve siempre los mismos resultados se puede decir:
a)
b)
c)
d)

Que es robusto.
Que es funcional.
Nada.
Que es eficiente

2.3.- La ingeniera del software aporta fundamentalmente a la programacin:


a)
b)
c)
d)

Modelos abstractos de cmputo ms sofisticados.


Tcnicas organizativas para desarrollos a gran escala.
Mejores lenguajes de programacin.
El desarrollo automtico de grandes programas.

2.4.- Ordenar los conceptos CLARIDAD, EFICIENCIA y CORRECCIN:


a)
b)
c)
d)

Eficiencia, claridad y correccin.


Todos igual importancia.
Correccin, eficiencia y claridad.
Correccin, claridad y eficiencia.

2.5.- Dado el siguiente fragmento de cdigo


for (int cont1 = -1; cont1 <= 1; cont1++) {
for (int cont2 = 1; cont2 <= cont1; cont2++) {
Printf (Hola\n):
}
}
El nmero de veces que Hola aparece en pantalla es:
a)
b)
c)
d)

1.
Hay un error de tipos.
3.
0.

2.6.- Dado el siguiente fragmento de cdigo:

Pag.3

CUESTIONARIO N 2

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

for (int cont1 = -1; cont1 <= 10; cont1++) {


for (int cont2 = 1; cont2 <= cont1; cont2++) {
Printf (Hola\n):
}
}
El nmero de veces que Hola aparece en pantalla es:
a)
b)
c)
d)

1.
55.
Hay un error de tipos.
53.

2.7.- En la prctica, la verificacin:


a)
b)
c)
d)

Garantiza que en el programa no hay ningn error.


Se hace mediante ensayos del programa.
Aumenta la complejidad del programa.
Garantiza la eficiencia del programa.

2.8.- Dado el siguiente fragmento de cdigo:


int n = 0;
if (n < 2) {
n++;
}
Despus de su ejecucin n contiene el valor:
a)
b)
c)
d)

1.
3.
2.
0.

2.9.- Para imprimir una ristra de caracteres utilizando printf emplearemos:


a)
b)
c)
d)

Seleccin.
Ordenacin.
Bsqueda.
Iteracin.

2.10.- Cual de estas sentencias es de iteracin:


a)
b)
c)
d)

if{} else{
while{}
Begin{}End
A=B

Pag.4

CUESTIONARIO N 3

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

3.1.- Nos encontramos con la siguiente sentencia:


Dato = 3;
Dato = 4.3;
Qu estamos manejando?:
a)
b)
c)
d)

Dos campos variantes con el mismo identificador.


Un error.
Una variable multitipo.
Una redefinicin.

3.2.- El dato hola es:


a)
b)
c)
d)

Una constante cuyo identificador es hola.


Es un ARRAY de CHAR.
Es un valor constante.
Es un CHAR.

3.3.- Dado el siguiente fragmento de cdigo:


int A () {
int A;
return A;
}
int main () {
int A;
..
Qu estamos manejando?:
a)
b)
c)
d)

Error, identificador reutilizado.


Correcto, es una redefinicin de identificadores.
Correcto, las reglas de visibilidad deciden.
Error, por paralelaje de identificadores.

3.4.- Los aspectos de estilo:


a)
b)
c)
d)

Muestran la creatividad de cada programador.


No dependen del lenguaje utilizado.
Slo tienen en cuenta encolumnado y comentarios.
Los fija el lenguaje utilizado.

3.5.- La complejidad de un algoritmo:


a)
b)
c)
d)

Depende del programador.


Depende del anidamiento de bucles.
Depende del invariante.
Aumenta con el uso de la recursividad.
Pag.5

CUESTIONARIO N 3

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

3.6.- La complejidad:
a)
b)
c)
d)

Determina la correccin de un programa.


Depende del anidamiento de bucles.
Mide la robustez de un programa.
Se calcula a partir del invariante.

3.7.- Dadas las siguientes reglas de produccin:


Letra ::= {a|b}
Numero ::= {1|2}
Cadena ::= [Letra|Numero]
Cadenas correctas del lenguaje generado por esta gramtica sern:
a)
b)
c)
d)

a1 y b1.
aab y 121.
2aa y b22.
ab12 y bb22.

3.8.- Una expresin condicional:


a)
b)
c)
d)

Slo se puede usar en sentencias IF, WHILE y FOR.


Slo se puede usar en la sentencia IF.
Siempre emplea operadores de comparacin.
Siempre da como resultado un BOOLEAN.

3.9.- El invariante de una iteracin es la condicin que se debe cumplir siempre:


a)
b)
c)
d)

Antes y despus de cada nueva repeticin.


Slo tras cada repeticin.
Slo antes de cada repeticin.
En cualquier parte del bucle iterativo.

3.10.- Cul de las siguientes parejas de operadores tienen siempre resultados del mismo
tipo:
a)
b)
c)
d)

||, =.
*, +.
*, isascii.
&&, <=.

3.11.- Los metasmbolos son:

Pag.6

CUESTIONARIO N 3

a)
b)
c)
d)

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

Elementos de la notacin BNF.


Elementos de la programacin lgica.
Elementos de la programacin funcional.
Parte del modelo de flujo de datos.

3.12.- Dado el siguiente fragmento de cdigo:


for (int i =0; i<=1; i=i+0.1) {
printf (Esto se escribe 10 veces\n); /*Esto se escribe 10 veces y salta a
la lnea siguiente*/
}
a) Puede dar lugar a resultados inesperados.
b) El cuerpo del bucle se ejecuta 10 veces.
c) La frase se escribe una vez, pero al incrementar el ndice se produce
error.
d) Aunque no hay errores, el cuerpo del bucle nunca se ejecuta.
3.13.- Dado el siguiente fragmento de cdigo:
float distancia (float X1, float Y1, float X2, float Y2) {
X1 = X2 X1; Y1 = Y2-Y1;
return sqrtf (X1 * X1+Y1 * Y1);
}
Y sea el cdigo de llamada:
xA = 23.5; yA=12.3;
xB = 5.7; yB = 2.6;
distanciaBA = distancia (xA, yA, xB, yB);
Despus de esta llamada la variable xA vale:
a)
b)
c)
d)

5.7 23.5
23.5
23.5 * 23.5
23.5 7.5

3.14.- En C+- las funciones deben devolver un valor:


a)
b)
c)
d)

De un tipo estructurado
De un tipo simple
De cualquier tipo
De un tipo que no sea declarado por el usuario

3.15.-Dada la siguiente declaracin:


const float v1 = 3.0;
int v3;
char v2;
y la invocacin Param (v1, v2, v3);
la cabecera correcta del subprograma Param es:
a) void Param (float & v1, char v2, int v3);
Pag.7

CUESTIONARIO N 3

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos
b) void Param (float v1, char & v2, int & v3);
c) void Param (float & v1, char v2, int & v3);
d) void Param (float & v1, char & v2, int v3);

3.16.- Un intrprete:
a)
b)
c)
d)

Simula una mquina virtual


Traduce de un lenguaje fuente a un lenguaje objeto
Analiza la red de operadores
Mejora la eficiencia de un programa

3.17.- Dado el siguiente procedimiento:


int Calcular (int & A, int B) {
A = B % 2; B = A * A + 3 * B - 6;
return A + B;
}
El valor de x tras ejecutar:
x = 4;
x = Calcular (x, x); /*Fenmeno de doble referencia*/
ser:
a)
b)
c)
d)

4
0
6
12

PROBLEMA 3.1
Realizar un programa que calcule la altura de una torre conociendo que cuando el sol
forma un ngulo la distancia sombreada desde la base de la torre vale A.
Se podrn utilizar solamente las funciones sinf (x) y cosf (x) del mdulo <math.h>.

PROBLEMA 3.2
Escribir un subprograma tal que dada una fecha con tres datos de tipo entero (da, mes y
ao), nos indique si esta es correcta comprobando:
Que los tres nmeros son positivos (> 0) y el ao es mayor de 1900.
Que el mes es correcto (112).
Que el da se encuentra dentro del mximo para el mes (tener en cuenta los aos
bisiestos).

Pag.8

CUESTIONARIO N 4

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos
4.1.- Una de las siguientes reglas BNF genera la produccin ab:
a)
b)
c)
d)

{a} | {b}.
[a] | [b].
{b} | {a}.
{a | b}.

4.2.- De la sentencia A = Tpalabra{ Ordenar(dato) }; podemos decir


a)
b)
c)
d)

Es una sentencia de asignacin correcta.


Ordenar devuelve una formacin.
Dato debe ser de tipo referencial.
Es incorrecta la invocacin.

4.3.- A descomponer un problema en subproblemas se conoce:


a)
b)
c)
d)

Reutilizacin.
Redefinicin.
Refinamiento.
Reasignacin.

4.4.- La Reutilizacin se puede lograr mediante desarrollo:


a)
b)
c)
d)

Ascendente y descendente.
Slo descendente.
Slo ascendente.
Especfico.

4.5.- Dado el siguiente fragmento de cdigo:


typedef enum tipo {A, B, C};
tipo Prueba (tipo & p1, tipo p2) {

Return p1;
}
a)
b)
c)
d)

Se produce error por incompatibilidad de tipos.


Es correcto.
La cabecera del subprograma es incorrecta.
Sera correcta si lo fuese la definicin del tipo enumerado.

4.6.- Dada la siguiente declaracin: Tipodias T; del siguiente fragmento de cdigo:


Dato == dias [T];
Podemos decir que:
a)
b)
c)
d)

Dato debe ser una constante.


Es una expresin condicional.
Es una sentencia de asignacin.
Es una definicin de tipo.

4.7.- Dado el siguiente fragmento de cdigo:


Pag.9

CUESTIONARIO N 4

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

switch (j) {
case enero:
case febrero:
case junio: j++; break;
case diciembre:
case julio: j--; break;
default: ;
}
a) La variable j debe ser de un tipo ordinal para ser correcto.
b) Es necesario default.
c) La sentencia default no se puede usar dentro de switch.
d) Los rangos establecidos son incorrectos.
4.8.- Dado el siguiente procedimiento:
void proc (int a, int b) {
int aux;
aux = a + b + c;
c = aux;
}
Para que fuese puro:
a)
b)
c)
d)

Todas las variables, incluida aux, deben pasarse por referencia.


Es ya un procedimiento puro.
Bastara pasar las variables a y b por referencia.
La variable c debiera pasarse por referencia.

4.9.- Sabiendo que en C+- existe el tipo predefinido bool:


typedef enum bool {false, true};
Se puede afirmar:
a)
b)
c)
d)

int(false) == 0.
int(false) == 1.
El tipo bolean no es un tipo ordinal.
Con los tipos predefinidos no se puede utilizar int.

4.10.- Una de las siguientes afirmaciones no siempre es cierta en C+-:


a)
b)
c)
d)

t es un valor constante.
Dias {lunes} es un valor constante.
43.2 es un valor constante.
Hola es un valor constante.

4.11.- Dado el siguiente fragmento de cdigo:


char a;
typedef enum char {1, 2, 3, 4, 5, 6, 7, 8, 9};
char b;

b = 3;
a = b;

Pag.10

CUESTIONARIO N 4

a)
b)
c)
d)

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos
Se produce un error en la asignacin a = b.
La declaracin de variables es incompatible.
Se produce un error en la asignacin b = 3.
Es correcto.

4.12.- Dado el siguiente fragmento de cdigo:


Dato = dias [L];
Podemos decir que:
a)
b)
c)
d)

Dato no tiene tipo.


L puede ser una variable o constante.
dias es el nombre del tipo referencial.
dias [L] es un valor constante.

Pag.11

CUESTIONARIO N 5

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

5.1.- La compilacin separada:


a)
b)
c)
d)

Garantiza la compilacin segura.


Facilita el trabajo en equipo.
Es exclusiva de C+-.
Est ligada a los tipos abstractos.

5.2.- Dado el siguiente fragmento de cdigo


TipoPunt pt1;
TipoReg reg;
pt1 = new TipoPunt;
reg.dato = 2;
(*pt1).dato = 3;
podemos decir:
a)
b)
c)
d)

Pt1 es memoria dinmica y reg es memoria esttica.


2 y 3 estn en memoria dinmica.
2 est en memoria esttica y 3 en memoria dinmica.
2 y 3 estn en memoria esttica.

5.3.- A la vista nicamente de la siguiente declaracin:


Tipo_nodo * secuencia, siguiente;
En C+- podemos decir:
a)
b)
c)
d)

Es incorrecta.
secuencia es de tipo annimo.
secuencia y siguiente son datos ocultos.
Secuencia y siguiente son tipos abstractos.

5.4.- Los datos encapsulados:


a)
b)
c)
d)

Son de acceso secuencial.


Son datos persistentes.
Son punteros.
Son TAD.

5.5.- El siguiente fragmento de cdigo:


FOR (int c1 = 1; c1 <= 4; c1++) {
puntero = new TipoPuntero;
*puntero = c1;
}
FOR (int c1 = 1; c1 <= 4; c1++) {
Printf(%d, *puntero);
}
Pag.12

CUESTIONARIO N 5

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

Imprime por pantalla:


a)
b)
c)
d)

3333.
4444.
1234.
4.

5.6.- Dada la siguiente declaracin:


typedef enum Subletras {A, B, C};
typedef Subletras* Tconj;
typedef Tconj Conjsubletras[7];
Conjsubletras a;
La instruccin correcta en C+- es:
a)
b)
c)
d)

a[1] = C.
*a = C.
a[1][1] = C.
Est expresamente prohibido.

5.7.- Respecto a la sentencia:


*p = p->siguiente / 23;
Se puede decir:
a)
b)
c)
d)

Hay incompatibilidad de tipos en la operacin divisin.


Es correcta.
No es correcta p->siguiente.
Hay incompatibilidad de tipos en la asignacin.

5.8.- El subprograma Ordena devuelve, cualquier vector de letras que se le pasa como
parmetro, ordenado. Su cabecera podr ser:
a)
b)
c)
d)

Ordena: const letras v.


Ordena (letras v[], int numLetras).
Ordena (const letras v[], int numLetras).
Ordena (TipoVectLetras, int numLetras).

5.9.- Respecto a la sentencia:


*p = p->siguiente + 1;
Se puede decir:
a)
b)
c)
d)

Es correcta.
Es correcta cuando siguiente es puntero.
Es incorrecta.
Es correcta cuando siguiente es de tipo integer.
Pag.13

CUESTIONARIO N 5

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

5.10.- Dado el siguiente fragmento de cdigo:


typedef enum integer {0..10};
typedef integer TipoVector[10];
TipoVector k;

K[10] = 10;
Se puede decir:
a)
b)
c)
d)

El acceso al elemento 10 es incorrecto.


El tipo de datos integer utilizado en la declaracin es incorrecto.
Es correcto.
La asignacin produce un error por incompatibilidad de tipos.

PROBLEMA
Dada una tabla de hasta 10 puntos del plano (x, y):
1.-Construir un tipo de datos que te parezca idneo para plantear el problema.
2.-Realizar una funcin que determine si algn punto coincide con el primero
devolviendo su posicin en la tabla.
3.-Realizar una funcin que sume la longitud de los segmentos entre los puntos
sucesivos de la tabla desde uno inicial a otro final.
4.-Calcular el permetro del polgono cerrado formado por el punto inicial y los
sucesivos puntos hasta el primero de la tabla que coincida con el inicial.

Pag.14

CUESTIONARIO N 6

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

6.1.- Dado el siguiente interfaz de mdulo Ajedrez:


#pragma once /*Directiva para evitar la duplicacin de elementos de distintos
mdulos que se importan varias veces bien directa o indirectamente desde otro*/
typedef enum Cuadro {caballo, torre, alfil};
void Jugar ();
Identificar la sentencia correcta que se debe emplear en el mdulo principal,
supuesto #include Ajedrez.h
a)
b)
c)
d)

Ficha = Cuadro ( (int(torre) -1+3) % 3).


Ajedrez.Jugar.
INC(Cuadro).
Ajedrez.Cuadro = torre.

6.2.- Dado el siguiente interfaz de mdulo Juegos:


#pragma once
typedef enum TipoRumbo {Este, Norte, Oeste, Sur};
typedef struct TipoDato{ /*Un TAD se representa muy bien mediante una
estructura de tipo registro, en el que se agrupan una coleccin de valores y operaciones
que los manipulan*/
void Poner (int x, int y, TipoRumbo rumbo);
void Avanzar(),
void GirarDerecha();
void GirarIzquierda();
private:
int xx, yy;
TipoRumbo sentido;
};
Identificar la sentencia correcta que se debe emplear en el mdulo principal,
supuesto #include Juegos.h
a)
b)
c)
d)

Seguir = TipoDato.Avanzar().
rumbo.GirarIzquierda ().
TipoDato.GirarDerecha().
rumbo.xx = 3.5.

6.3.- Dado el siguiente interfaz de mdulo Primero:


#pragma once
typedef struct TipoFecha{
/* Obtener el contenido de un dato fecha */
int Dia(),
int Mes();
int Anno();
private: /*Ocultacin de los datos a continuacin, esto significar que estos
datos si bien pueden ser utilizados desde su mdulo de realizacin, no se pueden utilizar
desde otro mdulo externo*/
int dia. mes, anno;
};
Pag.15

CUESTIONARIO N 6

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

Si en el mdulo de realizacin Juegos.cpp,


.
void Poner (int dia, int mes, int anno) { /* Dar valor a un dato fecha */
a)
b)
c)
d)

Poner es de tipo annimo.


Poner es de tipo referenciado.
Nadie podr utilizar Poner.
No tiene sentido definir Poner.

6.4.- Dado el siguiente interfaz de mdulo Juegos:


typedef struct TipoJuegos{
void InicioJuego();
void FinJuego();
};
InicioJuego y FinJuego manipulan la variable jugadores. Dnde se debe
inicializar esta variable?.
a)
b)
c)
d)

En las sentencias de inicializacin del mdulo de implementacin.


En las sentencias de inicializacin del mdulo interfaz.
En el bloque ejecutivo de los procedimientos.
En la parte ejecutiva de los mdulos que los usen.

6.5.- Cal de las siguientes afirmaciones es correcta?:


a)
b)
c)
d)

Los tipos encapsulados son TAD.


Los datos encapsulados son tipos opacos.
Los tipos annimos son datos encapsulados.
Los tipos abstractos son tipos encapsulados.

6.6.- En el mdulo de interfaz, de un dato encapsulado:


a)
b)
c)
d)

Se utilizan subprogramas y declaracin de variables.


Se utilizan subprogramas, declaracin de variables y tipos.
Slo se utilizan subprogramas.
Se utilizan todos los elementos de definicin.

6.7.- Para encapsular un dato, se podr hacer:


a)
b)
c)
d)

Dentro del interfaz.


Dentro de un TRY-CATCH.
Dentro de un subprograma.
Dentro de un registro.

Pag.16

CUESTIONARIO N 6

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

PROBLEMA MODULAR
En el mdulo Juegos, se dispone del TAD CartaBaraja, que representa una carta de la
baraja espaola. Tambin se dispone de dos operaciones asociadas: PonerPalo y
PonerTriunfo.
PonerPalo, establece el palo de la carta: oros, copas, espadas o bastos.
Por ejemplo: PonerPalo(carta, oros).
PonerTriunfo, establece el triunfo de la carta: as, dos,, sota, caballo o rey.
Por ejemplo: PonerTriunfo(carta, rey)
Se pide crear en el mdulo principal una baraja de 40 cartas y la operacin Vencer. Una
carta vence a otra cuando su triunfo es mayor, excepto cuando una de las cartas es de
la pinta que entonces gana an cuando su triunfo sea menor. Si dos cartas tienen
igual triunfo vence cualquiera de las dos.
Ejemplo: carta1 es el dos de copas, carta2 es el rey de bastos y la pinta es copas.
Vencer(carta1, carta2, copas) devuelve cierto; Vencer(carta2, carta1, copas) devuelve
falso; Vencer(carta1, carta2, bastos) devuelve falso.

PROBLEMA MODULAR
Realizar un TAD para resolver un sistema de traduccin automtico entre dos idiomas.
El TAD almacenar las palabras equivalentes en dos idiomas, por ejemplo, para el
francs-ingls, almacenar pares: (voiture-car) (maison-house), etc. El TAD dispondr
de dos operaciones: el procedimiento AlmacenarPar que permite introducir un par de
palabras equivalentes y la funcin Traducir que tiene como argumentos el idioma y la
palabra, y devuelve la palabra traducida en el otro idioma disponible. (NOTA: para
realizar la comparacin de dos palabras se debe usar la funcin strcmp(c1, c2) del
mdulo STRING que recibe dos palabras y devuelve valor 0 si son iguales, < 0 si c1
precede sintcticamente a c2 y >0 si c2 precede a c1. Tambin el procedimiento
strcpy(c1, c2) que copia c2 en c1).

Pag.17

CUESTIONARIO N 7

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

7.1.- Cual de estas operaciones no es vlida en C+-:


a)
b)
c)
d)

if (lado = ancho).
ladoMayor >= largo.
int(C1)+1+int(C2)*10.
VolumenCubo( ladoCubo ) > 27.

7.2.- En una secuencia apuntada el nmero mximo de elementos que la integran lo


determina:
a)
b)
c)
d)

El cursor de la secuencia.
El ndice de la secuencia.
No hay nmero mximo.
Su declaracin.

7.3.- De la sentencia: while (c != NULL && c->valor < numero) {


a)
b)
c)
d)

Tiene errores de compilacin.


Puede corresponder a una operacin de bsqueda.
Nunca se ejecuta el cuerpo del bucle.
Es un bucle infinito.

7.4.- La realizacin de un TAD en C+- lleva implcito el uso de:


a)
b)
c)
d)

Un slo mdulo de implementacin.


Un solo mdulo de interfaz.
Datos predefinidos.
Un mdulo de interfaz y otro de realizacin.

7.5.- Del mdulo de interfaz <Simple.h>:


void Uno;
void Dos;
se puede afirmar:
a)
b)
c)
d)

Faltan argumentos a los procedimientos.


Falta una declaracin de tipo.
Es un tipo abstracto.
Es un dato encapsulado.

7.6.- Del fragmento:


switch (n.clase){
case Entero:
printf( %d, n.valor.valorentero):
break;
case Real:
printf( %f, n.valor.valorReal):
Pag.18

CUESTIONARIO N 7

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

break;
case Fraccion:
printf( %d/%d, n.valor.valorRacional.numerador,
n.valor.valorRacional.denominador);
break;
default:
printf( ?????);
}
se puede afirmar:
a)
b)
c)
d)

n es una variable del tipo union.


n.valor es de un tipo union.
n.valor.valorentero es un tipo de dato union.
n.clase es un tipo de dato union.

7.7.- Para que en C+-, la siguiente definicin de tipo sea la de una tabla:
typedef TipElem TipVect[TipInd];

a) TipInd debe ser un tipo ordinal definido por el usuario y TipElem de


cualquier tipo.
b) TipInd debe ser cualquier tipo predefinido y TipElem struct.
c) TipInd debe ser un tipo ordinal y TipElem struct.
d) TipInd debe ser un tipo struct y TipElem de cualquier tipo.

7.8.- La compilacin segura:


a)
b)
c)
d)

Mejora la reutilizacin.
Produce un programa objeto ms eficiente.
Tiene como objetivo comprobar la compatibilidad de tipos.
Necesita un mdulo de interfaz.

7.9.- Dado el siguiente fragmento de cdigo:


typedef struct t1 {
float c1;
float c2;
};
typedef float* t1;
typedef t1* t3;
t1 a;

t2 b;

t3 c;..

a) c->c1 = a.c2.
b) b = c->c1.
c) a = c.
Pag.19

CUESTIONARIO N 7

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

d) c.c1 = a.c2.
7.10.- Dado la siguiente declaracin de variables:
T1 c1; T2 c2; ..
Despus 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:
a)
b)
c)
d)

(char v[])
(T1 a, T2)
(const char v)
(const char v[])

EJERCICIO DE PROGRAMACIN

Construir un dato encapsulado que sea una tabla de 50 elementos, en las que se
almacenan los datos de una persona: nombre, apellido1, apellido2, direccin y telfono.
Las operaciones sern aadir un elemento, eliminar un elemento y un procedimiento de
bsqueda selectiva por nombre o por nmero de telfono. Si se encuentra la persona en
la tabla se devolver cierto y se mostrar toda la informacin disponible para esa
persona y sino se devolver falso.

Pag.20

CUESTIONARIO N 8

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

8.1.- Dado el siguiente fragmento de cdigo:


typedef enum int {0, 1, 2, 3, 4, 5};
typedef int TipoVector [3];
TipoVector k;

K[3] = 2;
a)
b)
c)
d)

La redefinicin del tipo INTEGER es incorrecta.


La declaracin de la variable k es incorrecta.
K[3] accede al tercer elemento del vector k.
Es correcto

8.2.- Dada la siguiente declaracin:


typedef int* Tp_Entero;
typedef float* Tp_Real;

p1 = new int; p2 = new float;


La sentencia correcta sera:
a)
b)
c)
d)

p1 = int(p2);
*p1 = int(*p2);
p1 = p2;
p2 = float(p1);

8.3.- Dada la siguiente declaracin:


typedef int TipoVector[10];
TipoVector dato;
con la siguiente sentencia
for (int cont = 0; cont < 10; cont++) {
dato [cont] = dato [cont+1];
}

a)
b)
c)
d)

Manipulamos el ndice del vector por referencia.


Trasladamos los elementos del vector una posicin hacia la izquierda.
Trasladamos los elementos del vector una posicin hacia la derecha.
Cometemos un error de acceso a los elementos del vector

8.4.- Despus de ejecutar el siguiente fragmento de cdigo:


typedef float* Tp_Real;
Tp_Real pt1, pt2, pt3;

Pag.21

CUESTIONARIO N 8

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

pt1 = new float; *pt1 = 3.0;


pt2 = pt1; pt3 = pt2;
delete pt2; pt2 = NULL;
/*para que no quede apuntando a un lugar
que ya no existe*/

a)
b)
c)
d)

Slo se libera pt3


Se liberan pt1, pt2 y pt3
Slo se liberan pt3 y pt2.
Se produce un error y no se libera memoria.

8.5.- La definicin completa de un dato encapsulado:

a)
b)
c)
d)

Se realiza en el mdulo de implementacin


Se realiza en el mdulo principal
Se realiza en el interfaz
Se realiza entre el mdulo de implementacin e interfaz

8.6.- Dado el siguiente mdulo:


#pragma once
void Previo (tipodato & dato);

a)
b)
c)
d)

Es correcto, tipodato es un dato encapsulado


Es errneo, se necesita la declaracin de tipodato
Es errneo, tipo dato es un tipo annimo
Es errneo, dato debiera ser por valor

8.7.- La cabecera del subprograma printf para imprimir cadenas de caracteres podra ser:

a)
b)
c)
d)

void printf (char & a);


void printf (const char a[1000]);
void printf (const char a);
void printf (const char a[]);

EJERCICIO DE PROGRAMACIN

Desarrollar en C+- un tipo de dato que represente la velocidad, altura y rumbo: Norte,
Sur, Este y Oeste, que lleva un avin. Con las operaciones: LeerRumbo, LeerAltura,
LeerVelocidad. Slo se pide el interfaz. sese el dato definido para crear en un mdulo
principal un subprograma que imprima por pantalla los datos de 20 aviones.
Pag.22

CUESTIONARIO N 8

Respuesta correcta= 1 pto


Respuesta incorrecta= -0,25 pto
No respuesta = 0 ptos

EJERCICIO DE PROGRAMACIN

Escribir el interfaz Pintarfiguras con los tipos de datos que se consideren necesarios
(TipoPunto, TipoRadio, etc.) y tres nicas operaciones: PintaCirculo, PintaCuadrado y
PintaEquilatero. Importando el mdulo definido anteriormente, escribir un programa
principal que pinte la siguiente figura:

LongLado
Las operaciones se definirn los ms simples posibles teniendo en cuenta la figura que
se quiere pintar:
1. Menor nmero de argumentos.
2. Argumentos lo ms simples posibles y basados en los tipos elegidos en el
interfaz.
EJERCICIO DE PROGRAMACIN

Implementar mediante un TAD un vector de longitud 3 tal que en los extremos


contenga colores bsicos (rojo, amarillo o azul), mientras que en el centro almacene la
mezcla de dichos colores (rojo+amarillo = naranja, rojo+azul = violeta, amarillo+azul =
verde). El TAD dispondr del procedimiento Mezclar Vector, que al recibir un vector
con colores en los extremos rellenar la posicin central, tal como se indica en el
ejemplo:

MezclarVector

Azul

Amarillo

Azul

Verde

Amarillo

EJERCICIO DE PROGRAMACIN

Realizar un TAD para el juego de las TRES EN RAYA. Cada casilla del tablero podr
estar vaco o ocupado slo por una ficha blanca o negra. Las operaciones sern:
1. Poner ficha en 1 cuadrcula comprobando que no est ocupada (slo para poner).
2. Quitar una ficha de una cuadrcula.
3. Comprobar si se produce 3 en raya e indicar si es de blancas o negras.

Pag.23

S-ar putea să vă placă și