Test: Fundamentos de programación (28 preguntas)

Preguntas y respuestas del test

1. ¿Qué distingue a una máquina manual de una automática?

La manual responde a estímulos externos; la automática requiere que un operador desencadene sus operaciones.
La manual cambia su comportamiento mediante un programa; la automática conserva un comportamiento modificable.
La manual funciona con una parte modificable; la automática depende de una parte fija y de un operador.
La manual requiere que un operador desencadene sus operaciones; la automática actúa por sí sola y puede responder a estímulos externos.

La manual requiere que un operador desencadene sus operaciones; la automática actúa por sí sola y puede responder a estímulos externos.

Explicación

La máquina manual depende de la intervención de un operador, mientras que la automática puede actuar por sí misma y responder a estímulos externos. La segunda opción invierte precisamente esa diferencia.

2. ¿Cómo consigue una máquina programable modificar su funcionamiento?

Combina una máquina base de comportamiento fijo con un programa modificable que describe cómo funciona.
Sustituye la máquina base por estímulos externos que determinan cada operación que realiza.
Combina una máquina base modificable con un comportamiento fijo que no depende de ningún programa.
Mantiene un comportamiento automático fijo y cambia únicamente la respuesta del operador.

Combina una máquina base de comportamiento fijo con un programa modificable que describe cómo funciona.

Explicación

Una máquina programable conserva una máquina base de comportamiento fijo y modifica su funcionamiento mediante el programa que lo describe. La segunda opción invierte cuál de los componentes es fijo y cuál es modificable.

3. Un sistema calcula un resultado nuevo a partir de datos conocidos; ¿qué describe esta operación?

Un intercambio, porque comunica información entre el computador y el exterior.
Un almacenamiento, porque conserva información conocida sin transformarla mediante cálculos.
Un cómputo, porque trata información mediante cálculos para obtener información nueva.
Una programación, porque modifica el funcionamiento de la máquina mediante instrucciones.

Un cómputo, porque trata información mediante cálculos para obtener información nueva.

Explicación

Un cómputo es un tratamiento de información que obtiene información nueva a partir de información conocida mediante cálculos. El almacenamiento conserva datos, pero no define por sí mismo esa obtención de resultados calculados.

4. ¿Qué caracteriza a un computador?

Es un dispositivo de entrada y salida que intercambia información con el exterior.
Es una máquina de comportamiento fijo que almacena información sin realizar cálculos.
Es un programa modificable que describe el funcionamiento de una máquina base.
Es una máquina programable que trata información y realiza cómputos.

Es una máquina programable que trata información y realiza cómputos.

Explicación

Un computador es una máquina programable destinada al tratamiento de información y a la realización de cómputos. Un dispositivo de entrada y salida cumple una función dentro del computador, pero no define por sí solo qué es un computador.

5. Al distinguir los componentes de un computador, ¿qué corresponde al hardware y qué al software?

El hardware comprende las representaciones modificables de los programas; el software, los elementos físicos fijos.
El hardware realiza los cálculos; el software intercambia información entre el computador y el exterior.
El hardware comprende los elementos físicos fijos; el software, las representaciones modificables de los programas.
El hardware almacena los programas; el software comprende los datos que introduce el operador.

El hardware comprende los elementos físicos fijos; el software, las representaciones modificables de los programas.

Explicación

El hardware corresponde a los elementos físicos fijos del computador, mientras que el software comprende las representaciones modificables de los programas. La segunda opción es la confusión habitual: intercambia las definiciones de ambos términos.

6. ¿Qué distribución de funciones entre componentes del computador es correcta?

La memoria almacena datos y programas, la entrada y salida intercambian información con el exterior, y el procesador opera según los códigos del programa.
La memoria intercambia información con el exterior, la entrada y salida almacenan programas, y el procesador opera según los códigos del programa.
La memoria almacena datos y programas, el procesador intercambia información con el exterior, y la entrada y salida ejecutan los códigos del programa.
La memoria opera según los códigos del programa, la entrada y salida intercambian información con el exterior, y el procesador almacena datos y programas.

La memoria almacena datos y programas, la entrada y salida intercambian información con el exterior, y el procesador opera según los códigos del programa.

Explicación

