Está en la página 1de 12

14/12/2017 SIETTE ­ Corrección del test

BIM1 Programación de Algoritmos

Solución a la pregunta número 1

Si necesito almacenar en un solo arreglo de arreglos las seis
calificaciones y sus promedios de las actividades adicionales
(Chat, Foro, Cuestionario) de las cuatro materias que tomé éste
ciclo. ¿Cuál de las siguientes definiciones me lo permiten?

Importante: son más de una, las definiciones posible útiles.

int notas[][] = new int[4][6]; 

double notas[6][4] = new double[6][4]; 

double notas[][] = new double[4][7]; 

double notas[4][7] = {{n1, n2, …, n6},{…},{…},{…}} 

int notas[][] = new int[4][7]; 

Solución a la pregunta número 2

Considerando las siguientes instrucciones (arreglo, variable, for
mejorado), ¿cuál de las siguientes afirmaciones es verdadera?:

1 String[] arregloNumeros = {"1", "2", "3", "4"}; ?
2 String total = "";
3 for (String unNumero : arregloNumeros) 
4     total += unNumero;
5 System.out.printf("%s ", total);

En la línea 5 se presenta por pantalla el siguiente resultado: 1234

La línea 1 se la puede reemplazar directamente con: int
arregloNumeros = total
Dentro de la línea 4, total toma iteración a iteración los valores
0, 1, 2 y 3
El parámetro unNumero debe ser de diferente tipo que
arregloNumeros
14/12/2017 SIETTE ­ Corrección del test

Solución a la pregunta número 3

Un arreglo es un grupo de variables (llamadas elementos o
componentes) que contienen valores, todos con el mismo tipo.
Los arreglos son objetos, por lo cual se consideran como tipos por
referencia. Los elementos de un arreglo pueden ser tipos
primitivos o tipos por referencia (incluyendo arreglos).

Con esta aclaración, en el siguiente código existen 
1  declaraciones de arreglo(s) de
tipo por referencia.

1 int variable1; ?
2 int variable2[] = {6,3};
3 int variable3[] = new int[2];
4 int variable4 = 94;

Importante: recordar la definición de un arreglo, e ingresar en el
espacio únicamente un valor numérico.

Solución a la pregunta número 4

En el siguiente flujo se ha codificado e invocado el método
recursivo recursivoA(valor). Ejecute manualmente el código e
indique ¿cuál es el resultado que se obtiene por pantalla?

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;
8     return recursivoA(valor ‐ 1);
9 }

Solución a la pregunta número 5
14/12/2017 SIETTE ­ Corrección del test

Dado el siguiente flujo, es correcto que sigamos codificando
instrucciones (en la línea 4) luego de la sentencia throw (línea de
código 3).

1 public static void metodo1(){ ?
2     System.out.println("Soy metodo1");
3     throw new ArithmeticException();
4     _______ 
5 }

Falso

Verdadero

Solución a la pregunta número 6

Una buena práctica dice: “No declarare variables y arreglos en una
sola línea, ya que no sabrá cuales son los arreglos/matrices y
cuales son variables de tipo primitivo”. Con esta aclaración,
indicar cuales de las siguientes sentencias son correcta para
inicializa a datos2 adecuadamente.

1 double[] datos1 = {‐10.0, .5}, datos2; ?

Importante: debe elegir más de una sentencia como correcta.
Pista: cuando ubicamos junto al tipo de dato los corchetes todo lo demás
separado por comas se define como arreglo/matriz.

datos2 = 5; 

double[ ] datos2 = {1, 4}; 

datos2 = datos1 [2]; 

datos2 = new int[4]; 

datos2[1] = datos1 [3]; 

Solución a la pregunta número 7

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
14/12/2017 SIETTE ­ Corrección del test

en una sola matriz. ¿Cuál de las siguientes definiciones permitirán
dicho fin?

Importante: son más de una, las definiciones posible útiles.

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

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

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

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

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

Solución a la pregunta número 8

Dados los siguientes fragmentos de código, ¿cuáles son los flujos
try – catch que contienen una estructura correcta?

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

