Practicum · Quiz de repaso R1

Fundamentos de programación

Tipos de lenguajes, alto/bajo nivel, operadores lógicos, cortocircuito y tabla de verdad.

29Preguntas
4Opciones c/u
29Respuestas verificadas

Nota: preguntas de repaso generadas a partir de la transcripción (../transcripciones/transcripcion-practicum-1st.txt). Las respuestas se verificaron ejecutando el código (Python/JS) o por traza rigurosa (Java/R/booleanos).

Índice

Preguntas

1 Repaso

Según el material, ¿cuáles son los tres tipos de lenguaje según su forma de traducción y ejecución?

  1. ACompilado, interpretado e intermedio
  2. BAlto nivel, medio nivel y bajo nivel
  3. CEstructurado, orientado a objetos y funcional
  4. DCompilado, ensamblado y virtual

Respuesta correcta: A) Compilado, interpretado e intermedio

Por qué: Compilado: binarios que lee el SO. Interpretado: un programa lee y ejecuta en tiempo real. Intermedio: se compila a un lenguaje intermedio que corre en máquina virtual.

2 Repaso

Hay que ejecutar un programa mínimo (suma dos números) en un servidor con 256 MB de RAM. Entre un programa compilado en C y un script interpretado en Python, ¿cuál consumirá menos memoria y arrancará más rápido?

  1. AEl script en Python, por ser más corto
  2. BEl programa compilado en C
  3. CConsumen lo mismo, solo suma dos números
  4. DEl interpretado, porque no genera binario

Respuesta correcta: B) El programa compilado en C

Por qué: El compilado ya es binario listo para el SO; el interpretado necesita cargar el intérprete y traducir en tiempo real.

3 Repaso

¿Por qué un bucle for que repite una operación matemática 1 millón de veces es muchísimo más lento en un lenguaje interpretado puro que en uno compilado?

  1. APorque el interpretado usa más memoria RAM
  2. BPorque cada instrucción se lee y traduce en tiempo real, en cada vuelta
  3. CPorque el compilado usa menos líneas de código
  4. DPorque el for no existe en lenguajes interpretados

Respuesta correcta: B) Porque cada instrucción se lee y traduce en tiempo real, en cada vuelta

Por qué: El costo de interpretación se paga por instrucción y por iteración; el compilado ya corre en binario nativo.

4 Repaso

¿Qué mide realmente la clasificación de alto nivel o bajo nivel en un lenguaje de programación?

  1. ALa velocidad del procesador donde corre
  2. BEl año de creación del lenguaje
  3. CLa cercanía al hardware frente al nivel de abstracción para el humano
  4. DLa cantidad de librerías disponibles

Respuesta correcta: C) La cercanía al hardware frente al nivel de abstracción para el humano

Por qué: Bajo nivel: instrucciones para el procesador, orientado al hardware. Alto nivel: lo entienden los humanos, orientado al software.

5 Repaso

¿Cuál es el indicador práctico más fiable, a nivel de sintaxis y código, de que estás ante un lenguaje de bajo nivel?

  1. AQue el código parezca inglés
  2. BLa gestión manual de memoria y el uso de punteros y direcciones
  3. CQue tenga recolector de basura
  4. DQue se ejecute en una máquina virtual

Respuesta correcta: B) La gestión manual de memoria y el uso de punteros y direcciones

Por qué: malloc/free y punteros (0x7FF...) son marcas de bajo nivel; el alto nivel lo oculta con objetos y garbage collector.

6 Repaso

En el slide POR NIVEL se muestra el mismo Hola en C++ (con iostream) y en ensamblador (COPY, LDX, MOVECH...). ¿Cuál es el de bajo nivel y por qué sirve?

  1. AEl de C++, porque usa menos instrucciones
  2. BEl de ensamblador: son instrucciones para el procesador y ayuda a entender cómo funcionan
  3. CAmbos son del mismo nivel
  4. DEl de C++, porque permite videojuegos

