Crear
Descargar
Obtener Plan Académico
Compartir juego
Intégralo en tu plataforma

Puedes integrar el juego en un LMS compatible con LTI 1.1 o LTI 1.3 como Canvas, Moodle, o Blackboard. De esta manera podrás guardar las puntuaciones automáticamente en el libro de calificaciones de esa plataforma.
Descargar
Has superado el número máximo de juegos que puedes integrar en Google Classroom con tu Plan actual.

Para integrar tantos juegos como quieras en Google Classroom, necesitas un Plan Académico o un Plan Comercial.

Has superado el número máximo de juegos que puedes integrar en Microsoft Teams con tu Plan actual.

Para integrar tantos juegos como quieras en Microsoft Teams, necesitas un Plan Académico o un Plan Comercial.

La descarga de juegos es una característica exclusiva para usuarios con un Plan Académico o un Plan Comercial.

Obtén ahora tu Plan Académico o Comercial y comienza a integrar tus juegos en tu LMS, web o blog.

Si lo deseas, puedes descargar un juego de prueba aquí y probar su integración:

Test Examen Java ☕ { T1 && T3 }

Test

(1)
Jugadas 2

Sobre esta actividad

Test de Java 21 para estudiantes de programación (incluye bases de Java y estructuras de control) {CV.A + P}

Creada por

España

Descarga la versión para jugar en papel

Crea tu propio juego gratis desde nuestro creador de juegos
Compite contra tus amigos para ver quien consigue la mejor puntuación en esta actividad

Top juegos

%
Anónimo
Anónimo
%
%
%
Has superado el número máximo de juegos que puedes imprimir con tu Plan actual.

Para imprimir tantos juegos como quieras, necesitas un Plan Académico o un Plan Comercial.

Imprime tu juego
Test Examen Java ☕ { T1 && T3 }
 

Test Examen Java ☕ { T1 && T3 }Versión en línea

Test de Java 21 para estudiantes de programación (incluye bases de Java y estructuras de control) {CV.A + P}

por Juan Manuel Torres Martínez
1

¿Cuál de las siguientes opciones genera un número aleatorio entero entre -10 y 10 (ambos incluidos) en Java?

2

El siguiente bucle debería mostrar todos los múltiplos de 100 entre -1000 y 1000 (ambos incluidos), pero no lo hace. ¿Cómo podrías arreglarlo?

3

¿En qué circunstancias el siguiente programa continuará ejecutando las instrucciones que hay más abajo del bucle?

4

¿Qué sale por la pantalla al ejecutar este bucle?

5

¿Qué ocurre al intentar compilar y ejecutar este código?

6

¿Qué mensaje o mensajes aparecen en la pantalla al ejecutar este código si tecleamos la letra “A” en lugar de un número?

7

El sumatorio de un número N se define como N + (N-1) + (N-2) + … + 1. Por ejemplo, el sumatorio de 5 es 5 + 4 + 3 + 2 + 1, es decir, 15. El siguiente código intenta calcular el sumatorio de un número n, pero quizá contenga un error. ¿Sabrías encontrarlo y solucionarlo?

8

¿Cuántas veces se imprime la letra A si ejecutamos el siguiente código?

9

A continuación tienes una serie de condicionales anidados. ¿Cómo se pueden simplificar en una sola condición if-else?

10

¿Qué imprimirá este bucle?

Explicación

