Oposiciones

Lenguajes de programación: fundamentos y estructuras — Test de Cuerpo de Técnicos Auxiliares de Informática de la Administración del Estado

Test gratuito de 31 preguntas de Cuerpo de Técnicos Auxiliares de Informática de la Administración del Estado, con la explicación justificada de cada respuesta. Responde las preguntas y envía el test para ver tu resultado: no necesitas registrarte.

0 / 31 respondidas00:00
Pregunta 1

¿Cuál de los siguientes paradigmas de programación se caracteriza por la evaluación de expresiones matemáticas y la ausencia de efectos secundarios?

  • AProgramación imperativa
  • BProgramación orientada a objetos
  • CProgramación funcional
  • DProgramación lógica
Pregunta 2

En un lenguaje de programación, ¿qué estructura de control permite ejecutar un bloque de código repetidamente mientras se cumpla una condición?

  • AEstructura de selección simple (if)
  • BEstructura de secuencia
  • CEstructura de selección múltiple (switch)
  • DEstructura de iteración (while)
Pregunta 3

¿Cuál de los siguientes es un lenguaje interpretado y de scripting típicamente usado para automatización de tareas en sistemas UNIX/Linux?

  • AC
  • BJava
  • CBash
  • DC++
Pregunta 4

La propiedad de un lenguaje que permite tratar datos de diferentes tipos de manera uniforme mediante una misma interfaz se denomina:

  • AHerencia
  • BPolimorfismo
  • CEncapsulamiento
  • DAbstracción
Pregunta 5

¿Qué tipo de dato compuesto almacena una colección de elementos del mismo tipo, accesibles mediante un índice numérico?

  • ARegistro (struct)
  • BArray (vector)
  • CLista enlazada
  • DConjunto (set)
Pregunta 6

Un procedimiento se diferencia de una función principalmente porque:

  • AUn procedimiento siempre devuelve un valor.
  • BUn procedimiento no devuelve un valor, mientras que una función sí.
  • CUna función no puede tener parámetros.
  • DUn procedimiento no puede ser invocado.
Pregunta 7

¿Qué concepto de programación implica que una función se llame a sí misma para resolver un problema dividiéndolo en subproblemas más pequeños?

  • AIteración
  • BRecursividad
  • CModularidad
  • DSerialización
Pregunta 8

¿Cuál de los siguientes lenguajes se considera de bajo nivel, ya que su código tiene una correspondencia directa con el código máquina?

  • APython
  • BEnsamblador (assembly)
  • CJava
  • DJavaScript
Pregunta 9

En el paradigma de programación lógica, los programas se expresan como:

  • ASecuencias de comandos que alteran el estado.
  • BConjuntos de hechos y reglas en un sistema de deducción lógica.
  • CJerarquías de clases y objetos.
  • DComposición de funciones puras.
Pregunta 10

¿Qué estructura de control permite ejecutar diferentes bloques de código en función del valor de una expresión?

  • ABucle 'for'
  • BEstructura de selección múltiple (switch/case)
  • CBucle 'do-while'
  • DSecuencia de instrucciones
Pregunta 11

Un lenguaje compilado como C se caracteriza porque:

  • ASe ejecuta directamente por un intérprete línea a línea.
  • BRequiere un proceso de traducción completo a código máquina antes de su ejecución.
  • CSiempre es más lento que uno interpretado.
  • DNo necesita enlazador (linker).
Pregunta 12

¿Qué término describe la capacidad de un lenguaje para decidir el tipo de una variable en tiempo de ejecución, sin declaración explícita?

  • ATipado estático
  • BTipado dinámico
  • CTipado fuerte
  • DInferencia de tipos
Pregunta 13

¿Cuál de las siguientes opciones es un ejemplo de estructura de datos lineal y dinámica?

  • AArray estático
  • BPila (stack)
  • CRegistro (struct)
  • DEntero (int)
Pregunta 14

En programación orientada a objetos, ¿qué mecanismo permite a una clase heredar características (métodos y atributos) de otra clase?

  • APolimorfismo
  • BEncapsulamiento
  • CHerencia
  • DAbstracción
