You are on page 1of 4

CLAVE EXAMEN: a c

Departamento de Lenguajes y Sistemas Informáticos e Ingenierı́a del Software UPM ETSIINF.


Examen de Programación II. Convocatoria ordinaria. 31-05-2017.

Realización: El test se realizará en la hoja de respuesta. Es importante que no olvidéis rellenar vuestros datos personales y el
código clave de vuestro enunciado. Se pueden utilizar hojas aparte en sucio.
Duración: La duración total del test será de 30 minutos.
Peso en el examen: El examen tendrá dos partes, un test y un ejercicio práctico. El test tendrá un peso de un 30 % en la nota del
examen y el ejercicio práctico tendrá el 70 % restante.
Puntuación: El test se valora sobre 10 puntos. Las preguntas tipo test pueden tener una única respuesta o varias respuestas, el
enunciado lo deja claro. Cada pregunta con una única respuesta respondida correctamente vale 2 puntos, e incorrectamente
respondida resta 2/3 puntos. Si en una pregunta con una única respuesta se selecciona más de una respuesta, la pregunta se
puntuará con 0 puntos. Para una pregunta con varias respuestas, cada afirmación correcta seleccionada suma
2/no respuestas correctas puntos, y cada afirmación incorrecta seleccionada resta 2/no respuestas incorrectas puntos. Las
preguntas no contestadas suman 0 puntos en cualquier caso.
Calificaciones: Las calificaciones se publicarán en moodle como muy tarde el dı́a 5 de junio de 2017
Revisión: Las revisiones serán el dı́a 8 de junio de 2017 previa petición por correo electrónico al profesor que se indique por el foro
de la asignatura.

Primer Ejercicio
Dado el siguiente código, y suponiendo que en el mismo pa- new E j e m p l o F a c t o r i a l ( ) ;
quete ya existe la clase NumeroNegativoExp:
public class EjemploFactorial { try {
System . o u t . p r i n t (
p u b l i c i n t f a c t o r i a l ( i n t num ) { ejemplo . f a c t o r i a l E x c e p c i o n ( 1));
i f ( num == 0 ) { System . o u t . p r i n t ( ” Se p r o d u j o un e r r o r ” ) ;
return 1; }
} else { c a t c h ( NumeroNegativoExp e ) {
r e t u r n num ⇤ f a c t o r i a l ( num 1); System . o u t . p r i n t ( ” Terminó con e r r o r ” ) ;
} System . o u t . p r i n t ( e j e m p l o . f a c t o r i a l ( 3 ) ) ;
} }
}
p u b l i c i n t f a c t o r i a l E x c e p c i o n ( i n t num ) }
throws NumeroNegativoExp {
i f ( num < 0 ) { Pregunta (2 puntos)
throw new NumeroNegativoExp ( ) ; Indicar cuál será la salida por consola al ejecutar el pro-
} grama principal main. Sólo una respuesta es correcta
r e t u r n f a c t o r i a l ( num ) ; a) Terminó con error 6
}
b) Terminó con error
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { c) Se produjo un error Terminó con error 6
EjemploFactorial ejemplo = d) Se produjo un error

Segundo Ejercicio
Dado el siguiente código que utiliza la clase Node<E> vista }
en clase: }
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
Node<I n t e g e r > head , aux ; Pregunta (2 puntos)
head = new Node<I n t e g e r >(3 , n u l l ) ; Indicar cuál será la salida por consola al ejecutar el pro-
head . s e t N e x t ( new Node<I n t e g e r >(1 , n u l l ) ) ; grama principal main. Sólo una respuesta es correcta
aux = head ;
a) 9 31
head = new Node<I n t e g e r >(9 , aux ) ;
b) 9 13
w h i l e ( head != n u l l ) { c) 3 19
System . o u t . p r i n t ( head . e l e m e n t ( ) + ” ” ) ; d) 3 1
head = head . n e x t ( ) ;

Tercer Ejercicio
Dadas las siguientes afirmaciones sobre interfaces en Java.

Pregunta (2 puntos)
Señala todas las afirmaciones correctas. Puede haber más de una afirmación correcta
a) Si una clase A implementa una interfaz I, NO se pueden crear objetos de tipo A.
b) No puede haber más de una clase que implemente una misma interfaz en el mismo programa.
c) Una interfaz permite definir constantes.
d) Una interfaz se puede utilizar para especificar un TAD.

Copyright c MMXVII, Universidad Politécnica de Madrid. Continúa. . .


CLAVE EXAMEN: a c

Cuarto Ejercicio
Dadas las siguientes afirmaciones sobre herencia de clases en Java.

Pregunta (2 puntos)
Señala todas las afirmaciones correctas. Puede haber más de una afirmación correcta
a) Una clase hija incluye todos los atributos de su clase padre.
b) Java permite herencia múltiple (una clase hija puede tener varias clases padre).
c) Todas las clases heredan o son subclases de la clase Object.
d) Una clase hija solo puede sobreescribir los métodos abstractos que herede de la clase padre.