La memoria almacena datos y programas, los dispositivos de entrada y salida comunican el computador con el exterior, y el procesador realiza operaciones conforme a los códigos del programa. La segunda opción atribuye a la memoria la función de intercambiar información y a la entrada y salida la de almacenarla.

7. ¿Qué secuencia permite tratar información con un computador?

Construir el hardware, ejecutar el programa de software y desarrollar el programa.
Ejecutar el programa en el computador, construir el hardware y desarrollar el software.
Construir el hardware, desarrollar el programa de software y ejecutarlo en el computador.
Desarrollar el programa de software, ejecutar el programa y construir el hardware.

Construir el hardware, desarrollar el programa de software y ejecutarlo en el computador.

Explicación

El tratamiento informático requiere construir el hardware, desarrollar el software y ejecutar el programa en el computador. Desarrollar el programa y ejecutarlo son fases distintas, por lo que intercambiar su orden no describe la secuencia indicada.

8. ¿Qué diferencia caracteriza a la programación frente a la ingeniería de software?

La programación especifica el funcionamiento esperado; la ingeniería de software consiste en intercambiar datos con el exterior.
La programación suele organizar el desarrollo complejo en equipo; la ingeniería de software aborda programas pequeños realizados por una persona.
La programación suele abordar programas pequeños realizados por una persona; la ingeniería de software organiza el desarrollo complejo, normalmente en equipo.
La programación construye los componentes físicos del computador; la ingeniería de software se ocupa de ejecutar sus programas.

La programación suele abordar programas pequeños realizados por una persona; la ingeniería de software organiza el desarrollo complejo, normalmente en equipo.

Explicación

La programación suele referirse al desarrollo individual de programas pequeños, mientras que la ingeniería de software aplica técnicas organizativas a proyectos complejos, por lo general realizados en equipo. La segunda opción invierte los ámbitos característicos de ambas.

9. Al desarrollar un programa, ¿qué prioridad general deben seguir sus objetivos?

Dar prioridad a la corrección, después a la claridad y finalmente a la eficiencia.
Dar prioridad a la claridad, después a la eficiencia y finalmente a la corrección.
Dar prioridad a la eficiencia, después a la corrección y finalmente a la claridad.
Dar prioridad a la corrección, después a la eficiencia y finalmente a la claridad.

Dar prioridad a la corrección, después a la claridad y finalmente a la eficiencia.

Explicación

Los objetivos de la programación son corrección, claridad y eficiencia, con la corrección como prioridad principal, seguida de la claridad y luego de la eficiencia. La cuarta opción mantiene la corrección primero, pero intercambia el orden de los otros dos objetivos.

10. ¿Qué caracteriza al lenguaje de máquina de un programa?

Es el conjunto de instrucciones que un compilador utiliza para traducir cualquier programa.
Es la descripción fuente que un intérprete analiza como lenguaje de programación.
Es una notación simbólica legible y prácticamente independiente del modelo de computador.
Es una forma de codificación específica del modelo de computador que puede utilizarlo.

Es una forma de codificación específica del modelo de computador que puede utilizarlo.

Explicación

El lenguaje de máquina es la forma de codificación que puede utilizar un modelo concreto de computador. La notación simbólica legible corresponde a un lenguaje de programación, no al lenguaje de máquina.

11. ¿Cuál es una característica de un lenguaje de programación simbólico?

Convierte por sí mismo un programa fuente en un programa objeto de código de máquina.
Ejecuta las operaciones del programa al analizar directamente su descripción simbólica.
Codifica instrucciones en la forma específica que puede ejecutar un modelo de computador.
Representa programas con textos legibles y es prácticamente independiente de máquinas particulares.

Representa programas con textos legibles y es prácticamente independiente de máquinas particulares.

Explicación

Un lenguaje de programación expresa simbólicamente los programas con textos legibles y poca dependencia de una máquina particular. La codificación específica de un modelo corresponde al lenguaje de máquina.

12. ¿Qué transformación realiza un compilador?

Traduce un programa fuente simbólico a un programa objeto en código de máquina.
Convierte un programa objeto en una representación simbólica legible para las personas.
Analiza la descripción simbólica y ejecuta sus operaciones como una máquina virtual.
Adapta automáticamente el lenguaje de máquina de un modelo para que sirva en otro.

Traduce un programa fuente simbólico a un programa objeto en código de máquina.

Explicación

