Está en la página 1de 16

BIM1 Programación de Algoritmos

((750308))

Solución a la pregunta número 1

En total, ¿cuántos son los valores numéricos reales que pueden ser almacenados entre todas
las siguientes variables?
?
1 double variableA[] = new double[11];
2 Scanner varaibleB[];
3 double variableC[][] = new double[3][3];

11,0,3

Importante: Ud. solo debe ingresar dentro de la casilla un único valor numérico.

Solución a la pregunta número 2

La declaración de variables y arreglos, no se deben realizar en una


sola línea, ya que ello presta a confusiones al no saber cuál es el
arreglo/matriz y cuales son variables de tipo primitivo.

Falso

Verdadero

Solución a la pregunta número 3

La clase _______ permite ordenar, buscar, comparar, insertar, copiar,


etc. elementos dentro de los _______.

Arrays – arreglos

Exception – arreglos

Throwable – arreglos
Arrays – registros

Solución a la pregunta número 4

Los arreglos son estructuras de datos que contienen elementos de


datos relacionados del mismo tipo primitivo o por referencia, aunque
las estructuras de datos (arreglos) son considerados como datos de
tipo _______.

numérico

por referencia

primitivo

clase

Solución a la pregunta número 5

Una estación climática proporciona un par de temperatura diarias


(máxima, mínima), no es posible que alguna o ambas temperaturas
sea 9 grados.

Con este requerimiento y la siguiente definición de la matriz para


almacenar las N temperaturas. ¿Cuál de las siguientes condiciones
permiten validar/filtrar las temperaturas con 9 grados?

int temperatura[][] = new int[nTemp][2];

En donde:

 contador (nTempx, 0) para la temperatura máxima.


 contador (nTempy, 1) para la temperatura mínima.

if (temperatura[i][0] == 9 AND
temperatura[i][1] == 9)

if (temperatura[i][0] == 9 OR
temperatura[i][1] == 9)

if (temperatura[i][0] == 9 &&
temperatura[i][1] == 9)

if (temperatura[i][0] == 9 ||
temperatura[i][1] == 9)

Solución a la pregunta número 6

Dado el siguiente flujo de código, ubicarse en la línea de código nro. 6 (bloque vacío try) y
evaluar cual es la Excepción que se Captura dentro de cada catch si se lanza (explicita o
implícitamente) cada una de las excepciones listadas.

?
1
2 public static void main(String[] args) {
3 Scanner teclado = new Scanner(System.in);
int valor1, valor2 = 0, resultado;
4 int arr[] = new int[2];
5 try {
6
7 } catch (InputMismatchException inputMismatchException) {
8 System.err.println("Error de inputMismatchException");
} catch (ArithmeticException arithmeticException) {
9
System.err.println("Error de arithmeticException");
10 } catch (ArrayIndexOutOfBoundsException arrayIndexOutOfBoundsException) {
11 System.err.println("Error de arrayIndexOutOfBoundsException");
12 } catch (IOException ioException) {
13 System.err.println("Error de ioException");
} catch (Exception exception) {
14 System.err.println("Error de exception");
15 }
16 }
17
18

EXCEPCIONES CAPTURADAS
1. inputMismatchException
2. arithmeticException
3. arrayIndexOutOfBoundsException
4. ioException
5. exception

EXCEPCIONES LANZADAS
v. Scanner fileTest = new Scanner(new File("FileTest.txt"));
w. arr[2] = 9;
x. resultado = valor1 / valor2;
y. valor1 = teclado.nextInt();
z. throw new RuntimeException();

1–v; 2–w; 3–x; 4–y; 5–z.

1–y; 2–x; 3–w; 4–z; 5–v.

1–y; 2–w; 3–x; 4–v; 5–z.

1–y; 2–x; 3–w; 4–v; 5–z.

Solución a la pregunta número 7

Dado el siguiente flujo, la excepción lanzada debido a la condición i <= notas.length (línea
15) es:

?
1 public static void main(String[] args) {
2 int notas[] = new int[2];
try {
3 ingresoDatos(notas);
4 } catch (ArrayIndexOutOfBoundsException e1) {
5 System.out.println("Arreglo fuera de rango");
6 } catch (Exception e2) {
7 System.out.println(e2.getMessage());
}
8 }
9
10 public static void ingresoDatos(int notas[])
11 throws ArrayIndexOutOfBoundsException {
12 Scanner entrada = new Scanner(System.in);
for (int i = 0; i <= notas.length; i++) {
13 notas[i] = entrada.nextInt();
14 }
15 }
16
17
18

InputMismatchException

ArithmeticException

ArrayIndexOutOfBoundsException

Exception

Solución a la pregunta número 8

