wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Programación y Estructuras de Datos - Postest

Total questions: 75

Worksheet time: 38mins

Name
Class
Date
1.

¿Qué característica define correctamente un árbol binario de búsqueda?

a)

Puede tener ciclos

b)

En el subárbol izquierdo todos los nodos son menores que la raíz

c)

El orden de inserción no importa

d)

Siempre es balanceado

2.

Toda función recursiva puede ser convertida en una versión iterativa.

a)

Verdadero

b)

Falso

3.

¿Cuál es una diferencia entre interfaz y clase abstracta en Java?

a)

Las interfaces no pueden ser implementadas

b)

Las clases abstractas no pueden tener métodos

c)

Las interfaces sólo definen comportamiento, no implementación

d)

Las interfaces siempre extienden clases

4.

¿Para qué se usan los genéricos () en Java?

a)

Para repetir código

b)

Para herencia múltiple

c)

Para trabajar con distintos tipos de datos manteniendo seguridad de tipos

d)

Para evitar clases

5.

¿Qué define un árbol binario completo?

a)

Tiene nodos duplicados

b)

Todos los niveles están completamente llenos excepto quizás el último

c)

Sólo puede tener un hijo por nodo

d)

El último nivel se llena de derecha a izquierda

6.

¿Qué hace el siguiente método?

a)

Cuenta los impares

b)

Cuenta los pares

c)

Retorna la suma total

d)

Cuenta el total de elementos

7.

¿Qué imprime el siguiente código?

a)

Empleado

b)

Gerente

c)

Error de compilación

d)

No imprime nada

8.

¿Qué error contiene el siguiente fragmento de búsqueda binaria?

a)

Falta condición base

b)

No reduce correctamente el espacio de búsqueda

c)

mid debería ser mid - 1

d)

Es recursivo

9.

¿Qué calcula este método?

a)

Altura del árbol

b)

Número total de nodos

c)

Número de nodos hoja

d)

Nodos con un solo hijo

10.

¿Qué ocurre al insertar en orden ascendente en un árbol binario de búsqueda?

a)

Queda balanceado

b)

Se convierte en una lista lineal

c)

Causa error de compilación

d)

Se elimina la raíz

11.

¿Qué ocurre al insertar en orden ascendente en un árbol binario de búsqueda?

a)

Queda balanceado

b)

Se convierte en una lista lineal

c)

Causa error de compilación

d)

Se elimina la raíz

12.

¿Cuál es la complejidad promedio de búsqueda en un árbol binario de búsqueda balanceado?

a)

O(n)

b)

O(1)

c)

O(log n)

d)

O(n log n)

13.

¿Qué permite verificar un recorrido inorden en un árbol binario de búsqueda?

a)

Si está balanceado

b)

Si los elementos están ordenados ascendentemente

c)

Si hay repeticiones

d)

Cuántos nodos son hoja

14.

¿Cómo se calcula la altura de un árbol binario?

a)

1 + máximo entre la altura del subárbol izquierdo y derecho

b)

Número de nodos hoja

c)

Nivel de la raíz

d)

Cantidad de hijos

15.

¿Qué es un árbol balanceado?

a)

Todos los nodos tienen 2 hijos

b)

Todas las hojas están al mismo nivel

c)

La diferencia de alturas entre subárboles izquierdo y derecho no supera 1

d)

Tiene igual cantidad de nodos en ambos lados

16.

¿Qué caracteriza a un algoritmo de backtracking?

a)

Siempre encuentra la mejor solución

b)

Explora caminos y retrocede ante fallos

c)

Solo funciona con listas

d)

No requiere condiciones

17.

¿Cuándo es más recomendable usar backtracking?

a)

Cuando hay muchas soluciones válidas

b)

Cuando hay restricciones que deben cumplirse

c)

Cuando se necesita usar menos memoria

d)

Cuando se desea velocidad

18.

¿Cómo se diferencia el backtracking de la fuerza bruta?

a)

Backtracking explora todo sin filtrar

b)

Backtracking evita caminos inválidos antes de profundizar

c)

Fuerza bruta es recursiva

d)

No hay diferencia real

19.

¿Qué error es común al insertar un nuevo nodo en una lista enlazada?

a)

Insertar en la cabeza

b)

No actualizar correctamente el next

c)

Insertar siempre al final

d)

Usar arrays

20.