El compilador traduce el programa fuente escrito en un lenguaje simbólico a un programa objeto en código de máquina. Un intérprete, en cambio, analiza la descripción simbólica y realiza las operaciones correspondientes.

13. Un sistema analiza directamente la descripción simbólica de un programa fuente y realiza sus operaciones; ¿cómo se clasifica este procesamiento?

Como compilación, que genera un programa objeto en código de máquina antes de realizar las operaciones.
Como codificación en lenguaje de máquina, que adapta el programa a un modelo de computador particular.
Como interpretación, que actúa como una máquina virtual cuyo lenguaje coincide con el lenguaje fuente.
Como traducción entre modelos, que prepara el programa para ejecutarse en diferentes máquinas.

Como interpretación, que actúa como una máquina virtual cuyo lenguaje coincide con el lenguaje fuente.

Explicación

El intérprete procesa directamente la descripción simbólica y realiza las operaciones, como una máquina virtual cuyo lenguaje coincide con el fuente. La generación previa de un programa objeto en código de máquina caracteriza la compilación.

14. ¿Qué propósito tiene un modelo abstracto de cómputo?

Recoger elementos y formas de combinación comunes a los lenguajes, sin depender de su notación concreta.
Describir los resultados de un programa sin considerar las operaciones que permiten obtenerlos.
Definir una notación simbólica legible que sea prácticamente independiente del computador utilizado.
Especificar las instrucciones de máquina necesarias para ejecutar un programa en un equipo particular.

Recoger elementos y formas de combinación comunes a los lenguajes, sin depender de su notación concreta.

Explicación

Un modelo abstracto recoge los elementos básicos y las formas de combinación compartidas por lenguajes de programación, prescindiendo de su notación concreta. La especificación de instrucciones de un equipo particular pertenece al lenguaje de máquina.

15. ¿Cuál de las siguientes listas reúne modelos de programación descritos?

Funcional, de flujo de datos, lógico, imperativo y orientado a objetos.
De flujo de datos, interpretado, imperativo, simbólico y orientado a objetos.
Funcional, de lenguaje de máquina, lógico, compilado y orientado a objetos.
Lógico, imperativo, de programa objeto, funcional y de traducción automática.

Funcional, de flujo de datos, lógico, imperativo y orientado a objetos.

Explicación

Entre los modelos descritos están el funcional, el de flujo de datos, el lógico, el imperativo y el orientado a objetos. Compilado e interpretado, por ejemplo, describen formas de procesamiento y no forman parte de esa lista de modelos.

16. Al expresar un mismo problema primero con un modelo imperativo y luego con uno funcional, ¿qué puede cambiar?

La clase de problema que puede resolverse, pues cada modelo exige un problema distinto.
La máquina concreta que ejecuta el programa, pues cada modelo requiere un equipo propio.
La posibilidad de describir el cómputo, pues solo uno de los modelos puede representarlo.
La forma del programa, aunque ambos representen el mismo problema.

La forma del programa, aunque ambos representen el mismo problema.

Explicación

Un mismo problema puede representarse mediante programas de formas muy diferentes según el modelo de cómputo elegido. Esto no implica que cada modelo exija una máquina propia; la diferencia señalada es la forma de representar el programa.

17. ¿Cómo representa los cómputos el modelo funcional?

Mediante instrucciones que modifican un estado compartido conforme a una secuencia de pasos.
Mediante reglas lógicas que relacionan condiciones con soluciones posibles.
Mediante operadores conectados que se activan cuando reciben valores en sus entradas.
Mediante funciones aplicadas a argumentos para obtener resultados y que pueden combinarse.

Mediante funciones aplicadas a argumentos para obtener resultados y que pueden combinarse.

Explicación

El modelo funcional describe cómputos mediante funciones que reciben argumentos y producen resultados, y que pueden combinarse. Una red de operadores activados por valores de entrada caracteriza el modelo de flujo de datos.

18. Durante una evaluación funcional, ¿qué significa reducir un cómputo?

Organizar operadores en ciclos para producir una serie de resultados.
Reemplazar progresivamente cada función por el resultado que produce.
Activar operadores al recibir valores y enviar sus resultados a otros operadores.
Sustituir una función definida por su definición y ajustar sus argumentos simbólicos.

Reemplazar progresivamente cada función por el resultado que produce.

Explicación