Dado el siguiente flujo de código, indicar cual es la afirmación que se cumple al respecto de
las buenas y malas prácticas en el manejo de excepciones:
?
1
2 Scanner teclado = new Scanner(System.in);
double respt, num1, num2;
3 num1 = teclado.nextDouble();
4 num2 = teclado.nextDouble();
5 try {
6 respt = num1 / num2;
} catch (ArithmeticException arithmeticException) {
7 } catch (Exception exception) {
8 }
9

Especificar una lista de parámetros de excepción separada por comas dentro de


un catch.

Usar como nombre de parámetro de excepción uno que refleje el tipo de


excepción, fomenta la claridad.
Es error de sintaxis colocar código entre un bloque try y su correspondiente
bloque catch.

Una excepción no atrapada ocurre cuando no hay bloques catch que coincidan.

Solución a la pregunta número 9

Dado el siguiente código, ¿cuáles son los conceptos que se aplica a dicho escenario/flujo.?

?
1
try {
2 int respt = 0, a =3, b=0;
3 respt = b!=0 ? a/b: 0;
4 respt = a / b;
5 } catch (Exception e) {
System.out.println(e.getMessage());
6 }
7

Importante: Ud. debe elegir más de una alternativa como respuesta correcta.

Genera repeticiones.

Impide excepciones.

Previene excepciones.

Lanza excepciones.

Maneja excepciones.

Solución a la pregunta número 10

¿Qué es la fuga de recursos cuando hablamos de excepciones?

Cuando un programa en ejecución no libera apropiadamente recursos


innecesarios.

Cuando la memoria está ocupada al 100% y ya no se pueden levantar


más procesos.
Cuando un programa se interrumpe o se queda congelado.

No capturar todas las posibles excepciones.

Solución a la pregunta número 11

Las excepciones propias (nuevos tipos de excepciones) deben


heredarse de la clase _______ para que sean excepciones no
verificadas; o de la clase IOException u otras (por ejemplo), para que
sean excepciones _______.

Exception – verificadas

IOException – no verificadas

RuntimeException – no verificadas

RuntimeException – verificadas

Solución a la pregunta número 12

Al codificar los siguientes métodos/algoritmos, se puede aplicar


técnicas recursivas en: _______.

Importante: elija más de una alternativa como correcta.

Factorial, Fibonacci, Máximo común divisor

Calculo de sueldos, porcentajes de IVA

Presentación de matrices, manejo de excepciones

Torres de Hanoi, Búsquedas lineal y binaria


Solución a la pregunta número 13

En el siguiente flujo se ha codificado e invocado el método recursivo recursivoA(valor).


Analícelo e indique en que línea de código se encuentra codificado el paso recursivo.

?
1
public static void main(String[] args) {
2 System.out.println(recursivoA(3));
3 }
4
5 public static int recursivoA(int valor) {
6 if (valor == 1)
7 return valor + 2;
return recursivoA(valor - 1);
8 }
9

Solución a la pregunta número 14

La recursividad indirecta es:

Si Método A recursivo llama al B, y este vuelve a llamar al A, hasta


un caso base.

Llamar al Método A dentro del Método A, n veces, hasta llegar a un


caso base.

La forma por la cual, el Método A, llama de manera especial


al Método B.

Llamar al Método B en el Método A, n veces, hasta llegar a un caso


base.

Solución a la pregunta número 15

Con el método de búsqueda binario, ¿cuantas iteraciones se requieren


para encontrar el número central vector[7] (elemento octavo) del
siguiente arreglo?:

int[] vector =
{1,4,7,8,9,14,23,47,56,60,61,63,65,66,68};

arreglo.length() / 3;

arreglo.length() – 1;

arreglo.length()

Solución a la pregunta número 16

Para obtener la longitud de un arreglo unidimensional o


multidimensional se puede usar la instrucción length. Si se trata de
una matriz que no es cuadrada, las siguientes instrucciones nos
permiten obtener:

1. nombMatriz.length: El tamaño de las _______ de la matriz.


2. nombMatriz[indice].length: El tamaño de las _______.

columnas – filas de esa filaíndice

filas – columnas de esa filaíndice

filas – filas de esa columna

columnas – filas de esa columnaíndice

Solución a la pregunta número 17

La instrucción for mejorado permite a los programadores iterar a través de los elementos de
un arreglo o de una colección, sin utilizar un contador. La sintaxis de una instrucción for
mejorado es:
?
1 for ( parametro : nombreArreglo )
2 {
3 instrucciones
4 }

El tipo de dato declarado en parametro debe ser _______ los valores almacenados en el
arreglo nombreArreglo.

long como

String como

del mismo que

diferente a

Solución a la pregunta número 18

Las listas y tablas de valores pueden guardarse en:

variable

métodos

clases

arreglos

Solución a la pregunta número 19

Una empresa tiene diez almacenes y necesita crear un programa que


lea las ventas mensuales de los diez almacenes, calculando los
promedios por almacén y almacenando toda esta información en una
sola matriz. ¿Cuál de las siguientes definiciones permitirán dicho fin?
Importante: son más de una, las definiciones posible útiles.

