Вы находитесь на странице: 1из 7

1. Cuntas sentencias hay en la secuencia principal del siguiente programa?

public class PruebaSwitch {


public static void main (String [ ] args) throws NumberFormatException, IOException {
int opc;
BufferedReader linea = new BufferedReader (new InputStreamReader (System.in));
System.out.print ("Opcion: ");
opc = Integer.parseInt (linea.readLine ());
switch (opc) {
case 1: System.out.println ("lunes");
break;
case 2: System.out.println ("martes");
break;
case 3: System.out.println ("mircoles ");
break;
case 4: System.out.println ("jueves");
break;
case 5: System.out.println ("viernes");
break;
case 6: System.out.println ("sbado");
break;
case 7: System.out.println ("domingo");
break;
default: System.out.println ("opcin no valida");
break;
}
}
}
Seleccione una respuesta.
A. 1.
B. 4.
C. Ms de 10.

2. Cuntos mtodos diferentes se invocan en el siguiente programa?


public class PruebaSwitch {
public static void main (String [ ] args) throws NumberFormatException, IOException {
int opc;
BufferedReader linea = new BufferedReader (new InputStreamReader (System.in));
System.out.print ("Opcion: ");
opc = Integer.parseInt (linea.readLine ());
switch (opc) {
case 1: System.out.println ("lunes");
break;
case 2: System.out.println ("martes");
break;
case 3: System.out.println ("mircoles");
//break;
case 4: System.out.println ("jueves");
break;
case 5: System.out.println ("viernes");
break;
case 6: System.out.println ("sbado");
break;
case 7: System.out.println ("domingo");
break;
default: System.out.println ("opcin no valida");
break;
}
}
}
Seleccione una respuesta.
A. 1.
B. 4.
C. 6.

3. Dado el cdigo siguiente Cul de los mtodos que se utilizan es un mtodo de objeto?
public class PruebaRegistro {
static void cargarTabla (RegistroAlumno [ ] alumnos) throws IOException {
int i;
for (i = 0; i < 6; i ++) {
System.out.println ("Datos del alumno N: " + i);
alumnos [i] = alumnos [i].cargarRegistro ();
}
}
static float mediaCalif (RegistroAlumno [ ] alumnos) {
float resul;
int i;
resul = 0;
for (i = 0; i < 6; i ++)
resul = resul + alumnos [i].calificacion;
return resul / 6;
}
public static void main (String [ ] args) throws IOException {
RegistroAlumno [ ] alumnos = new RegistroAlumno [6];
float media;
int i;
for (i = 0; i < 6; i ++)
alumnos [i] = new RegistroAlumno ();
cargarTabla (alumnos);
media = mediaCalif (alumnos);
System.out.println ("La media de las calificaciones es: " + media);
}
}
Seleccione una respuesta.
A. cargarRegistro.
B. mediaCalif.
C. RegistroAlumno.

4. Qu resultado aparecera en la pantalla del ordenador al ejecutar el cdigo siguiente si el usuario


introduce como opcin: 3.
public class PruebaSwitch {
public static void main (String [ ] args) throws NumberFormatException, IOException {
int opc;
BufferedReader linea = new BufferedReader (new InputStreamReader (System.in));
System.out.print ("Opcion: ");
opc = Integer.parseInt (linea.readLine ());
switch (opc) {
case 1: System.out.println ("lunes");
break;
case 2: System.out.println ("martes");
break;
case 3: System.out.println ("mircoles");
break;
case 4: System.out.println ("jueves");
break;
case 5: System.out.println ("viernes");
break;
case 6: System.out.println ("sbado");
break;
case 7: System.out.println ("domingo");
break;
default: System.out.println ("opcion no valida");
break;
}
}
}
Seleccione una respuesta.
A. miercoles
B. miercoles jueves
C. El cdigo anterior no puede ejecutarse. Se generara previamente un error de compilacin.

