Examen de java básico 1. Indique cuál sería el resultado de la expresión que aparece en negrita teniendo en cuenta el valor de las variables a, b, c, d y e que aparecen a continuación: int a = 3; int b = 5; int c = 4; boolean d = false; boolean e = false; (a+b-c < c ) || (d || e) a. true b. false. c. 4 Justificar:…………………………………………………………………… 2.- Indique el número de veces que se ejecutaría el siguiente bucle: for(int i=10; i>5; i=i+2){ System.out.println(“Hola”); } a. Ninguna porque i nunca toma el valor <= 5. b. Dos (para i=5, 7) c. Infinitas porque i nunca toma el valor <= 5 4.- Un algoritmo es: a. Una serie de pasos organizados que describen el proceso a seguir para solucionar un problema específico b. Un conjunto de reglas que se pueden aplicar en cada uno de los estados de un problema para avanzar hacia la solución c. La secuencia de instrucciones para resolver un problema de forma óptima 5- Indicar si las siguientes afirmaciones son ciertas, y explicar brevemente por qué. a) “Es posible que objetos pertenecientes a la misma clase posean atributos que tengan el mismo valor para todos y que cambien de valor en todos al cambiar en uno.” b) “Heredar de una clase que a su vez hereda de otra se considera herencia múltiple y está prohibido en Java. (Ejemplo: clase A hereda de B y clase B hereda de C)” 6.- Dado el siguiente código Java: public void metodo1(int numero){ for(int i = 0; i < numero; i++){ for(int j = 0; j <= i; j++){ System.out.print(i + j); if(((i + j) % 2) == 0) System.out.print("**"); else System.out.print("--"); } System.out.println(); } } Cual sería la salida por pantalla tras la ejecución de metodo1(3); Respuesta: 7. ¿Cuántas veces se ejecutaría el cuerpo de los siguientes bucles for? for (i=1; i<10; i++) … for (i=30; i>1; i- =2) … for (i=30; i<1; i+ =2) … for (i=0; i<30; i+ =4) … 8. Ejecute paso a paso el siguiente bucle: c = 5; for (a=1; a<5; a++) c = c – 1; ¿Con que valor termina a y c? Conversión entre tipos numéricos 1.a) Indicar si la asignación que aparece en el siguiente código Java es correcta o no y corregirla en caso de que no lo sea. Indicar cuál sería el valor almacenado en la variable d como resultado de la asignación: double d; int i=2; char c='a'; d = i + c; // ¿asignación correcta? 1.b) Proceder de igual manera para el siguiente código, indicando cual sería el valor almacenado en la variable i: double d=3.72; int i; int j=10; i = j + d + '\"'; // ¿asignación correcta? 1.c) La asignación que aparece a continuación no es correcta. Indicar como corregirla para que el valor almacenado en i sea lo más cercano posible al resultado matemático de la expresión (d*j = 37.2). Indicar cuál sería el valor almacenado en i. double d=3.72; int i; int j=10; i = d * j; // asignación incorrecta Preguntas teórico-prácticas 1. Tipos de datos en Java. Diferencias entre los tipos primitivos y los tipos de referencia. Visibilidad de variables. 2. Diferencias entre las clases String y StringBuffer. Ponga un ejemplo de declaración, construcción y uso de cada una de ellas. Conversiones de datos primitivos a cadena y viceversa. 3. Significado de las palabras reservadas this y super. Ponga al menos un ejemplo de utilización de cada una de ellas 4. Excepciones en Java. El bloque try. Explique la utilidad de la claúsula throws en un método. 5. Diferencias entre un applet y una aplicación Java con interface gráfica. ¿qué modificaciones habría que hacer en una aplicación con interfaz gráfica para convertirla en un applet? Dada la siguiente clase Java: public class Pregunta4 { public static void main(String[] args) { byte[] valores = new byte[] {1, 2, 3}; int tmp = 5; tmp *= metodo(1); System.out.println("Valor temporal: " + tmp); int tmp2 = valores.length + valores[1]; System.out.println("Segundo valor temporal:" + tmp2); int tmp3 = tmp2 % 4; System.out.println("Tercer valor temporal: " + tmp3); } private static int metodo(int variable) { System.out.println("Metodo con valor:" + (++variable)); return variable; } } Explicar cuál sería la salida por pantalla al ejecutar la clase Pregunta