double ventas[][] = new


double[32][10];

int ventas[][] = new int[32][10];

String ventas[][] = new


String[32][10];

double ventas[32][10] = new


double[32][10];

int ventas[][] = new int[10][15];

Solución a la pregunta número 20

Para que la recursividad termine en un momento dado cada vez que un


método se llame a sí mismo (recursivamente) con una versión más
simple del problema original, la secuencia de problemas cada vez más
pequeños debe converger en un _______. Cuando el método reconoce
el caso base, _______ un resultado a la copia anterior del método.

retorno – genera

método recursivo – converge

caso base – devuelve

paso recursivo – retorna

Solución a la pregunta número 21

Dado el siguiente flujo, ¿Cuál es la variable que ocasiona el desbordamiento de notas[ ] y por
ende la excepción ArrayIndexOutOfBoundsException?.

?
1
2 public static void ingresoDatos(int notas[])
throws ArrayIndexOutOfBoundsException {
3 Scanner entrada = new Scanner(System.in);
4 int suma = 0, promedio = 0;
5 for (int i = 0; i <= notas.length; i++) {
6 notas[i] = entrada.nextInt();
7 suma+=notas[i];
}
8 promedio=suma/notas.length;
9 }
10

Promedio

Importante: Ud. solo debe ingresar el nombre de una de las n variables


declaradas/usadas en el flujo expuesto.

Solución a la pregunta número 22

Dada la siguiente jerarquía de subClases (clases hijas de Throwable), ¿cuál excepción


propia está correctamente definida?

IOException

MiException4

Exception

MiException1
MiException2

MiException3

RuntimeException

Solución a la pregunta número 23

De los siguientes fragmentos de código, ¿cual detecta un error durante el tiempo de


compilación?

Pista: Tiempo de compilación, es diferente a tiempo de ejecución.

?
1 try {
2 int respt = 3/0;
3 } catch (Exception e) {
4 System.out.println("Exception");
5 }

?
1 try {
2 int arreglo1[] = {3, 2, 1};
3 System.out.println(arreglo1[3]);
4 } catch (Exception e) {
5 System.out.println("Exception");
6 }

?
1 try {
2 int arreglo2[] = {3, 2, 1};
3 for(char array : arreglo2)
4 System.out.println(array);
5 } catch (Exception e) {
6 System.out.println("Exception");
7 }

?
1 try {
2 throw new Exception();
3 } catch (Exception e) {
4 System.out.println("Exception");
5 }
Solución a la pregunta número 24

Cuando ocurre una excepción en el bloque try, el control del programa


se transfiere al _______ que maneja el tipo de excepción lanzada;
luego, el control del programa _______ al punto de lanzamiento de la
excepción (bloque try), y continua su flujo secuencial definido.

bloque catch – regresa

bloque catch – no regresa

bloque try – no regresa

try subsecuente – no regresa

Solución a la pregunta número 25

¿En cuál de los siguientes escenarios se recomienda aplicar manejador


de excepciones?

Importante: Ud. debe elegir más de una alternativa.

Conexiones a Bases.

Cualquier error asincrónico.

Cualquier error sincrónico.

División entre cero.

Índices fuera de rango.

Solución a la pregunta número 26


Dado el siguiente flujo, indicar cuál es el resultado que se muestra por pantalla.

?
1 int numeros[] = {-2, 4, 10}, sum = -1;
2 for (int num : numeros) {
3 sum -= num;
4 }
System.out.println(sum);
5

Pista: Verifique bien el operador -=

11

Importante: Ud. únicamente debe ingresar un valor numérico entero en la casilla.

Solución a la pregunta número 27

¿Cuál es el mejor método para buscar dentro del siguiente arreglo?


int []arreglo = {-
3,3,4,35,55,76,78,92,108,150,154,165,701,905,999}

Selección

Lineal

Inserción

Burbuja

Burbuja mejorado

Binario

Solución a la pregunta número 28

El método de búsqueda lineal exige que el arreglo a buscar este


previamente ordenado.
Falso

Verdadero

Solución a la pregunta número 29

¿Cuáles son las diferencias entre los métodos de ordenamiento


burbuja e inserción?

Importante: Ud. debe seleccionar más de una diferencia.

Se burbujea el mayor/menor al inicio del arreglo; el otro inserta de


par en par.

Burbuja usa un ciclo repetitivo while para intercambios, el otro solo


un for e if.

Se burbujea el mayor/menor al final del arreglo; el otro inserta al


inicio del arreglo.

Burbuja ubica los elementos ordenados al final del arreglo; el otro al


inicio.

Burbuja ubica los elementos ordenamos al inicio del arreglo; el otro


al final.

Solución a la pregunta número 30

La siguiente sentencia declara e inicializa una matriz, correctamente.


int matriz[2][3] = {{0, 0, 0},{0, 0, 0}};

Falso

Verdadero

También podría gustarte