option
Cuestiones
ayuda
daypo
buscar.php

EEDD UJA

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
EEDD UJA

Descripción:
Estructura de datos. Vectores y matrices

Fecha de Creación: 2024/12/15

Categoría: Otros

Número Preguntas: 70

Valoración:(0)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

Los elementos de un vector en C++ no están almacenados en una zona contigua de memoria. v. f.

El método at() en un vector es más seguro que operator[] porque lanza una excepción si el índice está fuera de rango. v. f.

Un vector de tamaño 0 consume memoria en C++. v. f.

La función resize() de un vector elimina elementos existentes si se reduce el tamaño. v. f.

La función clear() borra los elementos de un vector y libera la memoria utilizada. v. f.

La capacidad de un vector en C++ es siempre igual a su tamaño. v. f.

El iterador end() en un vector apunta al último elemento del vector. v. f.

Insertar un elemento en el medio de un vector tiene una complejidad O(1). v. f.

La función shrink_to_fit() reduce la capacidad del vector para ajustarla al tamaño actual. v. f.

Un vector vacío siempre tiene capacidad cero. v. f.

El operador = copia el contenido de un vector a otro. v. f.

std::vector puede usarse para implementar una pila. v. f.

La función swap() de un vector intercambia elementos con otro vector del mismo tipo. v. f.

vector<int> v(5, 10); crea un vector con 10 elementos inicializados en 5. v. f.

Una matriz dinámica se puede implementar usando un puntero a puntero. v. f.

La memoria dinámica para una matriz debe liberarse usando delete[] para cada fila. v. f.

La sintaxis int **a = new int*[3]; reserva espacio para una matriz de 3x3. v. f.

Las matrices en C++ deben ser siempre cuadradas. v. f.

una matriz estática de tamaño [m][n] se almacena en memoria contigua. v. f.

Para acceder al elemento de la segunda fila y tercera columna en int **a, se usa a[1][2]. v. f.

La liberación de una matriz dinámica con puntero a puntero requiere un solo delete[]. v. f.

El acceso a una matriz dinámica es más lento que a una matriz estática. v. f.

En memoria dinámica, el operador delete se usa para liberar un puntero a una matriz. v. f.

Una matriz se puede implementar usando un vector de vectores. v. f.

Una matriz declarada como int arr[3][3] se almacena en filas contiguas en memoria. v. f.

El acceso a elementos en una matriz dinámica tiene complejidad O(1). v. f.

La expresión int **a = new int*[3]; es suficiente para una matriz dinámica completa. v. f.

Para liberar una matriz dinámica correctamente, se debe liberar primero cada fila. v. f.

El acceso a una matriz usando *(a + i) + j es equivalente a a[i][j]. v. f.

Las matrices dinámicas permiten tamaños definidos en tiempo de ejecución. v. f.

std::vector<std::vector<int>> es una forma eficiente de manejar matrices dinámicas. v. f.

El operador [] no puede usarse con punteros a punteros para acceder a matrices dinámicas. v. f.

Un vector en C++ puede almacenar una matriz como un objeto. v. f.

En una matriz dinámica, el puntero base apunta a un bloque contiguo de memoria. v. f.

Un vector<int> puede redimensionarse automáticamente cuando se inserta un nuevo elemento. v. f.

Las matrices dinámicas son más eficientes en términos de memoria que las matrices estáticas. v. f.

Un vector de tamaño n ocupa más memoria que un arreglo estático de tamaño n. v. f.

El operador sizeof aplicado a un vector devuelve el tamaño de todos sus elementos. v. f.

La expresión new int[10] asigna espacio para 10 enteros en el heap. v. f.

La memoria dinámica asignada con new[] debe liberarse con free(). v. f.

Los vectores son más seguros que los arreglos tradicionales en C++ porque evitan el desbordamiento de memoria. v. f.

¿La asignación dinámica de memoria para una matriz bidimensional int **a siempre ocupa memoria contigua?. v. f.

¿Cuál es la diferencia principal entre delete y delete[] en memoria dinámica?. delete libera memoria asignada a un solo objeto. y delete[] libera memoria asignada a un arreglo de objetos. delete libera memoria asignada a un arreglo de objetos . y delete[] libera .memoria asignada a un solo objeto.

En std::vector, la función insert() tiene una complejidad O(1) si se inserta un elemento al inicio del vector. v. f.

La función delete[] puede usarse para liberar la memoria asignada con malloc(). v. f.

Dado std::vector<int> v, después de realizar v.reserve(100), el tamaño del vector será 100. v. f.

