NEW
Font size
WorksheetsProgramación y Estructuras de Datos - Postest
Total questions: 75
Worksheet time: 38mins
¿Qué característica define correctamente un árbol binario de búsqueda?
Puede tener ciclos
En el subárbol izquierdo todos los nodos son menores que la raíz
El orden de inserción no importa
Siempre es balanceado
Toda función recursiva puede ser convertida en una versión iterativa.
Verdadero
Falso
¿Cuál es una diferencia entre interfaz y clase abstracta en Java?
Las interfaces no pueden ser implementadas
Las clases abstractas no pueden tener métodos
Las interfaces sólo definen comportamiento, no implementación
Las interfaces siempre extienden clases
¿Para qué se usan los genéricos () en Java?
Para repetir código
Para herencia múltiple
Para trabajar con distintos tipos de datos manteniendo seguridad de tipos
Para evitar clases
¿Qué define un árbol binario completo?
Tiene nodos duplicados
Todos los niveles están completamente llenos excepto quizás el último
Sólo puede tener un hijo por nodo
El último nivel se llena de derecha a izquierda
¿Qué hace el siguiente método?
Cuenta los impares
Cuenta los pares
Retorna la suma total
Cuenta el total de elementos
¿Qué imprime el siguiente código?
Empleado
Gerente
Error de compilación
No imprime nada
¿Qué error contiene el siguiente fragmento de búsqueda binaria?
Falta condición base
No reduce correctamente el espacio de búsqueda
mid debería ser mid - 1
Es recursivo
¿Qué calcula este método?
Altura del árbol
Número total de nodos
Número de nodos hoja
Nodos con un solo hijo
¿Qué ocurre al insertar en orden ascendente en un árbol binario de búsqueda?
Queda balanceado
Se convierte en una lista lineal
Causa error de compilación
Se elimina la raíz
¿Qué ocurre al insertar en orden ascendente en un árbol binario de búsqueda?
Queda balanceado
Se convierte en una lista lineal
Causa error de compilación
Se elimina la raíz
¿Cuál es la complejidad promedio de búsqueda en un árbol binario de búsqueda balanceado?
O(n)
O(1)
O(log n)
O(n log n)
¿Qué permite verificar un recorrido inorden en un árbol binario de búsqueda?
Si está balanceado
Si los elementos están ordenados ascendentemente
Si hay repeticiones
Cuántos nodos son hoja
¿Cómo se calcula la altura de un árbol binario?
1 + máximo entre la altura del subárbol izquierdo y derecho
Número de nodos hoja
Nivel de la raíz
Cantidad de hijos
¿Qué es un árbol balanceado?
Todos los nodos tienen 2 hijos
Todas las hojas están al mismo nivel
La diferencia de alturas entre subárboles izquierdo y derecho no supera 1
Tiene igual cantidad de nodos en ambos lados
¿Qué caracteriza a un algoritmo de backtracking?
Siempre encuentra la mejor solución
Explora caminos y retrocede ante fallos
Solo funciona con listas
No requiere condiciones
¿Cuándo es más recomendable usar backtracking?
Cuando hay muchas soluciones válidas
Cuando hay restricciones que deben cumplirse
Cuando se necesita usar menos memoria
Cuando se desea velocidad
¿Cómo se diferencia el backtracking de la fuerza bruta?
Backtracking explora todo sin filtrar
Backtracking evita caminos inválidos antes de profundizar
Fuerza bruta es recursiva
No hay diferencia real
¿Qué error es común al insertar un nuevo nodo en una lista enlazada?
Insertar en la cabeza
No actualizar correctamente el next
Insertar siempre al final
Usar arrays
¿Qué se debe hacer para eliminar un nodo intermedio en una lista enlazada simple?
Eliminarlo directamente
Apuntar el nodo anterior al siguiente del nodo a eliminar
Quitar el primer nodo
Reiniciar la lista
¿Qué recorrido permite validar si un árbol binario cumple la propiedad de búsqueda?
Preorden
Postorden
Inorden validando orden creciente
Recorrido por niveles (BFS)
¿Qué operaciones tienen complejidad O(log n) en un árbol AVL?
Búsqueda
Inserción
Eliminación
Todas las anteriores
¿En qué situación aplicarías backtracking con árboles binarios?
Buscar rutas válidas en un árbol de decisiones
Insertar nodos en un árbol balanceado
Recorrer un árbol por niveles
Verificar si es árbol completo
¿Cuál es la principal ventaja de un árbol AVL sobre un árbol binario de búsqueda normal?
Siempre está balanceado, lo que garantiza operaciones más rápidas
Es más fácil de implementar
Permite nodos duplicados
Requiere menos memoria
¿Qué recorrido en un árbol binario se utiliza para obtener los nodos en orden descendente?
Recorrido por niveles (BFS)
Preorden
Inorden
Postorden
¿Qué técnica se utiliza para resolver problemas de optimización combinatoria?
Programación dinámica
Algoritmos voraces
Backtracking
Dividir y conquistar
¿Qué es una variable en programación?
Un valor fijo que no puede cambiar.
Un espacio en memoria que almacena datos que pueden cambiar durante la ejecución del programa.
Un método para controlar el flujo del programa.
Una constante que almacena datos numéricos.
¿Qué es una constante en programación?
Un valor que puede cambiar en cualquier momento.
Un valor que se utiliza solo en operaciones aritméticas.
Un valor fijo que no cambia durante la ejecución del programa.
Un tipo especial de variable que almacena cadenas.
¿Cuál de las siguientes es la sintaxis correcta para declarar una variable entera en Java?
int numero = "5";
int numero = 5;
double numero = 5;
var numero = 5;
¿Qué operador aritmético se utiliza para la multiplicación en Java?
+
-
*
/
¿Qué operador se utiliza en Java para realizar la comparación de igualdad entre dos variables?
=
==
!=
<>
¿Cuál es la función del operador != en Java?
Comprueba si dos valores son iguales.
Asigna un valor a una variable.
Comprueba si dos valores son diferentes.
Detiene la ejecución del programa.
¿Cuál de las siguientes es una forma válida de leer datos desde el teclado en Java?
System.console();
Scanner input = new Scanner(System.in);
input.read();
Scanner.read();
¿Qué se entiende por "sistema de entrada y salida de datos" en un programa?
Un sistema que controla los ciclos de un programa.
Un sistema que permite recibir datos del usuario y mostrar resultados.
Un proceso que solo utiliza archivos para guardar datos.
Un conjunto de instrucciones aritméticas.
¿Qué estructura de control usarías para ejecutar un bloque de código solo si se cumple una condición específica?
for
while
if
switch
En una estructura if-else, ¿cuál de las siguientes es correcta?
if (condición) { ... } else { ... }
if { ... } else { ... }
if (condición); { ... } else { ... }
if (condición) { else { ... } }
¿Es el propósito de una estructura de control switch en Java?
Ejecutar un ciclo indefinidamente.
Evaluar varias condiciones y ejecutar el bloque correspondiente según el valor de una expresión.
Realizar una operación matemática en un ciclo.
Almacenar datos en arrays.
¿Qué es un "valor mágico" en programación?
Un valor que no cambia durante la ejecución del programa.
Un valor que no está declarado como constante y aparece repetido en el código.
Un valor generado aleatoriamente por el sistema.
Un valor que puede cambiar su tipo de dato en tiempo de ejecución.
¿Por qué se debe evitar el uso de valores mágicos en un programa?
Porque hace el código más difícil de leer y mantener.
Porque son difíciles de generar.
Porque aumentan el rendimiento del programa.
Porque solo se usan en proyectos complejos.
¿Qué es un array en Java?
Una estructura que almacena un solo valor de cualquier tipo.
Un conjunto de variables que almacena varios valores del mismo tipo.
Una estructura que almacena valores de diferentes tipos.
Un ciclo que ejecuta múltiples operaciones a la vez.
¿Cuál es la sintaxis correcta para declarar un array de enteros con 5 elementos en Java?
int[5] array;
int array[5];
int[] array = new int[5];
int[] array = {5};
¿Qué valor tendrá numeros[2] en el siguiente array: int[] numeros = {10, 20, 30, 40};?
10
20
30
40
¿Cuál de las siguientes afirmaciones es correcta sobre los arrays en Java?
Un array puede contener valores de diferentes tipos.
El tamaño de un array no puede cambiar después de ser declarado.
Un array no puede ser recorrido con un ciclo for.
Los arrays solo pueden almacenar números enteros.
¿Qué ocurre si intentas acceder a un índice que no existe en un array en Java?
El programa genera un valor nulo.
Se muestra el último valor del array.
El programa lanza una excepción ArrayIndexOutOfBoundsException.
El programa se detiene automáticamente.
¿Cuál de las siguientes estructuras es la más adecuada para almacenar una lista de estudiantes?
double[]
boolean[]
String[]
int[]
¿Cuál es el propósito de una estructura de control switch en Java?
Ejecutar un ciclo indefinidamente
Evaluar varias condiciones y ejecutar el bloque correspondiente según el valor de una expresión.
Realizar una operación matemática en un ciclo.
Almacenar datos en arrays.
Entidad con atributos y comportamiento
Clase
Objeto
Plantilla
Funcion
En programacion se utiliza para modelar un conjunto de objetos
Plantilla
Objeto
Clase
Metodos
Es lo que el objeto puede hacer
Funciones
Metodos
Operaciones
Atributos
Se refieren a caracteristicas principalmente fisicas y de estado de un objeto
Metodos
Operaciones
Atributos
Objetos
Es lo que se le puede hacer a un objeto
Metodos
Plantillas
Atributos
Operaciones
Es un conjunto de objetos con caracteristicas y semantica en comun
Objeto
Plantilla
Clase
Biblioteca
Cuando se crea una clase que generaliza dos o mas clases, y toma las caracteristicas que tienen en comun
Herencia
Abstraccion
Especializacion
Empaquetamiento
Una superclase es
Una clase derivada de otra clase y que la hace mas fuerte
Una clase que tiene agrupa objetos de diferentes clases
Una clase que no necesita de nadie mas
Una clase de la cual se deriva otra clase
Una instancia de una clase es
Una clase que es automatica
Una clase que forma parte de un conjunto de clases
Un objeto que pertenece a esa clase
Una referencia a una clase
Dentro de un conjunto de objetos existen diferentes formas y maneras de hacer las cosas
Abstraccion
Herencia
Generalizacion
Polimorfismo
Atributos (datos) y comportamiento (codigo) estan modularizados en una sola entidad, y hay diferentes niveles de proteccion a los mismos.
Encapsulamiento
Polimorfismo
Proteccion
Especializacion
Todo sistema esta compuesto de objetos que se comunican entre si por medio de mensajes
Estado de un objeto
Modelado de clases
Paradigma de orientacion a objetos
Herencia
¿Cuál es la descripción que crees que define mejor el concepto 'clase' en la programación orientada a objetos?
Es una categoria de datos ordenada secuencialmente
Es un tipo particular de variable
Es un concepto similar al de 'array'
Es un modelo o plantilla a partir de la cual creamos objetos
Qué tipo de clases puedo hacer en Java.?
Publicas y módulos
Módulos
Publicas y Privadas
Privadas
¿Qué elementos crees que definen a un objeto?
Sus cardinalidad y su tipo
Sus atributos y sus métodos
La forma en que establece comunicación e intercambia mensajes
Su interfaz y los eventos asociados
La siguiente definición: "Describe la capacidad de crear clases nuevas a partir de una clase existente", corresponde a?
Polimorfismo
Herencia
Encapsulación
Ninguna respuesta es correcta
La siguiente definición: "Habilidad de tener diferentes formas", corresponde a?
Polimorfismo
Herencia
Encapsulación
Ninguna respuesta es correcta
Las clases normalmente disponen de:
Nombre, atributos y métodos.
Herencia, atributos y nombre.
Nombre, métodos, herencia.
Los pilares de la programación orientada a objetos son:
Abstracción, encapsulamiento, polimorfismo, herencia.
Modularidad, abstracción, encapsulamiento, polimorfismo.
Herencia, abstracción, modularidad, encapsulamiento.
¿Qué es un árbol binario de búsqueda?
Un árbol que solo puede contener números enteros
Un árbol que permite la búsqueda eficiente de elementos
Un árbol donde cada nodo tiene como máximo dos hijos
Un árbol que no permite duplicados
¿Cuál es la principal diferencia entre una lista enlazada y un array?
Las listas enlazadas tienen un tamaño fijo
Los arrays permiten acceso aleatorio a los elementos
Las listas enlazadas son más rápidas para insertar y eliminar elementos
Los arrays son más flexibles en cuanto a tipos de datos
¿Qué es la recursión en programación?
Un tipo de bucle que se ejecuta indefinidamente
Un método para optimizar el uso de memoria
Una función que se llama a sí misma
Una técnica para repetir un bloque de código
¿Cuál de las siguientes afirmaciones es cierta sobre la herencia en Java?
La herencia es solo para clases abstractas.
Una clase puede heredar de múltiples clases.
La herencia permite reutilizar código de una clase base.
Las clases no pueden tener constructores si heredan de otra clase.
¿Qué valor tendrá el elemento en la posición 1 del siguiente array: String[] frutas = {"manzana", "banana", "cereza"};?
manzana
banana
naranja
cereza
¿Cuál es la complejidad temporal de un algoritmo de búsqueda lineal?
O(n^2)
O(n)
O(1)
O(log n)
¿Cuál es la principal ventaja de usar una lista enlazada sobre un array?
Mayor velocidad en la búsqueda
Acceso aleatorio a los elementos
Menor uso de memoria
Facilidad para insertar y eliminar elementos
¿Qué es un algoritmo de ordenamiento estable?
Un algoritmo que mantiene el orden relativo de los elementos iguales.
Un algoritmo que solo funciona con números enteros.
Un algoritmo que siempre ordena en tiempo O(n log n).
Un algoritmo que no utiliza memoria adicional.
¿Cuál es la diferencia principal entre una cola y una pila?
Ambas son estructuras de datos que funcionan igual.
Una cola es LIFO y una pila es FIFO.
Una cola es FIFO y una pila es LIFO.
Una cola permite acceso aleatorio y una pila no.