Respuesta correcta: B) El de ensamblador: son instrucciones para el procesador y ayuda a entender cómo funcionan

Por qué: El bajo nivel está orientado al hardware (sistemas operativos y núcleos); el alto nivel usa menos instrucciones por acción.

7 Repaso

Según la tabla del material, ¿cuáles son los símbolos del operador AND?

  1. A|| / or
  2. B! / not
  3. C&& / and
  4. D^ / !=

Respuesta correcta: C) && / and

Por qué: AND: todo debe ser verdadero (circuito en serie). OR: || / or. NOT: ! / not. XOR: ^ / !=.

8 Repaso

¿Cuál es la regla universal del operador OR?

  1. ATodo debe ser verdadero
  2. BBasta con que uno sea verdadero
  3. CInvierte el valor
  4. DSolo es verdadero si son diferentes

Respuesta correcta: B) Basta con que uno sea verdadero

Por qué: Analogía del material: circuito en paralelo.

9 Repaso

¿Cuál es la regla universal del operador XOR?

  1. ATodo debe ser verdadero
  2. BBasta con que uno sea verdadero
  3. CInvierte el valor
  4. DSolo es verdadero si los operandos son diferentes

Respuesta correcta: D) Solo es verdadero si los operandos son diferentes

Por qué: Analogía del material: diferencia exclusiva.

10 Repaso

En un AND (&&), si lo de la izquierda es Falso, ¿qué ocurre con lo de la derecha?

  1. ASe evalúa de todos modos
  2. BSe ignora: ni se molesta en mirarla porque el resultado ya es Falso
  3. CSe convierte en Verdadero
  4. DLanza un error

Respuesta correcta: B) Se ignora: ni se molesta en mirarla porque el resultado ya es Falso

Por qué: Es el cortocircuito: [FALSO] -> [STOP], derecha ignorada. En OR es al revés: con izquierda verdadera se ignora la derecha.

11 Repaso

¿Qué se muestra al ejecutar este código?
def peligrosa():
print("Ejecutando función")
return 1 / 0
if True or peligrosa():
print("Condicion aprobada")

  1. AEjecutando función y luego Condicion aprobada
  2. BSolo Condicion aprobada (peligrosa jamás se ejecuta)
  3. CError de división entre cero
  4. DNada, el if es inválido

Respuesta correcta: B) Solo Condicion aprobada (peligrosa jamás se ejecuta)

Por qué: True en corto hace True el or: cortocircuito. La división 1/0 nunca ocurre.

12 Repaso

Completa la fila A=V, B=F de la tabla: not (A and B) | (not A) or B | A xor B | not (A or B)

  1. AV | F | V | F
  2. BF | F | F | F
  3. CV | V | V | V
  4. DF | V | F | V

Respuesta correcta: A) V | F | V | F

Por qué: not(V and F)=not F=V; (not V) or F=F or F=F; V xor F=V; not(V or F)=not V=F.

13 Repaso

¿Cuál es la regla universal del operador AND?

  1. ABasta con que uno sea verdadero
  2. BTodo debe ser verdadero
  3. CInvierte el valor
  4. DSolo es verdadero si son diferentes

Respuesta correcta: B) Todo debe ser verdadero

Por qué: Analogía del material: circuito en serie.

14 Repaso

¿Cuál es la regla universal del operador NOT?

  1. ATodo debe ser verdadero
  2. BBasta con que uno sea verdadero
  3. CInvierte el valor
  4. DSolo es verdadero si son diferentes

Respuesta correcta: C) Invierte el valor

Por qué: Analogía del material: 0 -> 1 / inversor de valor.

15 Repaso

¿Qué caracteriza a un lenguaje intermedio?

  1. ASe ejecuta directamente en binario sin pasos previos
  2. BCada instrucción se lee y ejecuta en tiempo real
  3. CEl código fuente se compila a un lenguaje intermedio que luego se ejecuta en una máquina virtual
  4. DSolo sirve para scripts web