✏️ Explicación: Math.random() devuelve un double, al hacer casting con (int) quitamos los decimales, Math.floor() también quita los decimales, pero devuelve un double, por lo que dejará, por ejemplo, de 5.65 -> 5.0 mientras que un casting (int) 5.65 -> 5. Ahora, lo que tenemos aquí es una generación de un rango de números aleatorios personalizado, del tipo cerrado [-10,10]. En nuestros ejemplos: Nota: En los rangos "[" significa, rango cerrado, número incluido, en nuestro caso, -10 y 10 incluidos // Genera un número al azar (Personalizado) Entre 5 y 10 (sí llega a 10) int min2 = 5; int max2 = 10; System.out.println("(Personalizado) Entre 5 y 10 (sí llega a 10) → " + (int) ((Math.random() * (max2 - min2 + 1)) + min2)); Sí sustituimos la fórmula para el rango [-10,10] nos queda: int min2 = -10; int max2 = 10; System.out.println("(Personalizado) Entre -10 y 10 (sí llega a 10) → " + (int) ((Math.random() * (10 - (-10) + 1)) + (-10))); Recordamos la multiplicación de signos: - * - = + + * - = - Por tanto, resolvemos: System.out.println("(Personalizado) Entre -10 y 10 (sí llega a 10) → " + (int) ((Math.random() * (10 + 10) + 1)) -10)); Por tanto, nos queda: System.out.println("(Personalizado) Entre -10 y 10 (sí llega a 10) → " + (int) ((Math.random() * 20 + 1) -10)); Y finalmente: System.out.println("(Personalizado) Entre -10 y 10 (sí llega a 10) → " + (int) (Math.random() * 21) - 10));

✏️ Explicación: Actualmente, imprime: [-900, -800, -700, -600, -500, -400, -300, -200, -100, 0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000] Ya que en la primera vuelta se hace a = -1000 + 100, donde según la multiplicación de signos: + * - = - por tanto, se resta a = -900, sería negativo, ya que el número mayor define el signo y este es negativo (matemáticas 😏) La corrección correcta, sería "En la línea 1, cambiando la inicialización de la variable a por esto: int a = -1100", ya que al inicializar en -1100, la primera resta sería -1100 + 100 = -1000, así conseguimos: [-1000, -900, -800, -700, -600, -500, -400, -300, -200, -100, 0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000]

✏️ Explicación: Ejemplo de ejecución: Introduzca un número positivo: -1 Introduzca un número positivo: -7 Introduzca un número positivo: -4 Introduzca un número positivo: 0 Introduzca un número positivo: -1 Introduzca un número positivo: -1 Introduzca un número positivo: 0 Introduzca un número positivo: 2 Salió del bucle 🚀 La condición de salida, del bucle, se produce cuando número <= 0 == false, ya que los bucles, se siguen ejecutando mientras la condición sea true. Por ejemplo, -7 <= 0 ➡️ true, se sigue ejecutando, 0 <= 0 ➡️ true, se sigue ejecutando, 5 <= 0 ➡️ false, sale del bucle y se ejecuta el resto del programa

✏️ Explicación: El mínimo es el 1, ya que en la 1º ejecución del bucle: a = 0; b = a + 2; b = 0 + 2; b = 2; a = b - 1; a = 2 - 1; a = 1; System.out.print(b + " " + a + " "); Imprime: 2 1 En las últimas ejecuciones: a = 98 b = 99 La condición del bucle a < 100 es true, a = 99 b = 100 La condición del bucle a < 100 es true, En la última ejecución: a = 100 b = 101 Se imprime 101 100

✏️ Explicación: Recuerda que todo lo que llega a la consola, es texto (String), por tanto en un System.out.println(a + b); , tienen prioridad los String, todo se autoconvierte a String y el "+" actuaría como unión de String (concatenación) 😎 Mini reto: ¿Cómo conseguirías que salga 20 en la consola?

✏️ Explicación: Si le pasamos un String que no corresponde con un número ("12", "77" ...) a Integer.parseInt(), nos dará una excepción (java.lang.NumberFormatException: For input string: "A"), por lo que escribe "Error" y pone a = 0, recuerda que el "finally" se ejecuta siempre, falle o no el programa

✏️ Explicación: Las variables acumuladoras de tipo "+" normalmente suelen empezar en 0 para no alterar el resultado. Con las de tipo "*" se empieza por 1

✏️ Explicación: El bucle padre ejecuta 2 veces al hijo, el cual imprimer en la 1º tanta 4 "A" y en la 2º otras 4 "A", donde finalmente tenemos 8 "A"

✏️ Explicación: Recuerda las operaciones lógicas de 3 operandos: true && false && true → false true && true && true → true (por este se puede simplificar) true && !true && true → false true || false || true → true true || false || false → true !true || false || false → false

✏️ Explicación: Es un bucle a la inversa, comienza en 5 y baja hasta 1

¿Estás seguro que quieres abandonar la página?

Al abandonar la página perderás el progreso del juego.