La reducción evalúa un cómputo reemplazando progresivamente cada función por su resultado. Sustituir una función definida por su definición y reemplazar sus argumentos simbólicos describe el proceso de reescritura.

19. ¿Qué ocurre en un programa del modelo de flujo de datos cuando un operador recibe valores en sus entradas?

Se reescribe sustituyendo sus argumentos simbólicos por argumentos reales.
Se ejecuta siguiendo instrucciones que modifican un estado compartido.
Se reduce reemplazando una función por el resultado que produce.
Se activa, calcula un resultado y lo envía a sus salidas dentro de la red.

Se activa, calcula un resultado y lo envía a sus salidas dentro de la red.

Explicación

En el modelo de flujo de datos, el programa es una red de operadores que se activan al disponer de valores, calculan resultados y los envían a sus salidas. La reducción de funciones corresponde al modelo funcional.

20. ¿Cómo plantea un problema la programación lógica para obtener una respuesta?

Lo formula como una lista de condiciones que la máquina evalúa sin inferir relaciones nuevas.
Lo representa como una secuencia de valores que el programador modifica manualmente hasta hallar una respuesta.
Lo formaliza mediante hechos y reglas, y consulta el resultado para que la máquina realice las inferencias necesarias.
Lo expresa como instrucciones ordenadas y consulta el resultado después de ejecutar cada una.

Lo formaliza mediante hechos y reglas, y consulta el resultado para que la máquina realice las inferencias necesarias.

Explicación

La programación lógica formaliza el problema con hechos y reglas, y obtiene respuestas mediante las inferencias que realiza la máquina. En cambio, ejecutar instrucciones en un orden establecido caracteriza al modelo imperativo, no al planteamiento lógico.

21. ¿Qué caracteriza al modelo imperativo cuando un programa incluye instrucciones de control?

Las instrucciones se agrupan en reglas que expresan propiedades comunes de objetos concretos.
Las instrucciones se ejecutan según las inferencias que surgen de hechos y reglas, sin un orden indicado.
Las instrucciones describen relaciones generales, y la máquina decide qué valores almacenan las variables.
Las instrucciones siguen un orden indicado, que puede alterarse o repetirse según las condiciones.

Las instrucciones siguen un orden indicado, que puede alterarse o repetirse según las condiciones.

Explicación

El modelo imperativo organiza la ejecución mediante instrucciones ordenadas, aunque el control puede cambiar el orden o repetir partes según condiciones. La inferencia a partir de hechos y reglas corresponde al modelo lógico, no a la característica descrita.

22. En un programa imperativo, ¿qué función cumple una variable cuyo valor cambia durante la ejecución?

Representa una instrucción de control que determina cuándo se repite una parte del programa.
Representa una traza que registra las instrucciones y los valores observados durante la ejecución.
Representa una expresión que calcula por sí misma el nuevo valor de otra variable.
Representa un dato almacenado bajo un nombre, cuyo valor puede utilizarse o modificarse.

Representa un dato almacenado bajo un nombre, cuyo valor puede utilizarse o modificarse.

Explicación

Una variable es un dato almacenado bajo un nombre, y el programa puede utilizar o modificar su valor. Una traza registra instrucciones y valores para analizar la ejecución; no es el dato nombrado que se modifica.

23. Si se ejecuta la asignación `total = precio + impuesto`, ¿qué sucede con `total`?

Se calcula la expresión de la derecha y su resultado se almacena como nuevo valor de la variable de la izquierda.
Se registra la expresión en una traza, sin cambiar el valor almacenado en `total`.
Se comparan las expresiones de ambos lados y se almacena el resultado de esa comparación en `total`.
Se calcula primero el valor de la variable de la izquierda y se copia en las variables de la derecha.

Se calcula la expresión de la derecha y su resultado se almacena como nuevo valor de la variable de la izquierda.

Explicación

En una asignación, se evalúa la expresión situada a la derecha y se guarda el resultado como nuevo valor de la variable situada a la izquierda. Registrar una instrucción en una traza permite analizarla, pero no describe lo que realiza la asignación.

24. ¿Qué tres esquemas generales propone la programación estructurada?

Entrada, almacenamiento y salida.
Asignación, declaración y evaluación.
Secuencia, selección e iteración.
Hechos, reglas e inferencias.

Secuencia, selección e iteración.