Quinto Ejercicio
Dada la siguiente clase NavegadorWeb y suponiendo que está
definida la excepción ExcepcionNoHayAnteriores: }
p u b l i c c l a s s NavegadorWeb {
private S t r i n g webAbierta ; Pregunta (2 puntos)
p r i v a t e Stack <S t r i n g > a n t e r i o r e s ; Indica cuál es la salida por consola que muestra la ejecu-
p r i v a t e Stack <S t r i n g > p o s t e r i o r e s ; ción del siguiente código:

p u b l i c NavegadorWeb ( ) {
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
a n t e r i o r e s = new Stack <S t r i n g > ( ) ;
NavegadorWeb webBrowser =
p o s t e r i o r e s = new Stack <S t r i n g > ( ) ;
new NavegadorWeb ( ) ;
w e b A b i e r t a = ” p á g i n a v a cı́ a ” ;
}
webBrowser . openWeb ( ”www . a . com” ) ;
webBrowser . openWeb ( ”www . b . com” ) ;
p u b l i c v o i d openWeb ( S t r i n g u r l ) {
try {
a n t e r i o r e s . push ( w e b A b i e r t a ) ;
webBrowser . r e t r o c e d e r ( ) ;
webAbierta = u r l ;
System . o u t . p r i n t ( webBrowser ) ;
}
webBrowser . openWeb ( ”www . c . com” ) ;
webBrowser . r e t r o c e d e r ( ) ;
public void r e t r o c e d e r ()
webBrowser . r e t r o c e d e r ( ) ;
throws E x c e p c i o n N o H a y A n t e r i o r e s {
System . o u t . p r i n t ( ” ” + webBrowser ) ;
S t r i n g webAnterior = webAbierta ;
}
try {
catch ( ExcepcionNoHayAnteriores e ) {
w e b A b i e r t a = a n t e r i o r e s . pop ( ) ;
System . o u t . p r i n t ( ” e r r o r ” ) ;
p o s t e r i o r e s . push ( w e b A n t e r i o r ) ;
}
} catch ( EmptyStackException e ) {
}
throw new E x c e p c i o n N o H a y A n t e r i o r e s ( ) ;
} Sólo una respuesta es correcta.
}
a) www.b.com página vacı́a
public String toString (){ b) www.a.com página vacı́a
return webAbierta ; c) www.a.com www.a.com
} d) www.a.com error

Copyright c MMXVII, Universidad Politécnica de Madrid. Fin.


CLAVE EXAMEN: ab de

Departamento de Lenguajes y Sistemas Informáticos e Ingenierı́a del Software UPM ETSIINF.


Examen de Programación II. Convocatoria ordinaria. 31-05-2017.

Realización: El test se realizará en la hoja de respuesta. Es importante que no olvidéis rellenar vuestros datos personales y el
código clave de vuestro enunciado. Se pueden utilizar hojas aparte en sucio.
Duración: La duración total del test será de 30 minutos.
Peso en el examen: El examen tendrá dos partes, un test y un ejercicio práctico. El test tendrá un peso de un 30 % en la nota del
examen y el ejercicio práctico tendrá el 70 % restante.
Puntuación: El test se valora sobre 10 puntos. Las preguntas tipo test pueden tener una única respuesta o varias respuestas, el
enunciado lo deja claro. Cada pregunta con una única respuesta respondida correctamente vale 2 puntos, e incorrectamente
respondida resta 2/3 puntos. Si en una pregunta con una única respuesta se selecciona más de una respuesta, la pregunta se
puntuará con 0 puntos. Para una pregunta con varias respuestas, cada afirmación correcta seleccionada suma
2/no respuestas correctas puntos, y cada afirmación incorrecta seleccionada resta 2/no respuestas incorrectas puntos. Las
preguntas no contestadas suman 0 puntos en cualquier caso.
Calificaciones: Las calificaciones se publicarán en moodle como muy tarde el dı́a 5 de junio de 2017
Revisión: Las revisiones serán el dı́a 8 de junio de 2017 previa petición por correo electrónico al profesor que se indique por el foro
de la asignatura.

Primer Ejercicio
Dado el siguiente código, y suponiendo que en el mismo pa- new E j e m p l o F a c t o r i a l ( ) ;
quete ya existe la clase NumeroNegativoExp:
public class EjemploFactorial { try {
System . o u t . p r i n t (
p u b l i c i n t f a c t o r i a l ( i n t num ) { ejemplo . f a c t o r i a l E x c e p c i o n ( 1));
i f ( num == 0 ) { System . o u t . p r i n t ( ” Se p r o d u j o un e r r o r ” ) ;
return 1; }
} else { c a t c h ( NumeroNegativoExp e ) {
r e t u r n num ⇤ f a c t o r i a l ( num 1); System . o u t . p r i n t ( ” Terminó con e r r o r ” ) ;
} System . o u t . p r i n t ( e j e m p l o . f a c t o r i a l ( 3 ) ) ;
} }
}
p u b l i c i n t f a c t o r i a l E x c e p c i o n ( i n t num ) }
throws NumeroNegativoExp {
i f ( num < 0 ) { Pregunta (2 puntos)
throw new NumeroNegativoExp ( ) ; Indicar cuál será la salida por consola al ejecutar el pro-
} grama principal main. Sólo una respuesta es correcta
r e t u r n f a c t o r i a l ( num ) ; a) Terminó con error 6
}
b) Se produjo un error
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { c) Se produjo un error Terminó con error 6
EjemploFactorial ejemplo = d) Terminó con error

