Title: PE Extraordinario.
Course: 2025 - LI - Programacion Estructurada 1-1 y 1-2

Banco de preguntas para el examen extraordinario de Programación Estructurada.

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: Hacer un programa donde dado el modelo de un vehículo y su precio, determine el valor final que debe pagar el comprador. El concesionario hace descuentos según el modelo de acuerdo a la siguiente tabla:

Modelo | Descuento | Precio
1. Durango | 9% | $620,000.00
2. Journey | 7% | $510,000.00
3. Neon | 6% | $380,000.00
4. Attitude | 5% | $250,000.00

#include "stdio.h"

#include "conio.h"

main () {
  float precio, nvoprecio, desc;
  [...];
  printf ("\nModelo del vehiculo, precio y descuento:\n");
  printf ("\n [...] ");
  printf ("\n [...] ");
  printf ("\n [...] ");
  printf ("\n [...] ");
  printf ("\nSeleccione el modelo del vehiculo: ");
  [...];
  switch(modelo) {
    [...] : precio = 620000.00;
                   desc = 0.09;
                   break;
    [...] : precio = 510000.00;
                   desc = 0.07;
                   break;
    [...] : precio = 380000.00;
                   desc = 0.06;
                   break;
    [...] : precio = 250000.00;
                   desc = 0.05;
   }
   nvoprecio = precio - precio * desc;
   printf("\n\nEl precio final de venta es: $%8.2f \n", nvoprecio);
}

(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: float modelo; case (1); case (2); case (3); case (4); case 'a'; scanf ("%f", &modelo); a. Durango $ 620,000.00 9%; b. Journey $ 510,000.00 7%; c. Neon $ 380,000.00 6%; d. Attitude $ 250,000.00 5%; case 'b'; case 'c'; case 'd'
A: char modelo; 1. Durango $ 620,000.00 9%; 2. Journey $ 510,000.00 7%; 3. Neon $ 380,000.00 6%; 4. Attitude $ 250,000.00 5%; modelo = getche(); case '1'; case '2'; case '3'; case '4'

Q: El lenguaje C, es un lenguaje de nivel [...] que permite la manipulación de [...], [...] y [...], que son los elementos básicos con los que funciona la computadora.
La [...] significa que es posible adaptar el software escrito para un tipo de computadora en otra.

(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: robustez; alto; punteros; bajo; compatibilidad
A: medio; bits; bytes; direcciones de memoria; portabilidad

Q: Utilizando programación estructurada y modular (funciones), desarrolle un programa en C que calcule el valor numérico de un polinomio de grado k, de acuerdo a la siguiente expresión:

                      k

(a + b)^k =  Σ \( \frac{\frac{k!}{(k-j)!}}{j!} a^{(k-j)} b^j \)

                    j = 0

Donde:

Σ es la sumatoria desde que  j = 0  hasta k.

Por lo que deberá calcularse como una serie o sumatoria con contador j y límite=k.

a y b   Son dos valores numéricos cualquiera para calcular el polinomio.

k   Es el grado del polinomio.

Teniendo el programa principal y las funciones para calcular el factorial (factorial())y la potencia (pow()), la función para calcular la fórmula anterior, podría resolverse de la siguiente manera:

(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).

float polinomio (int k, float a, float b) {
  float y=0;
  int j;
  for (j=0; j<=k; j++) {
    y += ((float) ([...]/[...])/[...])*[...]*[...];
  }
  return (y);
}
Also offered: pow(a,b); factorial(b); pow(j,k); factorial(j-k)
A: factorial(k); factorial(k-j); factorial(j); pow(a,k-j); pow(b,j)

Q: Defina la estructura general de un programa en lenguaje C arrastrando y colocando el término correspondiente en la posición que considere correcta.

 [...] y [...] globales

 main ( lista de parámetros ) {

   variables locales

   [...]

 }

 [...] función ( lista de parámetros ) {

   variables locales

   [...]

 }

(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: instrucciones; conjunto de instrucciones; instrucciones fundamentales; void; int
A: declaraciones; definiciones; cuerpo del programa; tipo devuelto; secuencia de sentencias

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: 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 [16]] [...];
      [...];
    }
  }
  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: Hacer un programa que calcule la potencia n de x, para cualquier valor entero positivo de n sin usar el archivo de cabecera math.h.  y = x^n

