📚 DE LIBRE ACCESO · SIN LOGIN

Respuestas modelo

Consulta aquí las respuestas correctas y explicaciones de las autoevaluaciones y los tests del manual. Ideal para repasar antes de un test o aclarar dudas.

111
🎯 autoevaluación
355
📝 test · opción múltiple
111 / 111
✍️ test · abiertas con respuesta
37
temas cubiertos
✕ Limpiar

3.07 · Struct y Archivos

16 preguntas con respuesta en este tema.

🎯 Autoevaluación (3)

1
🎯 AE

¿Qué es un struct en C++?

  • A. Una función
  • B. Un tipo de dato personalizado que agrupa variables relacionadas ✓ CORRECTA
  • C. Un bucle
  • D. Una clase idéntica
💡 Por qué es correcta:

struct agrupa variables de diferentes tipos bajo un nombre. Ej: struct Persona { string nombre; int edad; };

2
🎯 AE

¿Cómo accedes a un campo de un struct?

  • A. Con punto (.) o flecha (->) si es puntero ✓ CORRECTA
  • B. Con corchetes
  • C. Con paréntesis
  • D. Con dos puntos
💡 Por qué es correcta:

persona.nombre accede al campo. Si `Persona* p`, entonces p->nombre.

3
🎯 AE

¿Cómo se abre un archivo para escribir en C++?

  • A. fopen("datos.txt", "r")
  • B. ofstream f("datos.txt"); ✓ CORRECTA
  • C. open("datos.txt");
  • D. file f("datos.txt");
💡 Por qué es correcta:

ofstream (output file stream) abre para escribir. ifstream lee. fstream puede ambas.

📝 Test · Sección A · Opción múltiple (10)

1
📝 MC

¿Qué es un struct en C++?

  • A. Una función
  • B. Un tipo de dato que agrupa variables ✓ CORRECTA
  • C. Un bucle
  • D. Una clase idéntica
💡 Por qué es correcta:

struct agrupa datos heterogéneos bajo un nombre.

2
📝 MC

¿Cómo accedes a un campo de un struct?

  • A. struct->campo
  • B. struct.campo o p->campo si es puntero ✓ CORRECTA
  • C. struct[campo]
  • D. struct::campo
💡 Por qué es correcta:

Persona p; p.nombre. Persona* ptr; ptr->nombre.

3
📝 MC

¿Cómo defines un struct en C++?

  • A. type Persona { }
  • B. struct Persona { string nombre; int edad; }; ✓ CORRECTA
  • C. Persona struct { }
  • D. Persona { }
💡 Por qué es correcta:

struct Nombre { tipo campo; ... }; con ; al final.

4
📝 MC

¿Qué hace std::ofstream?

  • A. Lee archivos
  • B. Escribe/crea archivos ✓ CORRECTA
  • C. Compila
  • D. Borra archivos
💡 Por qué es correcta:

ofstream: output file stream, para escribir.

5
📝 MC

¿Qué hace std::ifstream?

  • A. Escribe
  • B. Lee archivos ✓ CORRECTA
  • C. Borra
  • D. Crea
💡 Por qué es correcta:

ifstream: input file stream, para leer.

6
📝 MC

¿Cómo abres un archivo para escribir en C++?

  • A. fopen("a.txt", "r")
  • B. std::ofstream f("a.txt"); ✓ CORRECTA
  • C. file f("a.txt");
  • D. open("a.txt");
💡 Por qué es correcta:

ofstream abre para escribir (crea si no existe, sobrescribe).

7
📝 MC

¿Cómo verificas que un archivo se abrió bien?

  • A. f.good()
  • B. f.is_open() ✓ CORRECTA
  • C. f.ok()
  • D. f.alive()
💡 Por qué es correcta:

is_open() devuelve true si el archivo está abierto correctamente.

8
📝 MC

¿Cómo leer línea por línea en C++?

  • A. f.readLine()
  • B. std::getline(f, linea) ✓ CORRECTA
  • C. f.getline(linea)
  • D. read(f, linea)
💡 Por qué es correcta:

std::getline(istream, string) lee hasta \n.

9
📝 MC

Para leer un struct desde un archivo:

  • A. readFile
  • B. f.read(reinterpret_cast<char*>(&s), sizeof(s)); ✓ CORRECTA
  • C. Solo strings
  • D. No se puede
💡 Por qué es correcta:

Read binario: read reinterpret_cast del struct como bytes.

10
📝 MC

¿Por qué usar archivos en programas?

  • A. Para hacer lento
  • B. Para persistir datos entre ejecuciones ✓ CORRECTA
  • C. Para compilar
  • D. Para debug
💡 Por qué es correcta:

Archivos: los datos sobreviven al terminar el programa.

✍️ Test · Sección B · Preguntas abiertas (3)

11
✍️ AB

Diseña un struct "Estudiante" con nombre, edad, promedio. Escribe un programa que lo lea de un archivo y muestre el mejor promedio.

💡 Por qué es correcta:

struct Estudiante { string nombre; int edad; float promedio; }; ifstream f("alumnos.txt"); Estudiante e; Estudiante mejor; while (f >> e.nombre >> e.edad >> e.promedio) { if (e.promedio > mejor.promedio) mejor = e; } cout << mejor.nombre;

12
✍️ AB

Explica la diferencia entre fopen (C) y ifstream (C++). ¿Cuándo usar cada uno?

💡 Por qué es correcta:

fopen: funciones C, fread/fwrite, FILE*. ifstream: streams C++, operador >> y <<, RAII (se cierra solo). ifstream es más seguro (excepciones), más legible. fopen solo en código C existente.

13
✍️ AB

¿Qué ventajas tiene leer/escribir structs completos vs campo a campo?

💡 Por qué es correcta:

Completo: menos código, más rápido (una operación). Campo a campo: más flexible (puedes omitir campos, calcular sobre la marcha), compatible con archivos de texto legibles. Para binarios: completo. Para texto: campo a campo.

📝 ¿Listo para evaluarte?

Regístrate o inicia sesión para tomar la autoevaluación o el test de este tema y registrar tu puntaje.