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.
2.10 · Modularidad: Scope, Paso por Valor/Referencia y Multi-archivo
16 preguntas con respuesta en este tema.
🎯 Autoevaluación (3)
¿Qué es el "scope" de una variable?
- A. Su tipo de dato
- B. La región del código donde la variable es visible/accesible ✓ CORRECTA
- C. Su valor
- D. Su nombre
Scope: ámbito de visibilidad. Una variable local solo existe dentro de su función. Una global existe en todo el archivo.
¿Qué significa "paso por valor"?
- A. Se pasa la variable original
- B. Se pasa una copia del valor; la original no se modifica ✓ CORRECTA
- C. Se pasa un puntero
- D. Se pasa la referencia
Por valor: la función recibe una copia. Modificar el parámetro no afecta al original.
¿Qué es "paso por referencia"?
- A. Pasar una copia
- B. Pasar la dirección de la variable original; los cambios SÍ afectan al original ✓ CORRECTA
- C. Pasar un número
- D. Pasar un string
Por referencia: la función recibe la variable original. Modificar el parámetro modifica el original. En C++ se usa &.
📝 Test · Sección A · Opción múltiple (10)
¿Qué es el scope de una variable?
- A. Su tipo
- B. La región del código donde la variable es visible ✓ CORRECTA
- C. Su valor
- D. Su nombre
Scope: ámbito. Local (dentro de función) vs global (todo el archivo).
Una variable local existe:
- A. En todo el programa
- B. Solo dentro de la función donde se declara ✓ CORRECTA
- C. En otros archivos
- D. Siempre
Local: solo dentro de la función. Se destruye al salir.
Una variable global existe:
- A. Solo en una función
- B. En todo el archivo (o más si es extern) ✓ CORRECTA
- C. Solo en main
- D. Solo en clases
Global: declarada fuera de funciones. Visible en todo el archivo.
Paso por valor significa:
- A. Se pasa la variable original
- B. Se pasa una copia; cambios no afectan al original ✓ CORRECTA
- C. Se pasa un puntero
- D. Se pasa la referencia
Por valor: copia. Modificar el parámetro no afecta al original.
Paso por referencia significa:
- A. Copia
- B. Se pasa el original; cambios SÍ afectan al original ✓ CORRECTA
- C. Constante
- D. Puntero null
Por referencia: la función opera sobre la variable original.
En C++, ¿cómo se declara paso por referencia?
- A. tipo funcion(tipo x)
- B. tipo funcion(tipo& x) ✓ CORRECTA
- C. tipo funcion(tipo* x)
- D. tipo funcion(const tipo x)
tipo& x es referencia. La función puede modificar x.
¿Qué es multi-archivo en C++?
- A. Un solo archivo
- B. Dividir el código en varios .cpp/.h para mejor organización ✓ CORRECTA
- C. Compilar varias veces
- D. Comprimir archivos
Multi-archivo: separar el código en varios archivos. .h para declaraciones, .cpp para implementaciones.
¿Para qué sirve un header (.h)?
- A. Compilar
- B. Declarar funciones/clases que otros archivos usarán ✓ CORRECTA
- C. Ejecutar
- D. Es un comentario
Header: declaraciones compartidas. #include "mi_header.h".
¿Qué hace #ifndef X / #define X / #endif?
- A. Compila
- B. Evita que un header se incluya múltiples veces ✓ CORRECTA
- C. Ejecuta
- D. Renombra
Include guards: previenen inclusión múltiple del mismo header.
En C++, ¿qué archivo implementa una función declarada en funciones.h?
- A. funciones.h
- B. funciones.cpp ✓ CORRECTA
- C. main.cpp solamente
- D. Cualquiera
Header: declaración. .cpp: implementación. main.cpp: punto de entrada que llama.
✍️ Test · Sección B · Preguntas abiertas (3)
Explica la diferencia entre variable local, global y estática. Da un ejemplo de cada una.
Local: dentro de función, solo visible ahí, se destruye al salir. Global: fuera de funciones, visible en todo el archivo, vive durante todo el programa. Estática: local al scope pero conserva valor entre llamadas.
¿Por qué las variables globales son generalmente una mala práctica?
Estado global: difícil de rastrear, fácil de modificar accidentalmente, rompe encapsulación, problemas en concurrencia, dificulta testing. Mejor: pasar como parámetros o usar clases.
Diseña un sistema multi-archivo en C++ para una calculadora: calculadora.h (interfaz), calculadora.cpp (implementación), main.cpp (uso). Explica qué va en cada archivo.
calculadora.h: declara funciones sumar, restar, multiplicar, dividir (con signaturas). calculadora.cpp: implementa esas funciones. main.cpp: #include "calculadora.h", incluye la lógica del programa principal que llama a las funciones.
📝 ¿Listo para evaluarte?
Regístrate o inicia sesión para tomar la autoevaluación o el test de este tema y registrar tu puntaje.