¿Qué se debe hacer para eliminar un nodo intermedio en una lista enlazada simple?

a)

Eliminarlo directamente

b)

Apuntar el nodo anterior al siguiente del nodo a eliminar

c)

Quitar el primer nodo

d)

Reiniciar la lista

21.

¿Qué recorrido permite validar si un árbol binario cumple la propiedad de búsqueda?

a)

Preorden

b)

Postorden

c)

Inorden validando orden creciente

d)

Recorrido por niveles (BFS)

22.

¿Qué operaciones tienen complejidad O(log n) en un árbol AVL?

a)

Búsqueda

b)

Inserción

c)

Eliminación

d)

Todas las anteriores

23.

¿En qué situación aplicarías backtracking con árboles binarios?

a)

Buscar rutas válidas en un árbol de decisiones

b)

Insertar nodos en un árbol balanceado

c)

Recorrer un árbol por niveles

d)

Verificar si es árbol completo

24.

¿Cuál es la principal ventaja de un árbol AVL sobre un árbol binario de búsqueda normal?

a)

Siempre está balanceado, lo que garantiza operaciones más rápidas

b)

Es más fácil de implementar

c)

Permite nodos duplicados

d)

Requiere menos memoria

25.

¿Qué recorrido en un árbol binario se utiliza para obtener los nodos en orden descendente?

a)

Recorrido por niveles (BFS)

b)

Preorden

c)

Inorden

d)

Postorden

26.

¿Qué técnica se utiliza para resolver problemas de optimización combinatoria?

a)

Programación dinámica

b)

Algoritmos voraces

c)

Backtracking

d)

Dividir y conquistar

27.

¿Qué es una variable en programación?

a)

Un valor fijo que no puede cambiar.

b)

Un espacio en memoria que almacena datos que pueden cambiar durante la ejecución del programa.

c)

Un método para controlar el flujo del programa.

d)

Una constante que almacena datos numéricos.

28.

¿Qué es una constante en programación?

a)

Un valor que puede cambiar en cualquier momento.

b)

Un valor que se utiliza solo en operaciones aritméticas.

c)

Un valor fijo que no cambia durante la ejecución del programa.

d)

Un tipo especial de variable que almacena cadenas.

29.

¿Cuál de las siguientes es la sintaxis correcta para declarar una variable entera en Java?

a)

int numero = "5";

b)

int numero = 5;

c)

double numero = 5;

d)

var numero = 5;

30.

¿Qué operador aritmético se utiliza para la multiplicación en Java?

a)

+

b)

-

c)

*

d)

/

31.

¿Qué operador se utiliza en Java para realizar la comparación de igualdad entre dos variables?

a)

=

b)

==

c)

!=

d)

<>

32.

¿Cuál es la función del operador != en Java?

a)

Comprueba si dos valores son iguales.

b)

Asigna un valor a una variable.

c)

Comprueba si dos valores son diferentes.

d)

Detiene la ejecución del programa.

33.

¿Cuál de las siguientes es una forma válida de leer datos desde el teclado en Java?

a)

System.console();

b)

Scanner input = new Scanner(System.in);

c)

input.read();

d)

Scanner.read();

34.

¿Qué se entiende por "sistema de entrada y salida de datos" en un programa?

a)

Un sistema que controla los ciclos de un programa.

b)

Un sistema que permite recibir datos del usuario y mostrar resultados.

c)

Un proceso que solo utiliza archivos para guardar datos.

d)

Un conjunto de instrucciones aritméticas.

35.

¿Qué estructura de control usarías para ejecutar un bloque de código solo si se cumple una condición específica?

a)

for

b)

while

c)

if

d)

switch

36.

En una estructura if-else, ¿cuál de las siguientes es correcta?

a)

if (condición) { ... } else { ... }

b)

if { ... } else { ... }

c)

if (condición); { ... } else { ... }

d)

if (condición) { else { ... } }

37.

¿Es el propósito de una estructura de control switch en Java?

a)

Ejecutar un ciclo indefinidamente.

b)

Evaluar varias condiciones y ejecutar el bloque correspondiente según el valor de una expresión.

c)

Realizar una operación matemática en un ciclo.

d)

Almacenar datos en arrays.

38.

¿Qué es un "valor mágico" en programación?

a)

Un valor que no cambia durante la ejecución del programa.

b)