Respuesta correcta: C) El código fuente se compila a un lenguaje intermedio que luego se ejecuta en una máquina virtual

Por qué: Es el punto medio entre compilado puro e interpretado puro.

16 Repaso

El material dice que la lógica booleana es el ecosistema de las decisiones y que los operadores lógicos son sus verbos. ¿Qué permiten?

  1. AAcelerar el procesador
  2. BCombinar verdades básicas para que el sistema tome decisiones complejas de forma automática y predecible
  3. CReducir el consumo de memoria
  4. DTraducir código a binario

Respuesta correcta: B) Combinar verdades básicas para que el sistema tome decisiones complejas de forma automática y predecible

Por qué: INPUT del sistema: [VERDADERO] | [FALSO].

17 Repaso

En un OR (||), si lo de la izquierda es Verdadero, ¿qué ocurre con lo de la derecha?

  1. ASe evalúa de todos modos
  2. BSe ignora: ni se molesta en mirarla porque el resultado ya es Verdadero
  3. CSe convierte en Falso
  4. DLanza un error

Respuesta correcta: B) Se ignora: ni se molesta en mirarla porque el resultado ya es Verdadero

Por qué: [VERDADERO] -> [STOP], derecha ignorada. Es el espejo del caso AND.

18 Repaso

Según la comparativa bajo vs alto nivel, ¿qué par corresponde a la gestión de memoria?

  1. Amalloc/free en alto nivel y Garbage Collector en bajo nivel
  2. Bmalloc/free en bajo nivel y Garbage Collector en alto nivel
  3. CPunteros en alto nivel y objetos en bajo nivel
  4. DCompilar por arquitectura en alto nivel e intérprete en bajo nivel

Respuesta correcta: B) malloc/free en bajo nivel y Garbage Collector en alto nivel

Por qué: Manual vs automática: control y rendimiento técnico.

19 Repaso

En portabilidad y despliegue, ¿qué diferencia el material entre bajo y alto nivel?

  1. AEl bajo nivel solo requiere un intérprete y el alto nivel compilar por arquitectura
  2. BEl bajo nivel requiere compilar por arquitectura (x86 | ARM); el alto nivel solo requiere un intérprete universal
  3. CNo hay diferencia de portabilidad
  4. DEl alto nivel no se puede desplegar

Respuesta correcta: B) El bajo nivel requiere compilar por arquitectura (x86 | ARM); el alto nivel solo requiere un intérprete universal

Por qué: COMPILAR | COMPILAR | COMPILAR frente a INTÉRPRETE UNIVERSAL.

20 Repaso

En depuración, ¿qué corresponde a cada nivel según la comparativa?

  1. ABajo nivel: tracebacks con línea y tipo; alto nivel: core dumps
  2. BBajo nivel: core dumps y volcados complejos; alto nivel: tracebacks con línea y tipo de error
  3. CAmbos usan core dumps
  4. DAmbos usan tracebacks

Respuesta correcta: B) Bajo nivel: core dumps y volcados complejos; alto nivel: tracebacks con línea y tipo de error

Por qué: Seguridad: baja en C/ASM (permite errores críticos), alta en Python/Java (excepciones preventivas).

21 Repaso

Completa la fila A=V, B=V de la tabla: not (A and B) | (not A) or B | A xor B | not (A or B)

  1. AF | V | F | F
  2. BV | V | V | V
  3. CF | F | F | F
  4. DV | F | V | F

Respuesta correcta: A) F | V | F | F

Por qué: not(V and V)=not V=F; (not V) or V=F or V=V; V xor V=F; not(V or V)=not V=F.

22 Repaso

Completa la fila A=F, B=V de la tabla: not (A and B) | (not A) or B | A xor B | not (A or B)

  1. AF | F | F | F
  2. BV | V | V | V
  3. CT | T | V | F
  4. DF | V | F | V