Pregunta 15

¿Cuál de estos lenguajes es principalmente imperativo y también soporta programación orientada a objetos?

  • AHaskell
  • BProlog
  • CPython
  • DHTML
Pregunta 16

La sentencia 'if-else' en un lenguaje de programación corresponde a una estructura de:

  • AIteración
  • BSelección (bifurcación condicional)
  • CSecuencia
  • DRecursión
Pregunta 17

¿Qué característica distingue a un lenguaje de scripting como Python de un lenguaje compilado como C?

  • ALos lenguajes de scripting siempre son más rápidos en ejecución.
  • BLos lenguajes de scripting no necesitan un entorno de ejecución.
  • CLos lenguajes de scripting suelen ser interpretados y de alto nivel, enfocados a tareas de automatización.
  • DLos lenguajes de scripting no permiten estructuras de control.
Pregunta 18

En recursividad, ¿qué condición es esencial para evitar una recursión infinita?

  • AQue la función no tenga parámetros.
  • BQue exista al menos un caso base que termine la recursión.
  • CQue la función llame a otras funciones.
  • DQue la función sea estática.
Pregunta 19

¿Qué tipo de operación sobre una pila (stack) elimina y devuelve el elemento situado en la parte superior?

  • APush
  • BPop
  • CPeek
  • DInsert
Pregunta 20

¿Cuál de los siguientes es un lenguaje de programación que sigue principalmente el paradigma funcional?

  • AC++
  • BLisp
  • CPascal
  • DSQL
Pregunta 21

En el contexto de los lenguajes de programación, ¿qué significa que un lenguaje tenga 'tipado fuerte' (strong typing)?

  • AQue las variables deben declararse con un tipo que no puede cambiar.
  • BQue no se permiten conversiones implícitas entre tipos incompatibles.
  • CQue el tipo de variable se decide en tiempo de compilación.
  • DQue solo existe un tipo de dato numérico.
Pregunta 22

Un bucle 'for' en la mayoría de los lenguajes imperativos se utiliza principalmente para:

  • AEjecutar un bloque de código una vez si se cumple una condición.
  • BIterar un número conocido o predefinido de veces.
  • CEjecutar un bloque de código al menos una vez.
  • DDefinir funciones recursivas.
Pregunta 23

¿Qué término describe la traducción de código fuente a código máquina justo antes de su ejecución, combinando compilación e interpretación?

  • AEnsamblado
  • BCompilación cruzada
  • CCompilación JIT (Just-In-Time)
  • DPreprocesamiento
Pregunta 24

¿Cuál de estos es un tipo de dato primitivo en la mayoría de lenguajes de programación?

  • AArray
  • BLista
  • CBooleano
  • DObjeto
Pregunta 25

En el contexto de los lenguajes de programación, ¿qué se entiende por 'alcance' (scope) de una variable?

  • AEl valor actual almacenado en la variable.
  • BLa región del código donde la variable es accesible y válida.
  • CEl tipo de dato de la variable.
  • DLa dirección de memoria asignada a la variable.
Pregunta 26

¿Qué paradigma de programación enfatiza la descripción de 'cómo' se realizan los pasos para cambiar el estado del programa?

  • AProgramación declarativa
  • BProgramación funcional
  • CProgramación imperativa
  • DProgramación lógica
Pregunta 27

¿Cuál de las siguientes estructuras de datos funciona con el principio FIFO (First In, First Out)?

  • APila (Stack)
  • BCola (Queue)
  • CÁrbol (Tree)
  • DGrafo (Graph)
Pregunta 28

Un lenguaje que permite la creación de tipos de datos complejos combinando otros tipos se dice que soporta:

  • ATipos de datos abstractos
  • BTipos de datos primitivos
  • CTipos de datos simples
  • DTipos de datos enumerados
Pregunta 29