Un valor que no está declarado como constante y aparece repetido en el código.

c)

Un valor generado aleatoriamente por el sistema.

d)

Un valor que puede cambiar su tipo de dato en tiempo de ejecución.

39.

¿Por qué se debe evitar el uso de valores mágicos en un programa?

a)

Porque hace el código más difícil de leer y mantener.

b)

Porque son difíciles de generar.

c)

Porque aumentan el rendimiento del programa.

d)

Porque solo se usan en proyectos complejos.

40.

¿Qué es un array en Java?

a)

Una estructura que almacena un solo valor de cualquier tipo.

b)

Un conjunto de variables que almacena varios valores del mismo tipo.

c)

Una estructura que almacena valores de diferentes tipos.

d)

Un ciclo que ejecuta múltiples operaciones a la vez.

41.

¿Cuál es la sintaxis correcta para declarar un array de enteros con 5 elementos en Java?

a)

int[5] array;

b)

int array[5];

c)

int[] array = new int[5];

d)

int[] array = {5};

42.

¿Qué valor tendrá numeros[2] en el siguiente array: int[] numeros = {10, 20, 30, 40};?

a)

10

b)

20

c)

30

d)

40

43.

¿Cuál de las siguientes afirmaciones es correcta sobre los arrays en Java?

a)

Un array puede contener valores de diferentes tipos.

b)

El tamaño de un array no puede cambiar después de ser declarado.

c)

Un array no puede ser recorrido con un ciclo for.

d)

Los arrays solo pueden almacenar números enteros.

44.

¿Qué ocurre si intentas acceder a un índice que no existe en un array en Java?

a)

El programa genera un valor nulo.

b)

Se muestra el último valor del array.

c)

El programa lanza una excepción ArrayIndexOutOfBoundsException.

d)

El programa se detiene automáticamente.

45.

¿Cuál de las siguientes estructuras es la más adecuada para almacenar una lista de estudiantes?

a)

double[]

b)

boolean[]

c)

String[]

d)

int[]

46.

¿Cuál es el propósito de una estructura de control switch en Java?

a)

Ejecutar un ciclo indefinidamente

b)

Evaluar varias condiciones y ejecutar el bloque correspondiente según el valor de una expresión.

c)

Realizar una operación matemática en un ciclo.

d)

Almacenar datos en arrays.

47.

Entidad con atributos y comportamiento

a)

Clase

b)

Objeto

c)

Plantilla

d)

Funcion

48.

En programacion se utiliza para modelar un conjunto de objetos

a)

Plantilla

b)

Objeto

c)

Clase

d)

Metodos

49.

Es lo que el objeto puede hacer

a)

Funciones

b)

Metodos

c)

Operaciones

d)

Atributos

50.

Se refieren a caracteristicas principalmente fisicas y de estado de un objeto

a)

Metodos

b)

Operaciones

c)

Atributos

d)

Objetos

51.

Es lo que se le puede hacer a un objeto

a)

Metodos

b)

Plantillas

c)

Atributos

d)

Operaciones

52.

Es un conjunto de objetos con caracteristicas y semantica en comun

a)

Objeto

b)

Plantilla

c)

Clase

d)

Biblioteca

53.

Cuando se crea una clase que generaliza dos o mas clases, y toma las caracteristicas que tienen en comun

a)

Herencia

b)

Abstraccion

c)

Especializacion

d)

Empaquetamiento

54.

Una superclase es

a)

Una clase derivada de otra clase y que la hace mas fuerte

b)

Una clase que tiene agrupa objetos de diferentes clases

c)

Una clase que no necesita de nadie mas

d)

Una clase de la cual se deriva otra clase

55.

Una instancia de una clase es

a)

Una clase que es automatica

b)

Una clase que forma parte de un conjunto de clases

c)

Un objeto que pertenece a esa clase

d)

Una referencia a una clase

56.

Dentro de un conjunto de objetos existen diferentes formas y maneras de hacer las cosas

a)

Abstraccion

b)

Herencia

c)

Generalizacion

d)

Polimorfismo

57.

Atributos (datos) y comportamiento (codigo) estan modularizados en una sola entidad, y hay diferentes niveles de proteccion a los mismos.

a)

Encapsulamiento

b)

Polimorfismo

c)

Proteccion

d)

Especializacion

58.

Todo sistema esta compuesto de objetos que se comunican entre si por medio de mensajes