Respuesta correcta: C) T | T | V | F

Por qué: not(F and V)=not F=T; (not F) or V=T or V=T; F xor V=V; not(F or V)=not V=F. (T = V.)

23 Repaso

Completa la fila A=F, B=F de la tabla: not (A and B) | (not A) or B | A xor B | not (A or B)

  1. AF | F | F | F
  2. BV | V | V | V
  3. CT | T | F | T
  4. DF | V | F | V

Respuesta correcta: C) T | T | F | T

Por qué: not(F and F)=not F=T; (not F) or F=T or F=T; F xor F=F; not(F or F)=not F=T. (T = V.)

24 Repaso

Variante del slide 12: ¿qué pasaría con if False or peligrosa(): print("Condicion aprobada")?

  1. AImprime Condicion aprobada sin llamar a peligrosa
  2. BSe ejecuta peligrosa(), imprime Ejecuando función y luego explota con división entre cero
  3. CNo pasa nada
  4. DImprime False

Respuesta correcta: B) Se ejecuta peligrosa(), imprime Ejecuando función y luego explota con división entre cero

Por qué: Con izquierda falsa el or DEBE evaluar la derecha: no hay cortocircuito que la salve. Es el espejo exacto del ejemplo del slide.

25 Repaso

Según la tabla de analogías visuales, ¿a qué equivale el operador AND?

  1. ACircuito en paralelo
  2. BCircuito en serie
  3. CInversor de valor
  4. DDiferencia exclusiva

Respuesta correcta: B) Circuito en serie

Por qué: En serie todo debe conducir (todo verdadero). OR = paralelo, NOT = inversor, XOR = diferencia exclusiva.

26 Repaso

Según los casos de uso ideales, ¿para qué sirve el bajo nivel y para qué el alto nivel?

  1. ABajo nivel: IA y web empresarial; alto nivel: drivers
  2. BBajo nivel: sistemas operativos y drivers; alto nivel: IA y desarrollo web empresarial
  3. CAmbos sirven para lo mismo
  4. DBajo nivel: solo videojuegos

Respuesta correcta: B) Bajo nivel: sistemas operativos y drivers; alto nivel: IA y desarrollo web empresarial

Por qué: DRIVER | KERNEL frente a IA/NL | WEB EMPRESARIAL.

27 Repaso

En la abstracción del hardware, ¿qué muestra cada nivel?

  1. ABajo nivel: objetos y funciones; alto nivel: punteros
  2. BBajo nivel: punteros y direcciones (0x7FF...); alto nivel: objetos, atributos y funciones
  3. CAmbos muestran punteros
  4. DAmbos ocultan los registros

Respuesta correcta: B) Bajo nivel: punteros y direcciones (0x7FF...); alto nivel: objetos, atributos y funciones

Por qué: El alto nivel oculta los registros; el bajo nivel opera con ellos.

28 Repaso

Según el slide de optimización de cortocircuito, ¿qué significa "&& + izquierda falsa"?

  1. AQue se evalúa la derecha de todos modos
  2. BFALSO inmediato e ignora la derecha
  3. CQue el resultado es Verdadero
  4. DQue hay que revisar la tabla

Respuesta correcta: B) FALSO inmediato e ignora la derecha

Por qué: Regla gemela: "|| + izquierda verdadera" = VERDADERO inmediato e ignora la derecha.

29 Repaso

Según el slide de optimización de cortocircuito, ¿qué significa "|| + izquierda verdadera"?

  1. AQue se evalúa la derecha de todos modos
  2. BQue el resultado es Falso
  3. CVERDADERO inmediato e ignora la derecha
  4. DQue hay error de sintaxis

Respuesta correcta: C) VERDADERO inmediato e ignora la derecha

Por qué: Es la regla que salva a divisionSegura, cuentaAtras y peligrosa en los ejercicios.