Title: EstructurasControl
Course: 2025 - LI - Programacion Estructurada 1-1 y 1-2

Banco de preguntas sobre los conceptos básicos de las estructuras de control.

Feedback shared by this category's questions, if right: Su respuesta es correcta.
Feedback shared by this category's questions, if partly right: Su respuesta es parcialmente correcta.
Feedback shared by this category's questions, if wrong: Su respuesta es incorrecta.

Q: La programación estructurada, es [...] que utiliza [...], lo que facilita [...].
La programación estructurada recibe este nombre, porque hace uso de [...]. La programación estructurada se fundamenta en [...].

(Seleccione y arrastre el cuadro de respuesta que crea correcto en la posición que considera debe ir, puede haber cuadros de respuestas de más)
Also offered: las Estructuras de Control; una técnica de programación; un conjunto de instrucciones; la programación; programación eficiente
A: una metodología de programación; una lógica ordenada y simple; su entendimiento y corrección; las Estructuras Lógicas de Programación; el Teorema de la Estructura

Q: Son las encargadas de controlar las acciones que lleva a cabo un método o un programa.
- Sentencias de control
- Estructuras selectivas
- Estructuras secuenciales
- Estructuras de repetición
- Instrucciones
A: Sentencias de control

Q: Relacione los conceptos con las definiciones correspondientes, puede haber respuestas de más.
- Es la indicación de un proceso, el cual puede involucrar una o más acciones. | Estructuras secuenciales
- Se basan en la evaluación de expresiones lógicas a través del uso de los operadores de relación y operadores lógicos. | Estructuras selectivas
- Ejecutan acciones, sentencias o procesos de forma iterativa mientras se cumpla o hasta que deje de cumplirse una condición particular. | Estructuras repetitivas
- Indica la acción repetitiva de una secuencia mientras una condición sea cumplida. La secuencia se ejecuta por lo menos una vez. | Estrcutura do - while
- Esta estructura indica la elaboración de un proceso de acuerdo a una expresión que se evalúa denominada expresión condicional. | Estructura if - else
Also offered: Estructura while; Estructura switch - case; Estructura for; Operador ternario

Q: En C se pueden enlazar dos o más sentencias. Esto se llama:
- Bloque de código
- Bloque con llaves
- Conjunto de sentencias
- Unidad lógica
- Código enlazado
A: Bloque de código

Q: El operador ternario puede sustituir a una sentencia:
- if - else
- if
- switch - case
- do - while
- while
A: if - else

Q: Esta sentencia funciona comparando una variable con un conjunto de constantes. Tan pronto como encuentra una igualdad entre la variable y una de las constantes, se ejecuta el correspondiente conjunto de sentencias.
- switch
- if
- if - else
- while
- for
A: switch

Q: Cuando un ciclo está contenido dentro de otro ciclo, se denomina:
- Ciclo anidado
- Ciclo combinado
- Bloque de código
- Conjunto de estructuras de repetición
- Condición compuesta
A: Ciclo anidado

Q: Dada la longitud de cada uno de los lados de un triángulo, definir si es: Equilátero (tres lados iguales), Isósceles (dos lados iguales) o Escaleno (tres lados diferentes). El siguiente programa en lenguaje C muestra la solución del problema aplicando lógica inversa.

Seleccione y arrastre el cuadro de respuesta que crea correcto en la posición que considera debe ir, puede haber cuadros de respuestas de más.

#include "stdio.h"

 [...] () {

  int a, b, c;
  scanf("%i", &a);      // lado a
  scanf("%i", &b);      // lado b
  scanf("%i", &c);      // lado c

  if ( [...] )
    if ( [...] )
      puts(" [...] ");
    else
      puts(" [...] ");
  else
    if ( [...] )
      puts(" [...] ");
    else
      if ( [...] )
        puts(" [...] ");
      else
        puts(" [...] ");
 }
Also offered: a == c; b == c; a == b; Isosceles; a == c
A: main; a != b; a != c; Escaleno; Isosceles; a != c; Isosceles; b != c; Isosceles; Equilatero