¿Qué característica es propia de los lenguajes de alto nivel como Python o Java, en contraste con los de bajo nivel?

  • AProporcionan un control directo sobre el hardware.
  • BSu sintaxis está muy cerca del código máquina.
  • CSon portables entre diferentes arquitecturas de hardware.
  • DRequieren gestión manual de memoria en todo momento.
Pregunta 30

En Bash, ¿qué símbolo se utiliza para referirse al valor de una variable?

  • A%
  • B#
  • C$
  • D@
Pregunta 31

¿Qué estructura de control garantiza que un bloque de código se ejecute al menos una vez?

  • ABucle 'while'
  • BBucle 'for'
  • CBucle 'do-while'
  • DCondicional 'if'
0 / 31 respondidas

Soluciones y explicaciones

Ver las 31 respuestas correctas y su explicación

Esta sección revela las respuestas correctas. Te recomendamos hacer el test antes de consultarla.

  • ¿Cuál de los siguientes paradigmas de programación se caracteriza por la evaluación de expresiones matemáticas y la ausencia de efectos secundarios?

    Respuesta correcta: Programación funcional

    El paradigma funcional, como en Haskell, se basa en la evaluación de funciones matemáticas puras, evitando el cambio de estado y efectos secundarios, enfocándose en la composición de funciones.

  • En un lenguaje de programación, ¿qué estructura de control permite ejecutar un bloque de código repetidamente mientras se cumpla una condición?

    Respuesta correcta: Estructura de iteración (while)

    La estructura de iteración 'while' es un bucle precondicional que repite la ejecución de un bloque mientras la condición booleana evaluada sea verdadera.

  • ¿Cuál de los siguientes es un lenguaje interpretado y de scripting típicamente usado para automatización de tareas en sistemas UNIX/Linux?

    Respuesta correcta: Bash

    Bash es un lenguaje de scripting e intérprete de comandos en entornos UNIX/Linux, diseñado para automatizar tareas del sistema operativo sin necesidad de compilación.

  • La propiedad de un lenguaje que permite tratar datos de diferentes tipos de manera uniforme mediante una misma interfaz se denomina:

    Respuesta correcta: Polimorfismo

    El polimorfismo en programación orientada a objetos permite que una misma interfaz (como un método) pueda ser utilizada por diferentes tipos de datos, seleccionando la implementación adecuada en tiempo de ejecución.

  • ¿Qué tipo de dato compuesto almacena una colección de elementos del mismo tipo, accesibles mediante un índice numérico?

    Respuesta correcta: Array (vector)

    Un array (o vector) es una estructura de datos homogénea que almacena elementos del mismo tipo en posiciones contiguas de memoria, accesibles mediante un índice entero.

  • Un procedimiento se diferencia de una función principalmente porque:

    Respuesta correcta: Un procedimiento no devuelve un valor, mientras que una función sí.

    En la teoría de lenguajes de programación, un procedimiento es una subrutina que ejecuta una tarea sin devolver un valor, mientras que una función siempre devuelve un valor como resultado de su ejecución.

  • ¿Qué concepto de programación implica que una función se llame a sí misma para resolver un problema dividiéndolo en subproblemas más pequeños?

    Respuesta correcta: Recursividad

    La recursividad es una técnica en la que una función se invoca a sí misma, directamente o indirectamente, para resolver un problema reduciéndolo a instancias más simples del mismo, requiriendo un caso base para terminar.

  • ¿Cuál de los siguientes lenguajes se considera de bajo nivel, ya que su código tiene una correspondencia directa con el código máquina?

    Respuesta correcta: Ensamblador (assembly)

    El lenguaje ensamblador es de bajo nivel porque sus instrucciones mapean directamente a las instrucciones de código máquina del procesador, ofreciendo un control muy detallado del hardware.

  • En el paradigma de programación lógica, los programas se expresan como:

    Respuesta correcta: Conjuntos de hechos y reglas en un sistema de deducción lógica.

    La programación lógica, como en Prolog, se basa en la definición de hechos y reglas que forman una base de conocimiento, y el motor de inferencia deduce respuestas a consultas mediante un proceso de unificación y resolución.

  • ¿Qué estructura de control permite ejecutar diferentes bloques de código en función del valor de una expresión?

    Respuesta correcta: Estructura de selección múltiple (switch/case)

    La estructura de selección múltiple 'switch' (o 'case') evalúa una expresión y dirige el flujo de ejecución a uno de varios bloques de código posibles según el valor coincidente.

  • Un lenguaje compilado como C se caracteriza porque:

    Respuesta correcta: Requiere un proceso de traducción completo a código máquina antes de su ejecución.

    Un lenguaje compilado como C pasa por una fase de compilación donde todo el código fuente se traduce a código máquina nativo (o a un código intermedio), generando un ejecutable independiente que la CPU puede procesar directamente.

  • ¿Qué término describe la capacidad de un lenguaje para decidir el tipo de una variable en tiempo de ejecución, sin declaración explícita?

    Respuesta correcta: Tipado dinámico

    El tipado dinámico, presente en lenguajes como Python, significa que el tipo de una variable se asocia en tiempo de ejecución y puede cambiar, a diferencia del tipado estático donde el tipo se define en tiempo de compilación.

  • ¿Cuál de las siguientes opciones es un ejemplo de estructura de datos lineal y dinámica?

    Respuesta correcta: Pila (stack)

    Una pila (stack) es una estructura de datos lineal y dinámica que sigue el principio LIFO (Last In, First Out). Su tamaño puede cambiar durante la ejecución, a diferencia de un array estático que tiene tamaño fijo.

  • En programación orientada a objetos, ¿qué mecanismo permite a una clase heredar características (métodos y atributos) de otra clase?

    Respuesta correcta: Herencia

    La herencia es un principio de la programación orientada a objetos que permite crear una nueva clase (subclase) a partir de una existente (superclase), reutilizando y extendiendo su comportamiento y datos.

  • ¿Cuál de estos lenguajes es principalmente imperativo y también soporta programación orientada a objetos?

    Respuesta correcta: Python

    Python es un lenguaje multiparadigma que, aunque permite programación imperativa y orientada a objetos de forma nativa, también soporta aspectos de programación funcional, pero su núcleo es imperativo.

  • La sentencia 'if-else' en un lenguaje de programación corresponde a una estructura de:

    Respuesta correcta: Selección (bifurcación condicional)

    La estructura 'if-else' es una estructura de selección o bifurcación condicional que permite ejecutar un bloque de código u otro en función de la evaluación de una condición booleana.

  • ¿Qué característica distingue a un lenguaje de scripting como Python de un lenguaje compilado como C?

    Respuesta correcta: Los lenguajes de scripting suelen ser interpretados y de alto nivel, enfocados a tareas de automatización.

    Los lenguajes de scripting como Python son generalmente interpretados, de muy alto nivel, y se utilizan para automatizar tareas, prototipado rápido y desarrollo web, a diferencia de los compilados como C que se centran en eficiencia y control del hardware.

  • En recursividad, ¿qué condición es esencial para evitar una recursión infinita?

    Respuesta correcta: Que exista al menos un caso base que termine la recursión.

    El caso base en una función recursiva es una condición que detiene las llamadas recursivas, proporcionando un resultado directo sin más llamadas, evitando así un bucle infinito y el desbordamiento de pila.

  • ¿Qué tipo de operación sobre una pila (stack) elimina y devuelve el elemento situado en la parte superior?

    Respuesta correcta: Pop

    En la estructura de datos pila, la operación 'pop' elimina el elemento superior de la pila y lo devuelve, siguiendo el principio LIFO. 'Push' inserta, y 'Peek' observa sin eliminar.

  • ¿Cuál de los siguientes es un lenguaje de programación que sigue principalmente el paradigma funcional?

    Respuesta correcta: Lisp

    Lisp (y sus dialectos como Scheme, Clojure) es uno de los primeros y más puros lenguajes funcionales, donde el código se construye como evaluación de expresiones y funciones, con énfasis en la recursión y listas.

  • En el contexto de los lenguajes de programación, ¿qué significa que un lenguaje tenga 'tipado fuerte' (strong typing)?

    Respuesta correcta: Que no se permiten conversiones implícitas entre tipos incompatibles.

    El tipado fuerte (strong typing) implica que el lenguaje impone restricciones estrictas en las operaciones entre tipos diferentes, evitando conversiones automáticas que pudieran causar errores, como sumar un string y un entero sin una conversión explícita.

  • Un bucle 'for' en la mayoría de los lenguajes imperativos se utiliza principalmente para:

    Respuesta correcta: Iterar un número conocido o predefinido de veces.

    El bucle 'for' es una estructura de control iterativa que se usa comúnmente cuando se conoce el número de iteraciones (por ejemplo, al recorrer un array), combinando inicialización, condición e incremento en una sola línea.

  • ¿Qué término describe la traducción de código fuente a código máquina justo antes de su ejecución, combinando compilación e interpretación?

    Respuesta correcta: Compilación JIT (Just-In-Time)

    La compilación Just-In-Time (JIT) es una técnica usada por máquinas virtuales (como la JVM de Java) que traduce bytecode a código máquina nativo durante la ejecución del programa, mejorando el rendimiento respecto a la interpretación pura.

  • ¿Cuál de estos es un tipo de dato primitivo en la mayoría de lenguajes de programación?

    Respuesta correcta: Booleano

    Los tipos de datos primitivos (como booleano, entero, carácter, flotante) son básicos, definidos por el lenguaje y no se componen de otros tipos, a diferencia de los tipos compuestos como arrays u objetos.

  • En el contexto de los lenguajes de programación, ¿qué se entiende por 'alcance' (scope) de una variable?

    Respuesta correcta: La región del código donde la variable es accesible y válida.

    El alcance (scope) de una variable define la visibilidad y tiempo de vida de la variable dentro del código. Puede ser global (accesible en todo el programa) o local (solo dentro de un bloque o función).

  • ¿Qué paradigma de programación enfatiza la descripción de 'cómo' se realizan los pasos para cambiar el estado del programa?

    Respuesta correcta: Programación imperativa

    El paradigma imperativo (como en C o Pascal) se centra en describir una secuencia de comandos que alteran el estado del programa, es decir, especifica 'cómo' lograr un objetivo paso a paso.

  • ¿Cuál de las siguientes estructuras de datos funciona con el principio FIFO (First In, First Out)?

    Respuesta correcta: Cola (Queue)

    Una cola (queue) es una estructura de datos lineal que sigue el principio FIFO: el primer elemento insertado es el primero en ser eliminado, a diferencia de la pila que es LIFO.

  • Un lenguaje que permite la creación de tipos de datos complejos combinando otros tipos se dice que soporta:

    Respuesta correcta: Tipos de datos abstractos

    Los tipos de datos abstractos (TDA) permiten definir estructuras de datos complejas (como listas, pilas, colas) ocultando su implementación interna y ofreciendo operaciones bien definidas, combinando tipos primitivos y otros TDA.

  • ¿Qué característica es propia de los lenguajes de alto nivel como Python o Java, en contraste con los de bajo nivel?

    Respuesta correcta: Son portables entre diferentes arquitecturas de hardware.

    Los lenguajes de alto nivel ofrecen portabilidad porque su código (o bytecode) puede ejecutarse en diferentes plataformas con la ayuda de un intérprete o máquina virtual, abstrayendo los detalles del hardware.

  • En Bash, ¿qué símbolo se utiliza para referirse al valor de una variable?

    Respuesta correcta: $

    En el lenguaje de scripting Bash, el símbolo '$' se utiliza para acceder al valor almacenado en una variable (por ejemplo, $nombre). Sin él, se referencia solo el nombre de la variable como texto.

  • ¿Qué estructura de control garantiza que un bloque de código se ejecute al menos una vez?

    Respuesta correcta: Bucle 'do-while'

    El bucle 'do-while' (o 'repeat-until' en algunos lenguajes) es una estructura iterativa postcondicional: primero ejecuta el bloque de código y luego evalúa la condición, por lo que el bloque se ejecuta al menos una vez.