Explicación

La programación estructurada organiza el control mediante secuencia, selección e iteración. La asignación, la declaración y la evaluación son conceptos relacionados con programas, pero no forman los tres esquemas generales indicados.

25. Al presupuestar una aplicación compleja en la actualidad, ¿qué comparación de costos puede ser razonable?

El desarrollo del software puede costar mucho más que los equipos de hardware utilizados.
El costo del software puede igualar necesariamente al hardware cuando la aplicación es compleja.
Los equipos de hardware pueden costar mucho más que el desarrollo del software en todos los casos.
El desarrollo del software suele costar menos que el hardware porque requiere menos recursos físicos.

El desarrollo del software puede costar mucho más que los equipos de hardware utilizados.

Explicación

En la actualidad, el desarrollo de software para aplicaciones complejas puede costar mucho más que los equipos utilizados. Que el hardware pueda ser costoso no implica que supere el costo del software en todos los casos.

26. ¿Qué efecto tuvo el aumento de capacidad y la reducción relativa del costo del hardware sobre el tamaño de las aplicaciones abordables?

Trasladó el trabajo a programas escritos directamente en lenguaje de máquina para mantener el rendimiento.
Permitió abordar aplicaciones más complejas y programas de decenas de miles o millones de instrucciones.
Hizo que las aplicaciones fueran más pequeñas porque redujo la capacidad disponible para ejecutarlas.
Redujo la complejidad de las aplicaciones al hacer que el costo del hardware superara al del software.

Permitió abordar aplicaciones más complejas y programas de decenas de miles o millones de instrucciones.

Explicación

Una mayor capacidad y un menor costo relativo del hardware permitieron abordar aplicaciones más complejas y programas mucho más extensos. El aumento de la capacidad informática no redujo el tamaño de las aplicaciones; posibilitó que crecieran.

27. ¿Por qué resulta necesario aplicar metodologías de programación en proyectos actuales, especialmente cuando se desarrollan en equipo?

Porque la complejidad de los programas actuales requiere métodos de trabajo y, en equipo, técnicas de ingeniería de software.
Porque las normas de estilo sustituyen la planificación técnica cuando varias personas trabajan en una aplicación.
Porque las demostraciones matemáticas son necesarias para desarrollar cualquier programa, independientemente de su tamaño.
Porque las pruebas de ejecución garantizan por sí mismas la ausencia de errores y coordinan el trabajo del equipo.

Porque la complejidad de los programas actuales requiere métodos de trabajo y, en equipo, técnicas de ingeniería de software.

Explicación

La complejidad de los programas actuales hace necesario usar metodologías y, en proyectos de equipo, técnicas de ingeniería de software. Las pruebas pueden ayudar a descubrir fallos, pero no garantizan por sí solas que el programa esté libre de errores ni organizan el trabajo del equipo.

28. Un programa supera todas las pruebas que se le han aplicado. ¿Qué conclusión está justificada sobre su corrección?

Las pruebas no han revelado fallos, pero eso no demuestra que el programa esté libre de errores.
El programa es correcto si cada prueba terminó sin fallos durante la ejecución.
Las pruebas confirman que los errores restantes solo pueden aparecer en componentes ajenos al programa.
El programa está libre de errores porque las pruebas cubrieron los casos que se consideraron importantes.

Las pruebas no han revelado fallos, pero eso no demuestra que el programa esté libre de errores.

Explicación

Las pruebas pueden demostrar que hay errores cuando descubren fallos, pero no encontrar fallos no garantiza que no existan errores. Que todas las pruebas ejecutadas hayan pasado, por tanto, no demuestra por sí solo la corrección del programa.

Repasa con flashcards

Memoriza las respuestas con 63 flashcards de Fundamentos de programación.

¿De qué depende una máquina manual para desencadenar sus operaciones?

De un operador.

¿Qué permite a una máquina automática responder a estímulos externos?

Actúa por sí sola.

¿Qué combina una máquina programable?

Una máquina base de comportamiento fijo y una parte modificable llamada programa.

Ver las flashcards →

Profundiza con el resumen

Lee el resumen completo de Fundamentos de programación.

Ver el resumen →

Cursos similares

Haz tus propios test

Sube tus apuntes y la IA te genera preguntas tipo test con corrección en 30 segundos.

Generador de test