Q: Es la unidad ejecutable más pequeña de un programa C.
- Sentencia
- Operación
- Instrucción
- Comando
- Sentencia de asignación
A: Sentencia

Q: Es una colección de sentencias encerradas entre llaves y pueden ser utilizadas dentro de un estructura selectiva o una repetitiva.

(Puede haber más de una respuesta)
- Sentencia compuesta
- Bloque de sentencias
- Bloque de código
- Expresión compuesta
- Sentencias enlazadas
A: Sentencia compuesta; Bloque de sentencias

Q: Operador monario utilizado dentro de una condición para evaluar un ciclo.
- !
- ++
- ^
- --
- -
A: !

Q: ¿Qué nombre reciben las variables que controlan el número de iteraciones de un ciclo?
- Variable de control
- Acumulador
- Variable lógica
- Variable de conteo
- Variable condicional
A: Variable de control

Q: Analice cuidadosamente el siguiente código de programa para convertir grados Centígrados a Fahrenheit.

 °F = 9/5  °C  +  32

 #include "stdio.h"

 main () {

   float f, c;

   printf("Grados Celsius: ");

   scanf("%f", &c);

   f = 9 / 5 * c + 32;

   printf("Grados Farenheit: %8.2f \n", f);

 }

¿Cuál será el resultado obtenido al correr el programa, teniendo como datos: 21.666?
- 53.67
- 71
- 0
- Error de compilación
- No corre
A: 53.67

Q: Dado un número entero, hacer un programa que determine si el número es par, impar o cero.

¿Cuál será la condición más adecuada para evaluar en el siguiente código?

#include "stdio.h"

main () {
  int n;
  printf ("Dame el valor de n: ");
  scanf ("%d", &n);
  if (n == 0)
    printf ("\nEs cero.");
  else
    if ( <condición> )
      printf ("\nEs par.");
    else
      printf ("\nEs impar.");
}
- n % 2 == 0
- n % 2 != 0
- n % 2 = 0
- n / 2 == 0
- n % 2 != 1
A: n % 2 == 0

Q: Dada la longitud de cada uno de los lados de un triángulo, definir si es: Equilátero (tres lados iguales), Isósceles (dos lados iguales) o Escaleno (tres lados diferentes). El siguiente programa en lenguaje C muestra la solución del problema aplicando lógica inversa.

Seleccione y arrastre el cuadro de respuesta que crea correcto en la posición que considera debe ir, puede haber cuadros de respuestas de más.

#include "stdio.h"

main () {

  int a, b, c;
  scanf("%i", &a);      // lado a
  scanf("%i", &b);      // lado b
  scanf("%i", &c);      // lado c

  if ( [...] [...] [...] [...] [...] )
    puts("Es Escaleno");
  else
    if ( [...] [...] [...] [...] [...] )

      puts("Es Isosceles");
    else
      puts("Es Escaleno");
}
Also offered: (a == c); (a == b); (b == c); (a == c); (a == b)
A: (a != b); &&; (a != c); &&; (b != c); (a != b); ||; (a != c); ||; (b != c)

Q: En una tienda se efectúan descuentos al cliente según el volumen de compra:

Si el monto es menor que    $   25,000.00, inclusive.       No hay descuento.

Monto entre $ 25,000.00  y  $   50,000.00, inclusive.        5% de descuento.

Monto entre $ 50,000.00  y  $   75,000.00, inclusive.      10% de descuento.

Monto entre $ 75,000.00  y  $ 100,000.00, inclusive.      15% de descuento.

Si el monto es mayor a  $ 100,000.00                            20% de descuento.

Desarrolle un programa que calcule lo que debe pagar el cliente según el monto de la compra.

#include "stdio.h"

main () {
  float monto, precio, desc;

  scanf ("%f", &monto);
    if [...]
      desc = 0.0;
    else
      if ( [...] [...] [...] )
        desc = 0.05;
      else
        if ( [...] [...] [...] )
          desc = 0.10;
        else
          if ( [...] [...] [...] )
            desc = 0.15;
          else
            desc = 0.20;

  precio = monto - monto * desc;

  printf("\n\nMonto final a pagar: $%8.2f \n", precio);
}

