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.09 · Funciones: Definición, Parámetros y Retorno
16 preguntas con respuesta en este tema.
🎯 Autoevaluación (3)
¿Qué es una función?
- A. Un tipo de variable
- B. Un bloque de código reutilizable que puede recibir parámetros y devolver un valor ✓ CORRECTA
- C. Un bucle especial
- D. Un comentario
Función: bloque con nombre que encapsula lógica, acepta parámetros y opcionalmente retorna un valor.
En C++, ¿qué indica `void` en una función?
- A. Que la función no existe
- B. Que la función no retorna ningún valor ✓ CORRECTA
- C. Que la función no recibe parámetros
- D. Que es privada
void significa "sin tipo de retorno". La función ejecuta acciones pero no devuelve nada (usa return; o nada).
¿Qué es el "return" de una función?
- A. Una palabra clave que termina la función y opcionalmente devuelve un valor ✓ CORRECTA
- B. Un tipo de bucle
- C. Una variable
- D. Un comentario
return expresión; termina la función y devuelve el valor. Si la función es void, return; sin valor.
📝 Test · Sección A · Opción múltiple (10)
¿Qué es una función en C++?
- A. Un tipo de variable
- B. Un bloque de código reutilizable con nombre ✓ CORRECTA
- C. Un bucle
- D. Un comentario
Función: bloque con nombre que encapsula lógica.
Sintaxis de declaración de función:
- A. function nombre()
- B. tipo_retorno nombre(params) { cuerpo } ✓ CORRECTA
- C. def nombre():
- D. func nombre() {}
tipo_retorno nombre(parámetros) { cuerpo }.
¿Qué significa void en una función?
- A. Variable vacía
- B. La función no retorna valor ✓ CORRECTA
- C. Función sin parámetros
- D. Función privada
void: sin valor de retorno.
return en una función void:
- A. Obligatorio
- B. Opcional, pero sale de la función ✓ CORRECTA
- C. Prohibido
- D. Hace nada
return; en void sale de la función. Sin return, ejecuta hasta el final del bloque.
¿Cómo se llama una función en C++?
- A. call nombre()
- B. nombre(); ✓ CORRECTA
- C. invoke nombre
- D. do nombre()
nombre(); o nombre(arg1, arg2); con paréntesis.
Parámetros por valor:
- A. Modifican el original
- B. Reciben una copia, no afectan al original ✓ CORRECTA
- C. Comparten memoria
- D. Son referencias
Por valor: copia. Cambios al parámetro no afectan a la variable original.
Parámetros por referencia (&):
- A. Copia
- B. Operan sobre la variable original ✓ CORRECTA
- C. Son constantes
- D. No existen
Por referencia: la función opera sobre el original. Cambios se reflejan afuera.
Sobrecarga de funciones:
- A. Funciones con el mismo nombre y misma firma
- B. Funciones con el mismo nombre pero diferentes parámetros ✓ CORRECTA
- C. Funciones sin nombre
- D. Funciones globales
Sobrecarga: mismo nombre, diferentes firmas (parámetros). El compilador elige.
Recursividad:
- A. Bucle
- B. Función que se llama a sí misma ✓ CORRECTA
- C. Variable estática
- D. Compilador
Recursividad: función que se llama a sí misma. Caso base + caso recursivo.
¿Por qué las funciones deben ser pequeñas?
- A. Compilan más rápido
- B. Más fáciles de leer, testear y mantener ✓ CORRECTA
- C. Caben en pantalla
- D. No es importante
Funciones pequeñas: una responsabilidad, fáciles de testear, menos bugs.
✍️ Test · Sección B · Preguntas abiertas (3)
¿Por qué es importante que las funciones tengan una sola responsabilidad?
Una responsabilidad: más fácil de entender, testear, mantener y reutilizar. Si una función hace muchas cosas, es difícil de entender y cambiar.
Diseña una función "calcularPromedio(vector<int> notas)" en C++ pseudocódigo.
float calcularPromedio(vector<int> notas) { if (notas.empty()) return 0; int suma = 0; for (int n : notas) suma += n; return (float)suma / notas.size(); }.
Explica la diferencia entre parámetro por valor, por referencia y por puntero. ¿Cuándo usar cada uno?
Por valor: copia, no modifica original (caso normal). Por referencia: modifica original, sin copiar. Por puntero: similar a referencia pero permite null y aritmética. Usar valor por defecto; referencia cuando necesitas modificar; puntero cuando necesitas null o arrays C-style.
📝 ¿Listo para evaluarte?
Regístrate o inicia sesión para tomar la autoevaluación o el test de este tema y registrar tu puntaje.