A continuación se presenta la función pow() para calcular la potencia usando recursividad.

// Cálculo de la Potencia sin usar MATH.H

 float pow (float [...] , int [...] ) {
   float [...] [...] [...] ;
   if ( [...] [...] 1 )
     return ( [...] * pow( [...] , [...] ) );
   return ( 1 );
 }

(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: y; ==; x-1; r-1; >
A: x; n; r; =; x; n; =>; r; x; n-1

Q: Sea la matriz A de orden m x n, desarrolle un programa estructurado y modular que lea los elementos de la matriz A y calcule su transpuesta (A^T).

Después debe calcular la multiplicación de la matriz original A, por su transpuesta (R = A * A^T).

Ejemplo:

                       a_11        a_12       a_13       a_14

            A =      a_21        a_22       a_23       a_24

                       a_31        a_32       a_33 a_34

            a_11       a_21       a_31

A^T =     a_12       a_22       a_32

            a_13       a_23       a_33

            a_14       a_24       a_34

                       r_11        r_12       r_13

            R =      r_21        r_21       r_23

                       r_31        r_32       r_33

A continuación se muestran la función que calcula la transpuesta de la matriz A de orden m x n, y la función que calcula la multiplicación de la matriz A por su transpuesta A^T.^

(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).

 void transponer_matriz (int m, int n, int matriz[][MAX], int matrizT[][MAX]) {
   int i, j;
   for( i = 0 ; i < [...] ; i++ ) {
     for( j = 0 ; j < [...] ; j++ ) {
       matrizT [...] = matriz [...];
     }
   }
 }

 void multiplica_matrizT (int m, int n, int matriz1[][MAX], int matriz2[][MAX], int matriz3[][MAX]) {
   int i, j, k;
   for( i = 0 ; i < [...] ; i++ ) {
     for(j = 0 ; j < [...] ; j++ ) {
       matriz3[ i ][ j ] = [...];
       for( k =0 ; k < [...] ; k++ ) {
         matriz3 [ i ][ j ] = matriz3 [ i ][ j ] + matriz1 [...] * matriz2 [...];
       }
     }
   }
 }
Also offered: n; [ i ][ j ]; [ k ][ i ]; m; [ j ][ k ]
A: m; n; [ j ][ i ]; [ i ][ j ]; m; m; 0; n; [ i ][ k ]; [ k ][ j ]

Q: Sea el arreglo a de longitud n, compuesto por los siguientes elementos:

a = {1, 2, 3, 5, 6, 7, 9, 10, 12, 15, 25, 30}

Se desea eliminar un número del arreglo. (En el ejemplo es el 5).

a = {1, 2, 3, 6, 7, 9, 10, 12, 15, 25, 30}

La función de aplicación general para eliminar un elemento del arreglo se muestra a continuación:

Donde:

a   Es el arreglo.

n   Es el número de elementos del arreglo.

b   Es el número que se va a eliminar del arreglo.

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.

int eliminarElemento (int b, int n, int a[ ]) {
  int i = 0, k = 0;
  while (( [...] ) && ( [...] )) {
    i++;
  }
  if ( [...] ) {
    printf("El valor %5i no está en el arreglo", b); }
  else
    for (k=i; k < n-1; k++) {
      [...] = [...];
  }
  return n-1;
}
Also offered: b == a[i]; k < n; i == n; a[k-1]
A: i < n; b != a[i]; i > n; a[k]; a[k+1]

Q: Relacione los conceptos con las definiciones correspondientes, puede haber respuestas de más.
- int | Tipo de dato.
- Punto y coma | Indica el fin de una sentencia.
- Bloque | Conjunto de sentencias con ; después de cada una de ellas que van encerradas entre llaves.
- continue | Palabra clave.
- Comentario | Texto que explica una instrucción o una función.
Also offered: Instrucción que indica un salto a la siguiente sentencia.; Palabra reservada.; Tipo primitivo.

Q: Relacione los conceptos con las definiciones correspondientes, puede haber respuestas de más.
- Orden de formato para números enteros con signo. | %d
- Orden de formato para números enteros sin signo. | %u
- Orden de formato para cadenas. | %s
- Se utiliza como prefijo con los tipos e, E, f, g y G, para especificar que los datos son de tipo long double. | L
- Carácter de barra invertida para salto de línea. | \n
- Carácter de barra invertida para tabulación horizontal. | \t
- Carácter nulo. | \0
- Formato de juego de inspección para aceptar determinados caracteres. | %[ ]
- Orden de formato que imprime una cantidad variable de números reales con dos decimales. | %0.2f
- Orden de formato para leer caracteres hasta encontrar un carácter de salto de línea. | %[^\n]
Also offered: %8i; %10.2g; \r; \o; %[^caracteres]

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: 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: Cuando en una fórmula tenemos la expresión:

y = \( e^{-x} \)

La forma correcta de representarlo en lenguaje C corresponde a:
- y = 1/exp(x);
- y = pow(e, -x);
- y = exp(-x);
- y = e*-x;
A: y = 1/exp(x);

Q: El siguiente es el código desordenado en lenguaje C de la búsqueda binaria, indique cual es la secuencia correcta.

a) | ultimo   =   puntomedio - 1;
b) | else
c) | if ( A[puntomedio] == b )
d) | ultimo   =   n;
e) | if ( A[puntomedio] > b )
f) | primero    =   puntomedio + 1;
g) | posición   =   puntomedio;
h) | encontrado   =   1;
i) | while (( encontrado == 0 ) && ( primero <= ultimo ))  {
j) | if ( encontrado == 1 )
k) | else
l) | puntomedio   =  ( primero + ultimo ) / 2;
m) | encontrado   =   0;
n) | posicion   =   -1;
o) | }
p) | else
q) | primero   =   0;
- c, a, b, l, m, i, d, j, q, g, e, o, k, n, f, p, h (m, q, s, r, c, d, g, l, a, h, b, n, t, o, p, e, j, k, i, f)
- c, q, d, i, m, g, l, b, h, a, n, k, f, o, p, e, j
- m, q, d, i, c, h, b, e, a, k, n, p, o, j, f, l, g
- m, q, c, d, g, l, a, h, b, n, o, p, e, j, k, i, f
- m, q, d, i, l, c, h, b, e, a, k, f, o, j, g, p, n
A: m, q, d, i, l, c, h, b, e, a, k, f, o, j, g, p, n