(Seleccione y arrastre el cuadro de respuesta que crea correcto en la posición que considera debe ir, puede haber cuadros de respuestas de más)
Also offered: ||; (monto < 100000.00); (monto < 50000.00); (25000.00 >= monto); (monto > 50000); ||; ||; (75000 > monto)
A: (monto <= 25000.00); (25000.00 < monto); &&; (monto <= 50000.00); (50000.00 < monto); &&; (monto <= 75000.00); (75000.00 < monto); &&; (monto <= 100000.00)

Q: Hacer un programa que lea un número entero N y calcule el resultado de la siguiente serie:

\( Y = 1 - \frac{1}{2} + \frac{1}{3} - \frac{1}{4} + \frac{1}{5} - \frac{1}{6} + ••• ± \frac{1}{N} \)

#include "stdio.h"

main () {
  int i, n;
  [...];
  [...];
  printf ("Valor limite: ");
  scanf ("%d", &n);
  for (i=1; i<=n; i++) {
    if ([...]) {
      y [...] [...];
      [...];
    }
    else {
      y [...] [...];
      [...];
    }
  }
  printf ("\nEl resultado es: %f\n", y);
}

Para un valor de n = 5, el resultado sería: [...]

(Seleccione y arrastre el cuadro de respuesta que crea correcto en la posición que considera debe ir, puede haber cuadros de respuestas de más)
Also offered: 2.2833; 0.2833; -0.7833; int y = 0; int b = 1; b == 1; b = 0; i % 2 == 0; b = 1; b == false; b == 0
A: float y = 0; bool b = true; b == true; +=; (float) 1/i; b = false; -=; (float) 1/i; b = true; 0.7833

Q: Haga un programa que calcule la serie de FIBONACCI, mientras el número no exceda de 10,000. Los dos primeros números de la serie son 0 y 1, el resto se calcula como la suma de los dos inmediatos números que le preceden. Por lo tanto no es necesario leer el valor límite.

Ejemplo:        0, 1, 1, 2, 3. 5, 8, 13, 21, 34, 55, ... , 10000

#include "stdio.h"

main () {
  int primero = 0, segundo = 1, serie;
  printf ("%d\n%d\n", primero, segundo);
  [...] {
    [...] = [...] + [...];
    [...] = [...];
    [...] = [...];
    printf ("%d\n", [...]);
  } [...]
}

(Seleccione y arrastre el cuadro de respuesta que crea correcto en la posición que considera debe ir, puede haber cuadros de respuestas de más)
Also offered: for (serie=0; serie<=10000; serie++); while (serie<10000); ;; serie++; primero++; segundo++
A: do; serie; primero; segundo; primero; segundo; segundo; serie; serie; while (serie<10000);

Q: Calcule e imprima la sucesión de ULAM. Los pasos para construirla son los siguientes:

a) Comience con cualquier entero positivo.

b) Si el número es par, divídalo entre 2; si el número es impar, multiplíquelo por 3 y súmele 1.

c) Obtenga enteros sucesivamente, repitiendo el proceso indicado en el paso b).

d) El resultado final es 1.

Ejemplo, si el entero inicial es 26, la secuencia será:

            26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1.

#include "stdio.h"

main () {
  int n;
  printf ("Valor de n: ");
  scanf ("%i", &n);
  printf ("\n %i", n);
  [...] {
    if ( [...] )
      [...];
    else
      [...];
    printf ("\n %i", n);
  } [...]
}

(Seleccione y arrastre el cuadro de respuesta que crea correcto en la posición que considera debe ir, puede haber cuadros de respuestas de más)
Also offered: while (n > 1); ;; n % 2 != 1; n = n % 2; while (n >= 1);; while (n != 1);
A: do; n % 2 == 0; n = n / 2; n = n * 3 + 1; while (n > 1);