ESTRUCTURA DE DATOS
► 30 preguntas solucionadas: ESTRUCTURA DE DATOS: Examen Universitario
Pregunta 1
Pregunta 2
Pregunta 21.
Las variables son utilizadas por los programadores para almacenar datos de diferentes tipos según sea el caso, podemos diferenciar entre ellas las variables estáticas y las dinámicas.
De a cuerdo a lo anterior se tienen algunas características que identifican el tipo de variable así: el tipo de variable de las cuales pueden ser creadas y destruidas durante el tiempo de ejecución de un módulo o de un programa; así como también este tipo de variable no presentan un tamaño fijo predefinido por el programador porque este es asignado de acuerdo como se requiera.
De acuerdo a lo anterior identifique entre las siguientes opciones el tipo de variable que cumple con estas características.
Seleccione una respuesta.
a. Variables dinámicas Respuesta Correcta
b. Arreglos multidimencionales
c. Arreglos unidimencionales
d. Variables estáticas
Muy bien su respuesta es correcta las variables dinámicas se pueden crear y destruir en tiempo de ejecución de un programa.
Pregunta 2
Seleccione uno de los siguientes temas que es tratado ampliamente en esta, la unidad uno.
Seleccione una respuesta.
a. Colas
b. Operadores New y Delete Respuesta Correcta
c. Árboles
d. Lista Lineal
Su respuesta es correcta, New y delete son operadores de c++ para la gestión dinámica de memoria y se trata en la unidad uno.
Pregunta 3.
Las
estructuras de datos dinámicas permiten asignar memoria en tiempo de ejecución
de acuerdo a lo anterior ¿Cuál es el límite de memoria dinámica que se puede
asignar a un objeto de un programa que se encuentre en ejecución?.
Seleccione
una respuesta.
a. Depende del operador de C++ o de la función
de C. que esté implementando en el programa para la gestión de memoria
b. Depende del tipo de dato del objeto que haga la reserva de memoria
c. Depende del compilador que ama esté
utilizando en la compilación del progr
d. El limite para la asignación dinámica puede ser tan grande como la cantidad de memoria física de su computadora Respuesta Correcta
Muy bien su respuesta es correcta, en una estructura de datos la memoria se asigna dinámicamente tanto como sea necesario.
Pregunta 4.
Las
preguntas que encontrará a continuación constan de una afirmación VERDADERA
(tesis) y dos postulados, identificados con los números I y II. Usted debe
analizar si los postulados se deducen lógicamente de la afirmación.
Tesis:
Una estructura lineal tipo Cola puede definirse como una colección ordenada de
elementos del mismo tipo, con la limitante que solo se puede acceder por los
dos extremos, es decir las inserciones se realizan por el final y eliminaciones
se realizan por el inicio de la cola.
Postulados:
I.
Las colas son conocidas como Listas FIFO, es decir el primero que ingresa es el
primero que se elimina de la lista. La eliminación de los elementos debe
hacerse en el mismo orden de su inserción.
II.
Las operaciones en detalle que se pueden realizar con una cola son: acceder al
primer elemento de la Cola para eliminarlo, añadir un elemento al final de la
Cola, vaciar la Cola.
Seleccione
una respuesta.
a. De la tesis solo se deduce el postulado I. Respuesta Correcta
b. De la tesis se deducen los postulados I y
II.
c. Ninguno de los postulados se deduce de la
tesis.
d. De la tesis sólo se deduce el postulado II.
Pregunta 5.
La
pregunta que encontrará a continuación consta de una afirmación y una razón
unidas por la palabra PORQUE. Usted debe juzgar tanto el grado de verdad o
falsedad de cada una de ellas como la relación existente entre las mismas.
En
la implementación de las estructuras dinámicas lineales tipo cola se usa Un
puntero del mismo tipo de la estructura que es utilizado como enlace al
siguiente elemento de la cola, al igual que una lista enlazada PORQUE Un
puntero es una variable que en su contenido guarda la dirección de otra
variable a la que apunta, además, las variables de tipo puntero son utilizadas para
la implementación de estructuras dinámicas porque pueden ser creadas y
liberadas en tiempo de ejecución.
Seleccione una respuesta.
a.
La afirmación y la razón son VERDADERAS y la razón es una explicación CORRECTA
de la afirmación.
b.
La afirmación y la razón y la razón son VERDADERAS, pero la razón NO es una
explicación CORRECTA de la afirmación. Respuesta Correcta
c. La afirmación es FALSA, pero la razón es
una proposición VERDADERA.
d. La afirmación es VERDADERA, pero la razón
es una proposición FALSA.
Pregunta 6.
Analice la siguiente declaración char *nombre[]; corresponde a la declaración de:
Seleccione una respuesta.
a. Un arreglo de caracteres Respuesta Correcta
b. Un apuntador a apuntador
c. Un arreglo de apuntadores
d. Un arreglo de arreglos
Pregunta 7.
Las
listas circulares presentan algunas ventajas respecto de las listas enlazadas
simples una de ellas es que cada nodo de una lista circular es accesible desde
cualquier otro nodo de ella. Es decir, dado un nodo se puede recorrer toda la
lista completa. Sin embargo se pueden presentar algunos inconvenientes en su
implementación.
De las siguientes opciones seleccione la que hace referencia a
la dificultad que puede presentar su uso.
Seleccione
una respuesta.
a. Una lista enlazada de forma simple sólo es posible recorrerla por completo si se parte de su primer nodo
b. Las operaciones de concatenación y división
de listas no se pueden realizar con listas circulares
c. Se puede presentar dificultad en las
operaciones de Insurrección y búsqueda de un nodo
d. Se pueden producir lazos o bucles infinitos Respuesta Correcta
Pregunta 8.
Para
la implementación de una cola se define la siguiente estructura llamada cola
que almacena registros de personas como el nombre y la edad; siendo esta una
característica de las estructuras al almacenar datos de diferente tipo en un
solo registro así mismo se declaran tres apuntadores del mismo tipo de la
estructura que se utilizaran en la implementación para a gestionar la cola.
struct cola{
char
nombre[15];
int
edad; struct cola *sig;
}*frente,*final,
*auxiliar;
Del
análisis del fragmento de código que define una la estructura se puede inferir
algunas consideraciones así:
Seleccione
al menos una respuesta.
a. Las variables *frente, *final y *auxiliar
son miembros de la estructura cola
b. Las variables nombre[15], edad y *sig son
instancias de la estructura cola
c. Las variables *frente, *final y *auxiliar
son instancias de la estructura cola Respuesta Correcta
d. Las variables nombre[15], edad y *sig son
miembros de la estructura cola Su respuesta es correcta, las variables *frente,
*final y *auxiliar son instancias de la estructura cola mientras que las
variables nombre[15], edad y *sig son miembros de la estructura cola
Pregunta 9.
El
siguiente fragmento corresponde a parte del código de una pila, Sabiendo que
las variables inicio y punt son apuntadores, determine cuál de las siguientes
opciones es la operación que realiza la siguiente función.
void Función (void)
{
if (punt==NULL)
{
clrscr();
printf("NO
HAY ELEMENTOS A LISTAR");
}
else
{
clrscr();
inicio=punt;
while
(inicio!=NULL)
{
cout<<"Numero:
"<<inicio->numero<<endl;
inicio=inicio->sig;
}
}
Seleccione
una respuesta.
a. Elimina un elemento de la pila
b. Insertar un elemento en la pila
c. Visualiza el contenido de la pila Respuesta Correcta
d. Busca un elemento de la pila
Pregunta 10.
Para
la implementación de una estructura de datos condicionada tipo Pila, paso a
paso con apuntadores, intervienen algunos aspectos que hacen parte y
complementan la implementación ellos son:
Seleccione
al menos una respuesta.
a. Un puntero para ligar o enlazar los
elementos de la pila Respuesta Correcta
b. Un menú para la interacción de las opciones
del programa
c. Una estructura que permite almacenar
diferentes tipos de datos Respuesta Correcta
d. Utilizar funciones para implementar las
operaciones a realizar con la Pila.
Pregunta 11.
En
la siguiente instrucción de código se declara una estructura para la
implementación de una pila que almacenará números de tipo entero.
struct pila{
int numero;
struct pila *sig;
}*inicio,*c;
A continuación se presenta el código de la
definición de la función insertar, la cual permite insertar datos a la pila.
void insertar (void){
inicio=new struct pila;
cout<<"Digite el dato de tipo
ENTERO: ";
cin>>inicio->numero;
if (c==NULL)
{
c=inicio;
inicio->sig=NULL;
}
else
{
inicio->sig=c; c=inicio;
}
}
Si se quiere reemplazar el operador new por la
función malloc()para la gestión dinámica de memoria ¿Cuál sería la instrucción
correcta?.
Seleccione
una respuesta.
a. inicio=(struct pila *)malloc(sizeof(struct
pila));Respuesta Correcta
b. inicio=(struct
pila *)malloc(sizeof(int pila));
c. inicio=malloc() struct pila;
d. inicio=(int pila *)malloc(sizeof(int));
Muy bien su respuesta es correcta, porque la función malloc() recibe como argumento a struct pila como el tipo del objeto que se va asignar y devuelve un apuntador a un objeto del mismo tipo, es decir de struct pila.
Pregunta 12.
Una vez que esté editado y codificado el programa en C++, se procede a la compilación. ¿Qué puede ocurrir después de la compilación?.
Seleccione una respuesta.
a. De forma Automática se presenta la ejecución del programa
b. se detectan los errores léxicos y sintácticos en caso que existan Respuesta Correcta .
c. La compilación solo permite guardar el código con la extensión .cpp
d. Se muestra el resultado en pantalla
Muy bien su respuesta es correcta, después de la compilación se muestran posibles errores se sintaxis en caso que existan
Pregunta 13.
Analice
el siguiente código, haga una prueba de escritorio y determine entre las
opciones de respuesta, el valor que toman las tres variables (*x,**y,a) al
finalizar el programa en su salida en pantalla.
void main(){
int a=10,*x,**y;
x = &a;
*x = 20;
y
= &x ;
**y
+= *x;
cout << "El valor de a
es:"sig; free(inicio);
}
}
Seleccione una respuesta.
a. Las tres variables muestran el valor de 30
b.
La variable a muestra el valor 10, la variable *x y la variable **y muestran el
valor de 20
c.
Las tres variables muestran el valor de 40 Respuesta Correcta
d.
La variable a muestra el valor 10, la variable *x y la variable **y muestran
solo muestran direcciones de memoria.
Pregunta 14.
En las características de las estructuras
lineales tipo Colas se dice que es una estructura de datos lineal condicionada
o limitada porque:
Seleccione
una respuesta.
a. Se elimina por el inicio y se inserta por
el final Respuesta Correcta
b. Se inserta y se elimina por el final
c. Ultimo en llegar primero en salir
d. Se inserta y se elimina por el inicio
Pregunta 15.
El siguiente fragmento de código fuente,
corresponde a una parte de la implementación de una pila, Sabiendo que las
variables inicio y c son apuntadores y numero es un miembro de la estructura;
determine cuál de las siguientes opciones es la operación que realiza la
siguiente función.
void Función (void)
{
if (c==NULL)
{
n clrscr();
printf("NO
HAY ELEMENTOS EN LA PILA");
getch();
}
else
{
inicio=c;
cout<<"El dato a eliminar es:
"<numero; delay(1000);
c=c->sig;
free(inicio);
}
}
Seleccione
una respuesta.
a. Insertar datos a la pila
b. Eliminar datos de la pila Respuesta Correcta
c. Visualizar datos de la pila
d. Recorrer la pila
Pregunta 16.
La
Unidad uno del módulo está identificada como Memoria dinámica, la cual tiene
como objetivo profundizar en aspectos básicos en apuntadores y la asignación
dinámica de memoria.
De acuerdo a lo anterior, identifique entre las siguientes
opciones la temática que NO hace parte de esta unidad.
Seleccione una respuesta.
a. Listas Lineales Respuesta Correcta
b. Gestión dinámica de memoria
c. Apuntadores
d. Operadores y funciones para la gestión dinámica
de memoria.
Muy bien esta temática no corresponde al unidad uno es de la unidad dos
Pregunta 17.
La
memoria del computador es utilizada para almacenar información de diferentes
tipos esta esta dividida en segmentos que almacenan ceros y unos conocido como
información digital. De acuerdo a lo anterior es importante saber
¿cuánto
espacio medido en Bites se requiere para almacenar el numero 258 que es un dato
de tipo short int o entero corto?
Seleccione
una respuesta.
a. 8 Bits
b. 16 Bits Respuesta Correcta
c. 32 Bits
d. 64 Bits
Su respuesta es correcta, para almacenar un entero corto se requieren 16 bits
Pregunta 18.
Las estructuras de datos lineales son representadas a través de listas enlazadas con el uso de apuntadores y por medio de arreglos unidimencionales. La razón primordial para que en su implementación se haga uso de los apuntadores obedece a:
Seleccione una respuesta.
a. permiten almacenar mucho más información que un arreglo
b. La gestión dinámica de memoria. Respuesta Correcta
c. Permite almacenar datos de diferentes tipos
d. Ocupan menos espacio en memoria que una variable normal
Pregunta 19.
Apuntador,es
uno de los temas claves tratados en la unidad uno, seleccione entre las
siguientes opciones la definición de apuntador mas apropiada.
Seleccione
una respuesta.
a. Variable dinámica que solo guarda datos de
tipo foat
b. Variable estática utilizada para almacenar
cualquier tipo de datos
c. Variable estática que guarda la dirección
de memoria de otra variable de cualquier tipo de dato
d. Varible que guarda la dirección de memoria
de otra variable del mismo tipo de datos a la que apunta Respuesta Correcta
Los apuntadores guardan direcciones de memoria del mismo tipo de datos a la que apunta
Pregunta 20.
En
la unidad uno se llama Memoria Dinámica y está dividida en tres capítulo, en
uno de ellos se aborda la temática de Apuntadores. teniendo en cuenta lo
anterior identifique entre las siguientes opciones la forma correcta de
declarar una variable apuntador llamada valor de tipo float o punto flotante.
Seleccione
una respuesta.
a. float *valor; Respuesta Correcta
b. char *valor;
c. int *valor;
d. float valor;
Muy bien, se declara a valor como un apuntador de tipo float
La
memoria del computador esta dividida en segmentos que almacenan ceros y unos
conocido como información digital, por lo cual es un recurso invaluable que se
debe optimizar ya que es utilizada para almacenar información de diferentes
tipos y cada vez la información adquiere un peso mayor debido a la utilización
de la multimedia.
Si se requiere almacenar un valor de tipo float, es decir de
punto flotante como por ejemplo el total de una factura o el costo de una
inversión que puede ser un valor de 2346.78
¿Cuántos bits de memoria requiere
para almacenar este valor?.
Seleccione una respuesta.
a. 64 Bits
b. 32 Bits Respuesta Correcta
c. 16 Bits
d. 8 Bits
Su respuesta es correcta para un dato de tipo float se requieren 32 bits que equivalen a 4 bytes
Pregunta 22.
Analice
las siguientes lineas de códigos y determine que representa la instrucción de
la linea 4, free(ptr); de acuerdo a las siguientes opciones.
Void main{
int *ptr;
ptr = (int*)malloc
(sizeof(int) );
free(ptr);
}
Seleccione
una respuesta.
a. Se asigna memoria al apuntador ptr
b. Se libera la memoria asignada previamente
al apuntador ptr Respuesta Correcta
c. Se libera la memoria asignada a través de
la función Delete
d. Se reserva memoria a través del operador
free
Muy bien, su respuesta es correcta, la instrucción free(ptr); libera la memoria asignada previamente al apuntador ptr.
Pregunta 23.
El
valor almacenado en un apuntador es:
Seleccione
una respuesta.
a. Una variable de cualquier tipo
b. Un dato de tipo char
c.
Una constante
d. Una dirección de memoria Respuesta Correcta
Muy bien su respuesta es correcta, un apuntador almacena direcciones de memoria.
Pregunta 24.
Una
de las siguientes asignaciones de memoria es correcta, sabiendo que ptr es un
puntero de tipo entero cual es?:
Seleccione
una respuesta.
a. ptr = (int*)malloc ( 300*sizeof(char) ).
b. ptr = (int*)malloc ( 500*sizeof(int) ); Respuesta Correcta
c. ptr = (char*)malloc ( 300*sizeof(char) ).
d. ptr = (char*)malloc ( 300*sizeof(int) ).
Muy bien, su respuesta es correcta,
la instrucción ptr = (int*)malloc(500*sizeof(int)); permite asignar un numero
determinado de memoria para un dato de tipo entero.
Pregunta 25.
Cuan
do se declara int x, *a, **b; indica que x es una variable de tipo entero, *a
es un apuntador que devuelve un dato de tipo entero;
¿Qué significa la
declaración int **b?
Seleccione
una respuesta.
a. Se declara a b como un apuntador a
apuntador que devuelve un dato de tipo entero; Respuesta Correcta
b. Se declaran dos apuntadores b
para almacenar direcciones de memoria de datos de tipo entero;
c.
Se declara a b como un apuntador que devuelve un dato de tipo entero;
d.
Se declara a b como un apuntador que devuelve un dato de cualquier tipo;
Muy bien su respuesta es correcta, Se declara a b como un apuntador a apuntador que devuelve un dato de tipo entero;
Pregunta 26.
Cuando
se realiza la asignación dinámica de memoria haciendo uso de la función
malloc() en la sintaxis del código la función malloc() hace uso del operador
sizeof el cual es requerido por esta función para:
Seleccione
una respuesta.
a. Determinar el número de bytes que se requiere reservar Respuesta Correcta
b. Devolver el tipo de dato y el tamaño de la
memoria reservada por malloc()
c. Indicar que se debe liberar la memoria
previamente asignada
d. Indicar que hay suficiente espacio en memoria
Muy bien su respuesta es correcta, el
operador sizeof indica los bytes requeridos en la reserva de memoria.
Pregunta 27.
El siguiente fragmento de código hace referencia a una función utilizada en la implementación de una estructura de datos tipo pila.
void funcion(void) {
primero=(struct pila *)malloc(sizeof(struct pila));
cout<<"Digite Nombre de Computadora o Equipo:";
cin>>primero->equipo;
if(x==NULL)
{ x=primero;
primero->sig=NULL;
}
else
{ primero->sig=x; x=primero;
}
}
Realice un análisis del código propuesto e identifique entre las siguientes opciones de operaciones que se pueden realizar con las pilas a cual de ellas corresponde. Puede hacer uso de una prueba de escritorio.
Seleccione una respuesta.
a. La función permite visualizar los elementos de la pila
b. La función permite localizar elementos de la pila
c. La función permite insertar elementos a la pila Respuesta Correcta
d. La función permite eliminar los elementos de la pila
Pregunta 28.
En
un entorno de programación C++ el termino Biblioteca se refiere a:
Seleccione
una respuesta.
a. El conjunto de libros coleccionados disponibles para aprender el lenguaje.
b. Es el conjunto de funciones que se declaran
en el desarrollo de un programa codificado en C++.
c. El conjunto de variables que se declaran en
un programa codificado en C++
d. El conjunto de funciones pre compiladas que contienen utilidades para facilitar la programación Respuesta Correcta
Muy bien su respuesta es correcta, las bibliotecas son también llamados archivos de cabecera que se incluyen en las primeras líneas del código.
Pregunta 29.
Las estructuras de datos se clasifican en estructuras lineales y estructuras no lineales, de acuerdo a lo anterior indique ¿Cual de las siguientes opciones no es considerada una estructura de datos lineal?
Seleccione una respuesta.
a. Árboles Respuesta Correcta
b. Colas
c. Pilas
d. Lista doblemente enlazada
Muy bien su respuesta es correcta, los árboles son estructura de datos no lineales.
Pregunta 30.
En C++ se pueden declarar variables
dependiendo el ámbito de visibilidad, es decir en que momento se puede acceder
a ella. Existen tres tipos de variables: Locales, globales y estáticas. De
acuerdo a lo anterior, identifique entre las siguientes características la que
corresponda a las variables globales.
Seleccione
una respuesta.
a.
Son variables que se definen dentro del cuerpo de una función, y solo puede ser
llamada dentro de la función donde se declaró.
b. Son variables que no pueden ser llamadas o
utilizadas por ficheros externos en un programa
c. Son variables que se declaran con el modificador static que quiere decir que se asigna una posición en memoria.
d. Son variables que se definen fuera del cuerpo de las funciones y esto hace que estén visibles o disponibles desde cualquier lugar del programa. Respuesta Correcta
Muy bien su respuesta es correcta, las variables globales pueden ser llamadas inclusive por otras funciones.
Pregunta 31.
Un estructura de datos tipo cola puede ser implementada a través de arreglos o listas ligadas. A continuación se presenta la estructura que se utiliza para implementar una cola por medio de una lista ligada en la cual se almacenan placas de vehículos:
struct cola
{ char placa[6];
struct cola sig;
} *CAB=NULL,*P, *Q;
Identifique cuál es el problema en la definición de la estructura:
Seleccione una respuesta.
a. Error en la definición del puntero que sirve de enlace al siguiente elemento de la lista Respuesta Correcta
b. El puntero CAB nunca puede inicializarse en NULL
c. Los punteros CAB, P y Q sobran pues nunca se usan
d. La placa debería dividirse en parte de letras y parte numérica
Publicar un comentario
0 Comentarios