Q: La siguiente macro contiene un error, indique cual es:

#define radianes  (ang)    (ang)*PI/180.0
- Hay un espacio en blanco entre la palabra radianes y el parámetro (ang).
- Le falta el punto y coma al final.
- Las macros deben escribirse siempre con mayúsculas.
- En la definición de la macro, ang debe ir sin paréntesis.
A: Hay un espacio en blanco entre la palabra radianes y el parámetro (ang).

Q: Orden, prioridad o nivel de importancia de las siguientes operaciones:
- + | 4
- ++ | 2
- == | 7
- && | 11
- % | 3
Also offered: 5; 10; 14

Q: Son objetos de un programa cuyo valor puede cambiar durante la ejecución del mismo, el cambio se produce mediante sentencias ejecutables.
- Variables.
- Constantes.
- Tipos de datos.
- Identificadores.
- Puntero.
A: Variables.

Q: Operador de indirección:
- &
- *
- &&
- ? :
- ^
A: &

Q: Le dice al compilador que incluya el archivo especificado en el programa fuente.
- Directiva de inclusión
- Directiva del preprocesador
- Directiva condicional
- Prototipo de la función
- Biblioteca estándar
A: Directiva de inclusión

Q: Ésta función lee datos de la entrada estándar stdin y los convierte automáticamente al formato interno indicado.
- scanf()
- gets()
- getchar()
- getche()
- getch()
A: scanf()

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: 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: 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);

