Univers id ad de San San Carlo Carlo s de Guatemala. Guatemala. Facultad de Ingeniería. Escuela de Ciencias y Sistemas. Introducci ón a la Programación Programación y Compu tación 1. TERCER EXAMEN PARCIAL
(Segund (S egundo o Semestre 2012 2012 – J ueves 8 de noviem noviembre bre de de 2012) 2012) Se cuenta con 60 minutos minutos para el examen. examen. Utilizar Utilizar únicament únicamente e bolígrafo, cualquier color que no no sea rojo, un solo color en todo el examen. examen. No es posible posible utilizar utilizar celulares, celulares, PDAs P DAs,, o algún otro dispos dispositivo itivo o texto texto que pueda afectar los resultados de esta prueba prueba escrita. Sea claro y limpio en sus respuestas. Nom Nombre:______ :______ _______ ______ _______ _______ ______ _______ _____ ____ Car Carnet: _______ ______ ______ Catedrático: ____________________________________________________ Sección: __________________ TEMA 1 (50 pts) Para las siguientes preguntas seleccione la respuesta que crea válida. Solo puede
seleccionar una respuesta (Factor de corrección: 2 fallos eliminan 1 acierto): 1. a)
Se des desea invertir invertir el orden de de los elementos elementos de una pila. pila. Esto E sto puede hacerse utilizando exclusivamente: exclusivamente: Una cola auxiliar b) Una pila auxiliar c) Ninguna de las anteriores
2. a)
La operación push en una pila agrega agrega un elemento elemento en: La cima b) El fondo c) Ninguna de las anteriores
3. a)
Se des desea invertir invertir el orden de de los elementos elementos de una cola. Esto E sto puede puede hacers hacerse e utilizando utilizando exclusivamente: exclusivamente: Una cola auxiliar y una pila auxiliar. b) Una pila auxiliar. c) Una cola auxiliar
4. a)
Considere Considere la siguiente línea línea de de código: int[] x =new int[12]; int[12]; Seleccione Seleccione la opción válida x[12] x[12] es 0 b) x[0] x[0] es null c) x.length es 12
5. a)
Caracterís Característica tica de una búsqueda binaria. Recorre Recorre la lista uno por uno hasta encontrar el elemento elemento deseado b) Los L os valores de lista lista pueden estar desordenados c) Los valores de lista lista deben estar ordenados
6.
Si tuviera tuviera que ordenar ordenar una gran gran cantidad de datos, ¿ qué algoritmo algoritmo preferiría si quiere minimizar minimizar el tiempo tiempo medio de ejecución? a) Orden Ordenación ación por selección b) Ordenación por inserción c) Ordenación Quick–sort Quick–sort 7. a)
¿ Cuál de de las siguiente siguientes s afirm afirmaciones aciones es falsa? Los arrays sólo pueden contener valores de tipos de datos primitivos primitivos b) Los arrays se pasan pasan a los métodos métodos por referencia c) En J ava, las declaraciones declaraciones int [] v e int v[] v[] son equivalentes
8.
Se tiene un método método de búsqueda lineal que se ejecuta sobre una colección de N datos, siendo N un valor valor grande. Se ha comprobado que, cuando se busca un dato que no está en la colección, la operación de búsqueda tarda t unidades unidades de tiempo en finalizar. ¿ Cuánto tiempo tardará tardará una búsqueda de un dato que sí esté es té en la colección de datos? t/2 unidades de tiempo, aproximadamente b) t unidades de tiempo, aproximadamente c) Entre 0 y t unidades de tiempo, aproximadamente
a) 9.
Se dispone de una colección grande de datos, datos, cada uno de de ellos asociado asociado a una una clave numérica. numérica. Los Los datos no están ordenados. Si se desea realizar una única operación de búsqueda del dato asociado a una clave concreta en la colección, colección, ¿qué ¿ qué forma forma de realizar la búsqueda resultará, en general, más eficiente? a) Ordenar primero primero los datos datos con quick–sort quick–sort y después utilizar búsqueda binaria. b) Utilizar Utilizar búsqueda lineal. c) Utilizar Utilizar búsqueda binaria. 10. Sea una secuencia secuencia que contiene contiene ´únicament ´únicamente e los símb sí mbolos olos “[” y “]” “]”, que pueden estar repetidos y en cualquier orden. Para P ara comprobar que la secuencia secuencia est´a correctament correctamente e construida siguiendo siguiendo la regla de los paréntesis (un paréntesis se cierra con “]” después de abrirlo con “[” y no antes, y hay tantos “]” como “[”) a) Hay que utilizar necesariamente una cola b) Hay que utilizar necesariamen necesariamente te una pila c) No hace falta utilizar ni una pila ni una cola 11. El siguiente método: método: public boolean isEmpty() { return (top <0);
a) 12. a) b) c)
} corresponde con una implementación de pilas basada en: Listas encadenadas b) Arrays c) Ninguna de las anteriores ¿Cuál de las siguientes sentencias es verdadera? Operaciones de I/O en J ava solamente pueden ser realizadas utilizando las clases Listener La clase RandomAccessFile permite moverse directamente dentro de un archivo La creación de una isntancia de la clase File crea un archivo idéntico de forma oculta en sistema operativo hasta cuando se ejecuta el método close.
13. En el siguiente algoritmo de búsqueda: private int search(Comparable[] a, Comparable x, int low, int high) { if (low >high) return -1; int mid =( low +high ) / 2; if (a[mid].compareTo(x) <0) return search(a, x, mid +1, high); else if (a[mid].compareTo(x) >0) return search(a, x, low, mid - 1); else return mid; } a) Es una versión lineal de búsqueda binaria b) Es una versión recursiva de búsqueda binaria versión recursiva de búsqueda lineal
c)
Es
una
14. Usted tiene una clase pública llamada myclass con el método main definido definido de la siguiente forma public static void main(String parm[]){ System.out.println(parm[0]); } Si intenta compilar la clase y ejecutar el programa de la manera siguiente java myclass hello a)
¿Qué sucede? Error en tiempo de ejecución, main no está correctamente definido correctamente definido c) Compila y se imprime en pantalla hello
b) Error de compilación, main no está
15. Dado el siguiente programa: class A { static int x[ ] ={1, 2}; int y[ ]; void f (int z[ ]) {z[1]+=2; } void g ( ) { A a =new A ( ); a.x[0]++; } } class B { public static void main (String args[ ]) { A b =new A ( ); b.y =b.x; b.f (b.y); b.g ( ); System.out.println (b.x[0] +" " +b.x[1]); (1) System.out.println (b.y[0] +" " +b.y[1]); (2) } } ¿Cuál es la salida de la línea (1)? a) 1 2 b) 1 4 c) 2 4 16. En el programa anterior, ¿cuál es la salida de la línea (2)? a) 1 2 b) 1 4 c) 2 4 17. Un determinado algoritmo de ordenación necesita tomar el array de datos a ordenar y colocar a un lado del mismo los datos menores que un dato concreto, y al otro los mayores. ¿ Cuál es este algoritmo?
a)
Quick-sort
b) Bubble-sort
c) Selection-sort
18. Dado un método que implementa búsqueda binaria, ¿ cuál es la diferencia, en media, entre el número de comparaciones necesarias para buscar entre N datos y el número de comparaciones necesarias para buscar entre N/4 datos? a) N/4 comparaciones b) 3N/4 comparaciones c) 2 comparaciones 19. ¿Cuál de las siguientes afirmaciones es falsa en J ava? a) Es posible definir arrays bidimensionales de la forma a[i][j], donde cada fila a[i] puede tener distinta longitud. b) No es posible declarar arrays con memoria estática c) “Hola” es un array. 20. ¿Cuál es la salida del programa si se trata de compilar y ejecutar el siguiente código, pero no existe el archivo llamado Hello.txt en el directorio actual? import java.io.*; public class Mine { public static void main(String argv[]){ Mine m=new Mine(); System.out.println(m.amethod()); } public int amethod() { try { FileInputStream dis=new FileInputStream("Hello.txt"); }catch (FileNotFoundException fne) { System.out.println("No such file found"); return -1; }catch(IOException ioe) { }finally{ System.out.println("Doing finally"); } return 0; } } a) No such file found b) No such file found ,-1 c) No such file found, Doing finally, -1 21. Seleccione cuál de las siguientes sentencias es falsa: a) Un flujo es una conexión entre un programa y una fuente o destino de datos. b) Un flujo de salida maneja los datos que fluyen del programa c) Un flujo de salida puede ser una cámara web 22. Un archivo binario puede ser de texto: a) si contiene solamente texto sin formato
b) si contiene solamente texto
c) Ninguna de las anteriores
23. Un arreglo de n dimensiones o multidimensional. Debe tener al menos a) Dos dimensiones b) Tres dimensiones c) Ninguna de las anteriores 24. ¿Qué código colocaría después del comentario //Inicio del ciclo que podría asignar valores a cada uno de los elementos del arreglo ia[] con un valor de la variable i? public class Lin{ public static void main(String argv[]){ Lin l =new Lin(); l.amethod(); } public void amethod(){ int ia[] =new int[4]; //Inicio del ciclo { ia[i]=i; System.out.println(ia[i]); } } } a) for (int i=0; i
Arreglo:
___Un
arreglo
es
una
colección
finita,
homogénea
(de
valores
del
mismo
tipo).
__ ______ ______ ______ __ ____ __ ____ ____ __ ____ __ ____ ____ __ ____ __ ____ ____ __ ____ __ ____ __ ____ _ __ ____ __ ______ ______ ______ ____ __ ____ __ ____ __ ____ ____ __ ____ ____ __ ____ __ ____ __ ____ __ ____ _ Archivo:
__Un
archivo
o
fichero
informático
es
un
conjunto
de
bits
almacenado
en
un
dispositivo.________ ______ ______ ______ ______ ______ ______ ______ _______ ______ ______ ______ __ __ ______ ______ __ ____ __ ____ __ ____ __ ____ __ ____ ____ ____ __ ____ __ ____ __ ____ __ ____ __ ____ ____ _ Pila: Una pila es un conjunto ordenado de elementos. Estos elementos solamente se pueden acceder por un lugar único o extremo de la pila.____ ___ _____ ___ __ _____ __ ___ ___ ___ ___ ___ ___ ___ ___ _____ __ ___ _ __ ______ ______ __ ____ __ ____ __ ____ __ ____ ____ __ ____ ____ __ ____ __ ____ __ ____ __ ____ ____ __ ____ _ Archivo de texto: _ Los archivos de texto son los formados por caracteres____________________________ __ ____ __ ______ ______ ______ __ ____ __ ____ __ ____ __ ______ ______ __ ____ __ ____ __ ____ __ ____ __ ___ __ ____ __ ______ ______ ______ __ ____ __ ____ __ ____ __ ______ ______ __ ____ __ ____ __ ____ __ ____ __ ___ Lista doblemente enlazada: _listas que poseen nodos que poseen dos apuntadores, uno que apunta hacia el siguiente nodo de la lista y también un nodo que apunta al nodo anterior a la lista__ __ ____ __ ______ __ ____ __ ____ __ ____ __ ____ ____ __ ____ ____ __ ____ __ ____ __ ____ __ ____ ____ __ ____ _ Cola: _Una cola es una estructura de datos que permite el almacenamiento de elementos en una lista y que permite acceder a los mismos por ambos extremos de la lista____ __ __ ___ __ __ __ __ __ __ __ __ __ __ __ __ __ _ __ ____ __ ______ ______ ______ __ ____ __ ____ __ ____ __ ______ ______ ______ ______ __ ____ __ ____ __ ___ Apuntador o puntero: _es una variable que hace referencia a una región de memoria, es una variable cuyo valor es una dirección de memoria___ ___ ___ ___ ____ ___ ___ __ ___ ____ ___ __ ___ ___ ___ ___ ___ ___ ___ __ __ ____ __ ______ ______ ______ ____ __ ____ __ ____ __ ____ ____ ____ __ ____ __ ____ __ ____ __ ____ __ ____ _ Lista simple: _Colección lineal de elementos llamados nodos___ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ _ __ ____ __ ______ ______ ______ __ ____ __ ____ __ ____ __ ______ ______ __ ____ __ ____ __ ____ __ ____ __ ___ __ ____ __ ______ __ ____ __ ____ __ ____ __ ____ __ ____ ____ ____ __ ____ __ ____ __ ____ __ ____ ____ __ ____ _ Nodo: ___elemento de una lista que posee campos de información y al menos un campo apuntador para enlazarse a otros nodos ____ ___ ___ ___ ___ ___ ____ ___ ____ ___ ____ __ ____ ___ ____ ____ ___ ___ ___ ___ __ ______ ______ ______ __ ____ ____ __ ____ __ ____ __ ____ ____ __ ____ ______ ______ __ ____ __ ____ __ ___ Memoria dinámica: _____ La memoria dinámica es un espacio de almacenamiento solicitado en tiempo de ejecución._______________________________________________________________________________ __ ______ ______ __ ____ __ ____ __ ____ __ ____ __ ____ ____ ____ __ ____ __ ____ __ ____ __ ____ __ ____ ____ _