1 try { ?
2  
3 }
4 System.out.println("Excepcion atrapada);
5 catch (Exception e) {
6  
7 } finally {
8  
9 }

1 try { ?
2  
3 } catch (ArithmeticException e1) {
4      
5 } catch (Exception e2) {
6      
7 } finally {
8      
9 }

1 try { ?
2  
3 }
4 try {
5  
6 } catch (Exception e) {
7  
8 } finally {
9  
10 }
14/12/2017 SIETTE ­ Corrección del test

1 try { ?
2      
3 } catch (Exception e) {
4      
5 } finally {
6      
7 }

Solución a la pregunta número 9

Dada el siguiente método recursivo, ¿cuál es el valor que retorna
el caso base si desde el main() se lo invoca de la siguiente
manera?

System.out.println(metodoA(5)); 

1 public static int metodoA(int valor) { ?
2     if (valor == 1) 
3         return 1;
4     return valor * metodoA(valor ‐ 1);
5 }

Importante: Ingrese un solo valor numérico entero dentro de la casilla.

Solución a la pregunta número 10

El manejo de excepciones en java se implementa usando el
bloque try­catch, sin embargo, muy pocos desarrolladores hacen
uso del bloque finally, el cual permite _______.

cerrar el programa exitosamente, pero solo si se genera un error
inesperado.
recuperar al programa, de excepciones presentadas
inesperadamente.
recolectar automáticamente la basura generada o evitar fugas de
memoria.
subir a memoria nuevamente el flujo de código perdido en el
bloque try.
14/12/2017 SIETTE ­ Corrección del test

Solución a la pregunta número 11

En la gestión de excepciones: si los problemas potenciales
ocurren con poca frecuencia, al entremezclar la(s) _______ y la
_______ puede degradar el rendimiento del programa, ya que éste
debe realizar pruebas (tal vez con frecuencia) para determinar si
la tarea se ejecutó en forma correcta, y si se puede llevar a cabo
la siguiente tarea.

lógica del programa – lógica del manejo de errores

sentencia try – sentencia catch

sentencia if – sentencia else

estructuras de control – lógica del programa

Solución a la pregunta número 12

¿Cuáles son las diferencias entre los métodos de ordenamiento
burbuja e inserción?

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

Burbuja usa un ciclo repetitivo while para intercambios, el otro
solo un for e if.
Burbuja ubica los elementos ordenamos al inicio del arreglo; el
otro al final.
Burbuja ubica los elementos ordenados al final del arreglo; el otro
al inicio.
Se burbujea el mayor/menor al final del arreglo; el otro inserta al
inicio del arreglo.
Se burbujea el mayor/menor al inicio del arreglo; el otro inserta
de par en par.

Solución a la pregunta número 13
14/12/2017 SIETTE ­ Corrección del test

Dado el siguiente flujo, ¿en qué línea de código se podría lanzar la excepción
InputMismatchException?

1 public static void notas() throws FileNotFoundException ?
2 {
3     Formatter salida = new Formatter("salida.txt");
4     Scanner entrada = new Scanner(System.in);
5     int limite = entrada.nextInt();        
6     //……
7 } 

Solución a la pregunta número 14

Ordenamiento por selección: en la primera iteración, se selecciona
el elemento más pequeño de toda la lista y se intercambia con el
primer elemento; en la segunda iteración, se selecciona el segundo
elemento más pequeño (el restante más pequeño) y se intercambia
con el segundo elemento, y así sucesivamente.

¿Dado lo anterior y el siguiente arreglo, como queda ordenado el
arreglo con el método por selección en la segunda iteración
(intercambio)?

int[] arreglo = {12, 43, 63, 19, 23, 93, 72, 13, 68, 14}; 

12, 13, 63, 19, 23, 93, 72, 43*, 68, 14

12, 13, 14, 19, 23, 93, 72, 43, 68, 63*

12, 13, 14, 19, 23, 93, 72, 43, 68, 63*

12, 13, 43*, 63, 19, 23, 93, 72, 68, 14

Solución a la pregunta número 15

Los siguientes son ejemplos que declaran e inicializan arreglos,
sin embargo, uno de ellos no es correcto, ¿cuál de ellos es?

1 int array1[] = {‐5, 27, 98}; ?
2 char array2[] = {uw, xy, z}; 
3 String array3[] = {"hola", " mundo"};
4 double array4[] = {1.5, 7.8, 2};
14/12/2017 SIETTE ­ Corrección del test

El arreglo que está mal declarado y/o inicializado es el arreglo:
_______

array3

array2

array4

array1

Solución a la pregunta número 16

El bloque try ­ catch permite el tratamiento de excepciones. En el
bloque try se coloca el código que podría _______ la excepción; y
en el bloque catch el código que _______ la excepción.

generar – maneja

manejar – genera

manejar – limpia

capturar – genera

Solución a la pregunta número 17

La ejecución de la instrucción throw en un metodo_X permite indicar al metodo_Y que llamo al
metodo_X, que este metodo_X lanza una excepción de tipo abc.

1 public class TestExcepcion_throw { ?
2     public static void main(String[] args) {
3         int num1 = 60, num2 = 3;
4         System.out.println(promedios(num1, num2));        
5     }
6     public static double promedios(double total, double poblacion){        
7         if (poblacion == 0) 
8             throw new ArithmeticException();
9         else
10             return total / poblacion; 
11     }
12 }

Dada la definición anterior y la clase TestExcepcion_throw con sus dos métodos main y promedio,
ejecute manualmente el programa e indique cuál es la salida por pantalla si en la línea de código 3
inicializamos las variables así: num1 = 60 y num2 = 3
14/12/2017 SIETTE ­ Corrección del test

20

Solución a la pregunta número 18

Con el método de búsqueda binario ¿cuantas particiones se requieren para encontrar
el número 75 en el siguiente arreglo ordenado?

1 int []arreglo = {13,23,24,34,35,36,38,42,47,51,68,74,75,85,97} ?

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

Solución a la pregunta número 19

Un arreglo es:

un grupo de objetos que no guardan valores, sino sus
direcciones en memoria.
un conjunto de elementos cuya longitud podría variar con la
instrucción for mejorada.

una estructura de datos relacionada de longitud variable.

estructuras de datos con elementos de diferente tipo.

Solución a la pregunta número 20

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 _______.
14/12/2017 SIETTE ­ Corrección del test

primitivo

numérico

clase

por referencia

Solución a la pregunta número 21

La excepción ArrayIndexOutOfBoundsException permite
advertir:

el ingreso de valores no validos en métodos de Scanner.

el acceso a un elemento más allá del fin del arreglo.

una división entre cero, lo cual no existe o es indefinido.

una referencia nula en donde se esperaba un objeto.

Solución a la pregunta número 22

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

char caracteres[] = {'j','t','a','p','c','z','b'}; 

Binario

Lineal

Selección

Inserción

Burbuja mejorado

Burbuja
14/12/2017 SIETTE ­ Corrección del test

Solución a la pregunta número 23

La siguiente sentencia declara e inicializa una matriz,
correctamente.

int matriz[ ][ ] = {{4, 1, 7},{2, 6}}; 

Verdadero

Falso

Solución a la pregunta número 24

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 caso base.

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;
8     return recursivoA(valor ‐ 1);
9 }

Solución a la pregunta número 25

Los siguientes flujos (metodo1 y metodo2) permiten obtener el
factorial de un número, pero solo metodo2 lo hace de forma
recursiva. En el metodo1, ¿cual es la línea de código que
equivaldría al caso base del recusivo metodo2?

1 public static int metodo1 (int num) { ?
2     respt = num;
3     do {

4         respt *= (num‐1);  num‐‐;
14/12/2017 SIETTE ­ Corrección del test
4         respt *= (num‐1);  num‐‐;
5     } while (num>1);
6     return respt;
7 }
8  
9 public static int metodo2 (int fact){
10     if (fact<=1)
11         return 1;
12     respt = fact * metodoB(fact‐1);
13     return respt;
14 }

Cuando en la línea 2 se descarga en respt el valor de num.

Cuando en la línea 5 la condición se evalúa como falsa.

Cuando en la línea 5 la condición se evalúa como verdadera.

Cuando la línea 6 retorna el resultado del factorial.

 
Inicio

También podría gustarte