¿Cuál es la forma correcta de liberar una matriz dinámica creada con int **a?. delete[] a;. for (int i = 0; i < filas; i++) delete[] a[i]; delete[] a;. free(a);. delete a;.

Dado el siguiente código: std::vector<int> v = {1, 2, 3, 4, 5}; v.insert(v.begin() + 2, 99); ¿Cuál será el contenido del vector después de la operación?. {1, 2, 99, 3, 4, 5}. {1, 99, 2, 3, 4, 5}. {1, 2, 3, 99, 4, 5}.

Dado el siguiente codigo int **a = new int*[3]; for (int i = 0; i < 3; i++) a[i] = new int[3]; ¿Cuántas llamadas a new se realizan?. 3. 6. 4. 1.

¿Qué sucede si se asigna memoria dinámica con new[] y se libera con delete?. Se libera correctamente la memoria. No ocurre nada. Comportamiento indefinido. Provoca una excepción.

Dado un vector std::vector<int> v(10);, ¿cuál es la complejidad de la operación v.push_back(5) si la capacidad del vector no se ha agotado?. O(1). O(n). O(Log n). O(n^2).

Dado el siguiente fragmento de código: int arr[5][5]; cout << *(*(arr + 2) + 3); ¿A qué elemento de la matriz se accede?. arr[2][3]. arr[3][2]. arr[2][2]. arr[3][3].

Si se implementa una matriz dinámica con un vector de vectores, como en std::vector<std::vector<int>> mat;, ¿qué ventaja principal ofrece frente a int **a?. Mejor rendimiento en el acceso a los elementos. Manejo automático del tamaño y de la memoria. Menor consumo de memoria. Menor consumo de memoria.

Una matriz definida como int **a se almacena en una zona contigua de memoria. V. F.

Si la clase A tiene como atributo un vector de punteros al objeto tipo B, entonces entre ellos sólo puede existir una relación de asociación. V. F.

Un vector dinámico es una estructura de datos básica que puede ser utilizada en la implementación de asociaciones y composiciones múltiples cuando no hay restricciones o necesidades especiales en las mismas. v. f.

Una estructura de datos implementada sobre un array que soporte inserciones en cualquier posición es considerada al mismo tiempo como O(n) Y Ω(1). v. f.

La clase A tiene como atributo un mapa de punteros a objetos tipo B, entonces entre ellos puede existir una relación de composición. v. f.

Una matriz definida como int a[3][5] se almacena en una zona contigua de memoria. Verdadero. v. f.

Tanto si una matriz de 100x100 enteros se crea en la pila (int m[100][100]) como si se crea en memoria dinámica (int *m), el acceso al elemento situado en la posición (20, 20) se realiza de la misma manera: cout << m[20][20];. v. f.

Si no es necesario respetar el orden de los elementos de un vector dinámico, entonces el borrado de un dato en una posición arbitraria tiene el mismo orden de complejidad que el borrado en una lista doblemente enlazada. v. f.

El tiempo requerido para iterar sobre un vector y una lista enlazada es el mismo, ya que el orden en ambos casos es O(n). f. v.

En el siguiente código C++ se produce una fuga de memoria o memory leak: int *k = new int[100]; for (int i = 0; i <= 100; ++i) { k[i] = 0; } delete[] k;. v. f.

La implementación normal de un vector dinámico implementó una reducción del tamaño físico tamf a la mitad cuando el tamaño lógico tampoco cae por debajo de tamf/2. v. f.

La siguiente definición de vector estático necesita de constructor copia y operador de asignación: template<typename T> class MiVect { int tama; T *v; public: MiVect(int n) { v = new T[tama = n]; } };. v. f.

La misma clase anterior debe definir así el operador corchete [] para que funcione correctamente (se obvian las comprobaciones de rango): T operator[](unsigned i) { return v[i]; }. v. f.

Si se ha instanciado en la clase Biblioteca a MiVect para implementar una relación de asociación con la clase Libro como: MiVect<Libro*> estante; Entonces el destructor de Biblioteca debe entonces eliminar estante ejecutando: delete[] estante;. v. f.

Un vector de listas es un contenedor válido en términos de eficiencia para implementar una cola con prioridad y un grafo aunque no tanto para una matriz dispersa. v. f.

Un vector estático puede implementar eficientemente pilas y colas estáticas. v. f.

Es peligroso usar un vector dinámico de objetos (no de punteros) si otra clase va a tener una asociación con estos objetos. v. f.

Denunciar Test