New game
Download
Get Academic Plan
Share game
Integrate it into your platform

You can integrate the game into an LMS compatible with LTI 1.1 or LTI 1.3 such as Canvas, Moodle, or Blackboard. This way, the scores will be automatically saved into the platform’s gradebook.
Download
You have exceeded the maximum number of games you can integrate into Google Classroom with your current Plan.

To integrate as many games as you want in Google Classroom, you need an Academic Plan or a Commercial Plan.

You have exceeded the maximum number of games you can integrate into Microsoft Teams with your current Plan.

To integrate as many games as you want in Microsoft Teams, you need an Academic Plan or a Commercial Plan.

Downloading games is an exclusive feature for users with an Academic Plan or a Commercial Plan.

Get your Academic Plan or your Commercial Plan now and start integrating your games into your LMS, website or blog.

If you wish, you can download a demo game here and test its integration:

Test Examen Java ☕ { T1 && T3 }

Quiz

(1)
Played 2

About this activity

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

Created by

Spain

Download the paper version to play

Make your own free game from our game creator
Compete against your friends to see who gets the best score in this game

Top Games

%
Anonymous
Anonymous
%
%
%
You have exceeded the maximum number of games you can print with your current Plan.

To print as many games as you want, you need an Academic Plan or a Commercial Plan.

Print your game
Test Examen Java ☕ { T1 && T3 }
 

Test Examen Java ☕ { T1 && T3 }Online version

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

by 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

Are you sure you want to leave the page?

If you leave the page, you will lose your game progress.