Segundo Ejercicio
Dado el siguiente código que utiliza la clase Node<E> vista }
en clase: }
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
Node<I n t e g e r > head , aux ; Pregunta (2 puntos)
head = new Node<I n t e g e r >(3 , n u l l ) ; Indicar cuál será la salida por consola al ejecutar el pro-
head . s e t N e x t ( new Node<I n t e g e r >(1 , n u l l ) ) ; grama principal main. Sólo una respuesta es correcta
aux = head ;
a) 9 13
head = new Node<I n t e g e r >(9 , aux ) ;
b) 3 1
w h i l e ( head != n u l l ) { c) 9 31
System . o u t . p r i n t ( head . e l e m e n t ( ) + ” ” ) ; d) 3 19
head = head . n e x t ( ) ;

Tercer Ejercicio
Dadas las siguientes afirmaciones sobre interfaces en Java.

Pregunta (2 puntos)
Señala todas las afirmaciones correctas. Puede haber más de una afirmación correcta
a) Una interfaz se puede utilizar para especificar un TAD.
b) Una interfaz permite definir constantes.
c) Si una clase A implementa una interfaz I, NO se pueden crear objetos de tipo A.
d) No puede haber más de una clase que implemente una misma interfaz en el mismo programa.

Copyright c MMXVII, Universidad Politécnica de Madrid. Continúa. . .


CLAVE EXAMEN: ab de

Cuarto Ejercicio
Dadas las siguientes afirmaciones sobre herencia de clases en Java.

Pregunta (2 puntos)
Señala todas las afirmaciones correctas. Puede haber más de una afirmación correcta
a) Una clase hija incluye todos los atributos de su clase padre.
b) Todas las clases heredan o son subclases de la clase Object.
c) Una clase hija solo puede sobreescribir los métodos abstractos que herede de la clase padre.
d) Java permite herencia múltiple (una clase hija puede tener varias clases padre).

Quinto Ejercicio
Dada la siguiente clase NavegadorWeb y suponiendo que está
definida la excepción ExcepcionNoHayAnteriores: }
p u b l i c c l a s s NavegadorWeb {
private S t r i n g webAbierta ; Pregunta (2 puntos)
p r i v a t e Stack <S t r i n g > a n t e r i o r e s ; Indica cuál es la salida por consola que muestra la ejecu-
p r i v a t e Stack <S t r i n g > p o s t e r i o r e s ; ción del siguiente código:

p u b l i c NavegadorWeb ( ) {
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
a n t e r i o r e s = new Stack <S t r i n g > ( ) ;
NavegadorWeb webBrowser =
p o s t e r i o r e s = new Stack <S t r i n g > ( ) ;
new NavegadorWeb ( ) ;
w e b A b i e r t a = ” p á g i n a v a cı́ a ” ;
}
webBrowser . openWeb ( ”www . a . com” ) ;
webBrowser . openWeb ( ”www . b . com” ) ;
p u b l i c v o i d openWeb ( S t r i n g u r l ) {
try {
a n t e r i o r e s . push ( w e b A b i e r t a ) ;
webBrowser . r e t r o c e d e r ( ) ;
webAbierta = u r l ;
System . o u t . p r i n t ( webBrowser ) ;
}
webBrowser . openWeb ( ”www . c . com” ) ;
webBrowser . r e t r o c e d e r ( ) ;
public void r e t r o c e d e r ()
webBrowser . r e t r o c e d e r ( ) ;
throws E x c e p c i o n N o H a y A n t e r i o r e s {
System . o u t . p r i n t ( ” ” + webBrowser ) ;
S t r i n g webAnterior = webAbierta ;
}
try {
catch ( ExcepcionNoHayAnteriores e ) {
w e b A b i e r t a = a n t e r i o r e s . pop ( ) ;
System . o u t . p r i n t ( ” e r r o r ” ) ;
p o s t e r i o r e s . push ( w e b A n t e r i o r ) ;
}
} catch ( EmptyStackException e ) {
}
throw new E x c e p c i o n N o H a y A n t e r i o r e s ( ) ;
} Sólo una respuesta es correcta.
}
a) www.a.com error
public String toString (){ b) www.a.com www.a.com
return webAbierta ; c) www.a.com página vacı́a
} d) www.b.com página vacı́a

Copyright c MMXVII, Universidad Politécnica de Madrid. Fin.

You might also like