a)

Estado de un objeto

b)

Modelado de clases

c)

Paradigma de orientacion a objetos

d)

Herencia

59.

¿Cuál es la descripción que crees que define mejor el concepto 'clase' en la programación orientada a objetos?

a)

Es una categoria de datos ordenada secuencialmente

b)

Es un tipo particular de variable

c)

Es un concepto similar al de 'array'

d)

Es un modelo o plantilla a partir de la cual creamos objetos

60.

Qué tipo de clases puedo hacer en Java.?

a)

Publicas y módulos

b)

Módulos

c)

Publicas y Privadas

d)

Privadas

61.

¿Qué elementos crees que definen a un objeto?

a)

Sus cardinalidad y su tipo

b)

Sus atributos y sus métodos

c)

La forma en que establece comunicación e intercambia mensajes

d)

Su interfaz y los eventos asociados

62.

La siguiente definición: "Describe la capacidad de crear clases nuevas a partir de una clase existente", corresponde a?

a)

Polimorfismo

b)

Herencia

c)

Encapsulación

d)

Ninguna respuesta es correcta

63.

La siguiente definición: "Habilidad de tener diferentes formas", corresponde a?

a)

Polimorfismo

b)

Herencia

c)

Encapsulación

d)

Ninguna respuesta es correcta

64.

Las clases normalmente disponen de:

a)

Nombre, atributos y métodos.

b)

Herencia, atributos y nombre.

c)

Nombre, métodos, herencia.

65.
La palabra reservada para crear una clase en python es
a)
class
b)
Clas
c)
Object
d)
object
66.

Los pilares de la programación orientada a objetos son:

a)

Abstracción, encapsulamiento, polimorfismo, herencia.

b)

Modularidad, abstracción, encapsulamiento, polimorfismo.

c)

Herencia, abstracción, modularidad, encapsulamiento.

67.

¿Qué es un árbol binario de búsqueda?

a)

Un árbol que solo puede contener números enteros

b)

Un árbol que permite la búsqueda eficiente de elementos

c)

Un árbol donde cada nodo tiene como máximo dos hijos

d)

Un árbol que no permite duplicados

68.

¿Cuál es la principal diferencia entre una lista enlazada y un array?

a)

Las listas enlazadas tienen un tamaño fijo

b)

Los arrays permiten acceso aleatorio a los elementos

c)

Las listas enlazadas son más rápidas para insertar y eliminar elementos

d)

Los arrays son más flexibles en cuanto a tipos de datos

69.

¿Qué es la recursión en programación?

a)

Un tipo de bucle que se ejecuta indefinidamente

b)

Un método para optimizar el uso de memoria

c)

Una función que se llama a sí misma

d)

Una técnica para repetir un bloque de código

70.

¿Cuál de las siguientes afirmaciones es cierta sobre la herencia en Java?

a)

La herencia es solo para clases abstractas.

b)

Una clase puede heredar de múltiples clases.

c)

La herencia permite reutilizar código de una clase base.

d)

Las clases no pueden tener constructores si heredan de otra clase.

71.

¿Qué valor tendrá el elemento en la posición 1 del siguiente array: String[] frutas = {"manzana", "banana", "cereza"};?

a)

manzana

b)

banana

c)

naranja

d)

cereza

72.

¿Cuál es la complejidad temporal de un algoritmo de búsqueda lineal?

a)

O(n^2)

b)

O(n)

c)

O(1)

d)

O(log n)

73.

¿Cuál es la principal ventaja de usar una lista enlazada sobre un array?

a)

Mayor velocidad en la búsqueda

b)

Acceso aleatorio a los elementos

c)

Menor uso de memoria

d)

Facilidad para insertar y eliminar elementos

74.

¿Qué es un algoritmo de ordenamiento estable?

a)

Un algoritmo que mantiene el orden relativo de los elementos iguales.

b)

Un algoritmo que solo funciona con números enteros.

c)

Un algoritmo que siempre ordena en tiempo O(n log n).

d)

Un algoritmo que no utiliza memoria adicional.

75.

¿Cuál es la diferencia principal entre una cola y una pila?

a)

Ambas son estructuras de datos que funcionan igual.

b)

Una cola es LIFO y una pila es FIFO.

c)

Una cola es FIFO y una pila es LIFO.

d)

Una cola permite acceso aleatorio y una pila no.