5. Qu resultado aparecer en la pantalla del ordenador si el usuario responde con 0 la primera vez
que el programa la pide un dato?
public class PruebaDoWhile {
public static void main (String [ ] args) throws NumberFormatException, IOException {
int opc = 7;
BufferedReader linea=new BufferedReader(new InputStreamReader(System.in));
do {
switch (opc) {
case 1: System.out.println ("lunes");
break;
case 2: System.out.println (martes");
break;
case 3: System.out.println("miercoles");
break;
case 4: System.out.println ("jueves");
break;
case 5: System.out.println ("viernes");
break;
case 6: System.out.println ("sabado");
break;
case 7: System.out.println ("domingo");
break;
default: System.out.println ("opcin no valida");
break;
}
System.out.print ("Opcin: ");
opc = Integer.parseInt (linea.readLine ());
}
while (opc != 0);
System.out.println ("Adis");
}
}
Seleccione una respuesta.
A. Adis.
B. domingo Adis.
C. opcin no vlida.
6. Qu resultado aparecer en la pantalla del ordenador si en la primera ejecucin el usuario responde
con 0?
public class PruebaDoWhile {
public static void main (String [ ] args) throws NumberFormatException, IOException {
int opc;
BufferedReader linea = new BufferedReader (new InputStreamReader (System.in));
do {
switch (opc) {
case 1: System.out.println ("lunes");
break;
case 2: System.out.println ("martes");
break;
case 3: System.out.println ("mircoles");
break;
case 4: System.out.println ("jueves");
break;
case 5: System.out.println ("viernes");
break;
case 6: System.out.println ("sbado");
break;
case 7: System.out.println ("domingo");
break;
default: System.out.println ("opcin no valida");
break;
}
System.out.print ("Opcin: ");
opc = Integer.parseInt (linea.readLine ());
}
while (opc != 0);
System.out.println ("Adis");
}
}
Seleccione una respuesta:
A. El cdigo anterior no puede ejecutarse. Se generara previamente un error de compilacin.
B. El resultado es imprevisible. No se ha inicializado la variable opc.
C. domingo Adis.

7. En un mtodo main escrito en Java se desea invocar a un mtodo esttico que devuelva un nmero
real (media) correspondiente a un conjunto de edades de alumnos almacenadas en un vector. Cul de
las siguientes afirmaciones es correcta?
A. El resultado media se debe pasar como argumento por valor.
B. El resultado media se debe pasar como argumento por referencia.
C. El resultado media no se puede pasar como argumento.

8. Dada la siguiente clase en Java Cul es el mximo nmero de copias del mtodo recursivo que
pueden llegar a encontrarse en la memoria al introducir como dato de entrada el valor 3?
public class PruebaRecursividad {
static int factorial (int dato) {
int resul;
if (dato > 0)
resul = dato * factorial (dato - 1);
else resul = 1;
return resul;
}
public static void main(String[] args) throws NumberFormatException,IOException {
int d, f;
BufferedReader linea = new BufferedReader (new InputStreamReader (System.in));
System.out.print ("Introduzca el dato: ");
d = Integer.parseInt (linea.readLine ());
if (d >= 0) {
f = factorial (d);
System.out.println ("El factorial de " + d + " es: " + f);
}
else System.out.println ("No existe el factorial de un nmero negativo");
}
}
Seleccione una respuesta.
A. 3.
B. 4.
C. No puede determinarse a priori.
9. El cdigo siguiente constituye un paquete (package) junto con la clase RegistroAlumno Cuntos
ficheros .class se generan al compilarlo?
public class PruebaRegistro {
static void cargarTabla (RegistroAlumno [ ] alumnos) throws IOException {
int i;
for (i = 0; i < 6; i ++) {
System.out.println ("Datos del alumno N: " + i);
alumnos [i] = alumnos [i].cargarRegistro ();
}
}
static float mediaCalif (RegistroAlumno [ ] alumnos) {
float resul = 0;
int i;
for (i = 0; i < 6; i ++) {
System.out.println (alumnos [i].toString ());
resul = resul + alumnos [i].calificacion;
}
return resul / 6;
}
public static void main (String [ ] args) throws IOException {
RegistroAlumno [ ] alumnos = new RegistroAlumno [6];
float media;
int i;
for (i = 0; i < 6; i ++)
alumnos [i]= new RegistroAlumno ();
cargarTabla (alumnos);
media = mediaCalif (alumnos);
System.out.println ("La media de las calificaciones es: " + media);
}
}
Seleccione una respuesta.
A. Uno, correspondiente a la clase PruebaRegistro.
B. Uno, correspondiente al mtodo main.
C. Dos, correspondientes, respectivamente, a las clases PruebaRegistro y RegistroAlumno.
10. La siguiente clase define un registro que va a constituir un paquete (package) con otra que
pretende generar un fichero binario en disco de dichos registros:
class RegistroAlumno {
public String numeroMatricula;
public String apellidos;
public String nombre;
public String eMail;
public int ao;
public float calificacion;
public RegistroAlumno () {
numeroMatricula= null;
apellidos = null;
nombre = null;
eMail= null;
ao = 1980;
calificacion = 0;
}
public String aCadena () {
return numeroMatricula + " " + apellidos + " " + nombre + " " + eMail +" " + ao + " " + calificacion;
}
public void cargarRegistro () throws IOException {
BufferedReader linea = new BufferedReader (new InputStreamReader (System.in));
System.out.println ("Numero de matricula: ");
numeroMatricula = new String (linea.readLine ());
System.out.println ("Apellidos: ");
apellidos = new String (linea.readLine ());
System.out.println ("Nombre: ");
nombre = new String (linea.readLine ());
System.out.println ("Correo electronico: ");
eMail = new String (linea.readLine ());
System.out.println ("Ao de nacimiento: ");
ao = Integer.parseInt (linea.readLine());
System.out.println ("Calificacin: ");
calificacion = Float.parseFloat (linea.readLine());
System.out.println (this.aCadena ());
}
}
Cul de las siguientes afirmaciones es cierta?
A. El paquete funcionar correctamente.
B. Se producir un error de compilacin.
C. Se producir un error de ejecucin.
Soluciones:
Pregunta Respuesta Justificacin
1 B La estructura de mayor nivel jerrquico del programa contiene 4
sentencias:
1. Asignacin.
2. Entrada /salida.
3. Asignacin.
4. Control de flujo. Alternativa mltiple (sta es compuesta).
Ver apartado 1.2.5 Sentencias
2 C En el programa se invocan 6 mtodos distintos: print, println, parseInt,
readln y dos constructores sobre diferentes clases.
Ver apartado 1.2.4 Clases, objetos, mtodos y excepciones.
3 A o Los mtodos de objeto se aplican sobre objetos definidos en otras
clases con la sintaxis general <objeto>.<mtodo>
o mediaCalif es un mtodo esttico (definido en la propia clase).
o RegistroAlumno es una clase externa (se supone accesible).
Ver apartado 1.2.3 Clases, objetos, mtodos y excepciones.
4 B Al entrar en la sentencia switch con el valor 3:
o Se salta a la lnea que hace mostrar el literal "miercoles", ya que la
siguiente sentencia break est comentada (no se ejecuta).
o Se pasa a la lnea que hace mostrar el literal "jueves".
o Se ejecuta la sentencia break.
o Se sale del mbito de la sentencia switch y finaliza la ejecucin del
programa.
Ver apartado 1.2.3 Clases, objetos, mtodos y excepciones.
5 B Se trata de una estructura do..while en que el mdulo que se repite se
ejecuta (al menos) una vez. A continuacin se solicita al usuario el nuevo
valor de opc que al ser "0" hace salir de la estructura.
Ver apartado 1.2.5.3.2 Estructura iterativa.
6 A Se trata de una estructura do...while en la que el bloque que se repite se
ejecuta al menos una vez, pero no se ha inicializado la variable opc. Lo
que suceda depende de cmo est diseado el compilador que utilice.
En el caso del entorno de desarrollo utilizado en la asignatura esta
circunstancia produce un error de compilacin y no se genera la clase
PruebaDoWhile.class.
Ver apartado 1.2.5.3.2 Estructura iterativa. En este caso deber ejecutar
el cdigo para comprobarlo.
7 C o El mdulo de llamada no tiene acceso a los cambios producidos
sobre un parmetro pasado por valor en el mdulo llamado.
o El lenguaje Java no permite pasar por referencia tipos primitivos.
o No se puede recuperar desde el mdulo de llamada una variable de
un tipo primitivo generado o modificado por un mtodo. Deber ser
un miembro accesible de la clase o bien el resultado del mtodo
(static float).
Ver apartado 1.3.3 Mecanismos para el paso de informacin.
8 B Se ejecutan 4 instancias en la fase de "ida" (3 ms la de "transicin") que
irn desapareciendo progresivamente en la fase de "vuelta").
Ver apartado 1.3.5 Recursividad.
9 C Los mtodos no generan ficheros .class.
Se generan tantos ficheros .class como declaraciones de clases existan
(contando tanto las del paquete como clases internas).
Ver apartado 1.4.2.2 Estructuras de datos heterogneas.
10 A Los objetos de la clase RegistroAlumno deben ser serializables (opcin
implements Serializable en la declaracin de la clase). Esta circunstancia
no es detectada por el compilador (al menos en el entorno de desarrollo
utilizado en la asignatura) pero s producir un error de ejecucin cuando
se intente leer o escribir registros en el fichero.
Ver apartado 1.5.2 Ficheros binarios

Вам также может понравиться