Q: Defina la estructura de una función en lenguaje C arrastrando y colocando el término correspondiente en la posición que considere correcta.

[...]   [...]   [...]

[...]

[...]

[...]

(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: :; #include; function
A: tipo_devuelto; nombre_función; (parámetros); {; cuerpo_de_la_función; }

Q: Relacione la función indicada con su correspondiente archivo de cabecera.
- fflush() | stdio.h
- exp() | math.h
- ceil() | math.h
- isalpha() | ctype.h
- getch() | conio.h
Also offered: string.h; stdlib.h

Q: Son los bloques básicos con los cuales se construyen los programas en C.
- Funciones.
- Procedimientos.
- Submódulos.
- Métodos.
A: Funciones.

Q: La definición del prototipo de una función tiene el objetivo de... (Puede seleccionar más de uno)
- El orden en el cual serán introducidos los parámetros a la función.
- Los tipos de los parámetros que va a recibir.
- El tipo de dato devuelto por la función.
- El número de parámetros que recibirá la función.
- Que el programador tenga una lista de funciones.
A: El orden en el cual serán introducidos los parámetros a la función.; Los tipos de los parámetros que va a recibir.; El tipo de dato devuelto por la función.; El número de parámetros que recibirá la función.

Q: En este tipo de funciones el parámetro introducido debe estar en radianes (puede haber más de una respuesta).
- Función tan()
- Función exp()
- Función sqrt()
- Función ceil()
- Función cosh()
A: Función tan(); Función cosh()

Q: Se pide calcular el área de un segmento de círculo con radio r y ángulo central ang en grados.

Area de un Segmento = \( \frac {π·r^2·Ang}{360} - \frac{r^2 ·sen(Ang)}{2}\)

Si tenemos definidas las siguientes constantes simbólicas y macro:

#define PI 3.1416
#define radianes(ang) (ang)*PI/180

¿Cuál será la forma correcta para definir la función que calcula la fórmula mostrada?

(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).

float  areaSegmento  (float r,  float ang) {
return (([...] * [...] * [...])/360 - ([...] * sin([...])) / 2);
}
Also offered: r*r; r^2; (float); sin(ang)
A: PI; pow(r,2); ang; pow(r,2); radianes(ang)

Q: Aplicando programación estructurada y modular, escriba un programa en lenguaje C que lea un arreglo de n números enteros no negativos y encuentre todos los múltiplos de 3.
Una vez que identifique todos los múltiplos de 3 deberá imprimir el total de números en la lista; guardar en otro arreglo e imprimir la ubicación en orden ascendente de los múltiplos de 3 de la lista original separadas por espacios; finalmente, deberá guardar en otro arreglo y mostrar los múltiplos de 3 encontrados.
Si no hay múltiplos de 3, solo deberá imprimir: “No hay múltiplos de 3”

Ejemplo 1

Entrada:
 n = 8
 7   10   12   8   9   3   29   30

Salida:
   4
   2   4   5    7
 12   9   3   30

Descripción:
4 enteros en la lista son múltiplos de 3.
Se encuentran en las posiciones: 3 5 6 8
Son los números: 12 9 3 30

Ejemplo 2

Entrada:
 n = 8
 7   16   49   2   10   28   55   31

Salida:
 No hay múltiplos de 3.

Descripción:
Ningún número en la lista es múltiplo de 3.

La función que identifica los múltiplos de tres y su ubicación es la siguiente:

(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).

 void cuentaTres(int n, int tres[]) {
   int num, [...], i, j;
   for(i=0; i<n; i++) {
     scanf("%i", &num);
     if ([...] [...] [...] [...] [...]) {
       [...];
       [...]=[...];
     }
   }
   if ([...])
     printf("No hay triples.");
   else {
     printf("Se encontraron %i triples \n", c);
     for (j=1; j<=c; j++)
       printf("%5i", tres[j]);
   }
 }
Also offered: i++; /; !=; c != 0; tres[i]
A: c = 0; num; %; 3; ==; 0; c++; tres[c]; num; c == 0

Q: Sea el Arreglo A de doce elementos ordenados, el cual guarda los siguientes valores.

1 | 2 | 3 | 5 | 6 | 7 | 9 | 10 | 12 | 15 | 25 | 30

Aplicando programación estructurada y modular, desarrolle un programa en lenguaje C que elimine un elemento del arreglo (el número 5 en el ejemplo), pero manteniendo el orden de los elementos como se muestra a continuación:

1 | 2 | 3 | 6 | 7 | 9 | 10 | 12 | 15 | 25 | 30 |

A continuación se presenta la función que elimina un elemento del arreglo.

(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).

  int elimina_vector (int n, int a[]) {
   int i = 0, j, k, num, pos = -1;
   char op;

   for (k=0; k < n; k++) {
     printf("%4i",a[k]);
   }
   puts("Selecciona el elemento que vas a eliminar. ");
   scanf("%i", &num);

   for (i=0; [...]; i++) {
     if ( [...] [...] [...] )
       pos = [...];
   }

   if (pos [...] 0) {
     n = [...];
     for (j=[...]; j<n; j++) {
       [...] = [...];
     }
   }
   return n;
 }
Also offered: a[j-1]; i<=n; n + 1; a[i]; a[i+1]; k; =; !=; >; j
A: i<n; num; ==; a[i]; i; >=; n - 1; pos; a[j]; a[j+1]

Q: A continuación se presenta en forma desordenada, el código en lenguaje C del algoritmo de ordenación por burbuja mejorado usando while, indique cual es la secuencia correcta.

a) | if ( A[j] > A[j+1] )  {
b) | while (( paso <= n - 1 ) && ( intercambio ))  {
c) | A[j+1]      = Aux;
d) | Aux         = A[j];
e) | intercambio = 1;
f) | }
g) | for ( j = 0 ; j < n - paso ; j++ )  {
h) | paso++;
i) | A[j]        = A[j+1];
j) | intercambio = 0;
k) | }
l) | paso = 1;
m) | intercambio = 1;
n) | }
- j, l, b, e, c, g, a, i, h, d, f, k, m, n
- m, l, g, j, b, e, d, c, a, f, h, k, i, n
- m, j, a, c, g, n, e, d, f, h, b, k, i, l
- e, a, n, f, j, g, c, l, b, m, i, h, d, k
- e, l, b, j, g, a, m, d, i, c, n, f, h, k
A: e, l, b, j, g, a, m, d, i, c, n, f, h, k

Q: A continuación se presenta en forma desordenada, el código el lenguaje C de ordenación por selección, indique cual es la secuencia correcta:

a) | posicion    =   k;
b) | posicion    =   j;
c) | if (menor > A[k] )  {
d) | Aux    =   A[j];
e) | for (k = j+1 ; k < n ; k++) {
f) | A[j]    =   A[posicion];
g) | menor    =   A[k];
h) | }
i) | }
j) | for (j = 0 ; j < n-1 ; j++)  {
k) | A[posicion]    =   Aux;
l) | menor    =   A[j];
m) | }
- j, l, b, e, c, g, a, i, h, d, f, k, m
- m, l, g, j, b, e, d, c, a, f, h, k, i
- m, j, a, c, g, e, d, f, h, b, k, i, l
- e, a, f, j, g, c, l, b, m, i, h, d, k
- e, l, b, j, g, a, m, d, i, c, f, h, k
A: j, l, b, e, c, g, a, i, h, d, f, k, m