Conceptos Clave de Programación en C: Fundamentos, Punteros y Control de Flujo

Clasificado en Informática

Escrito el en español con un tamaño de 5,8 KB

Conceptos Clave de Programación en C

Este documento presenta una serie de afirmaciones y fragmentos de código relacionados con la programación en C, evaluando su veracidad y proporcionando explicaciones cuando es necesario. Es una excelente herramienta para repasar y consolidar conocimientos fundamentales.

Fundamentos de Variables, Arrays y Funciones

  1. Un array de enteros es una variable de tipo entero. (F)
  2. El nombre de un array es un apuntador constante. (V)
  3. Una función de tipo void no puede contener la sentencia return. (F)
  4. Una función puede devolver una estructura. (V)
  5. Una función puede tener un parámetro de tipo estructura. (V)

Ejercicios de Control de Flujo y Lógica

Patrones de Impresión con Bucles

  1. El siguiente programa visualiza un patrón de asteriscos en pantalla. (V)
#include <stdio.h>

int main() {
    int i, j;
    for (i = 0; i < 4; i++) {
        for (j = 0; j < i; j++)
            printf("*");
        printf("\n");
    }
    return 0;
}

Explicación del Bucle:

  • 1º iteración (i=0): El segundo bucle for (j = 0; j < 0; j++) no se ejecuta, ya que la condición 0 < 0 es falsa. Se imprime un salto de línea.
  • 2º iteración (i=1): El segundo bucle se ejecuta para j=0 (0 < 1 es verdadero). Se imprime un asterisco (*). Luego, un salto de línea.
  • 3º iteración (i=2): El segundo bucle se ejecuta para j=0 y j=1. Se imprimen dos asteriscos (**). Luego, un salto de línea.
  • 4º iteración (i=3): El segundo bucle se ejecuta para j=0, j=1 y j=2. Se imprimen tres asteriscos (***). Luego, un salto de línea.

Condicionales y Comportamiento Indefinido

  1. El siguiente fragmento de programa puede visualizar 'b'. (F)
int main() {
    int x;
    if (x == 7)
        printf("a");
    else if (x == 7)
        printf("b");
    printf("c");
    return 0;
}

Nota: La variable x no está inicializada, lo que lleva a un comportamiento indefinido al evaluarse x == 7. Por lo tanto, no se puede garantizar la visualización de 'b'.

Análisis de Bucles y Salida

  1. Como resultado de ejecutar el siguiente fragmento de programa se visualiza '2 4 6'. (F)
#include <stdio.h>

int main() {
    int x;
    for (x = 1; x < 7; x++) {
        if (x % 2 != 0)
            printf("%d ", x);
    }
    printf("\n");
    return 0;
}

Nota: Este programa imprime los números impares entre 1 y 6 (excluyendo 7), es decir: '1 3 5'.

Punteros y Estructuras Avanzadas

  1. La siguiente sentencia es correcta: int a, b = 0, *p;. (V)
  2. Los miembros de una estructura son todos del mismo tipo. (F)
  3. La siguiente sentencia es correcta: int a; float *a;. (F)
  4. Los miembros de una estructura son de diferentes tipos siempre. (F)
  5. Los miembros de una estructura pueden ser de tipo estructura. (V)

Manejo de Ficheros en C

  1. Al escribir datos en un fichero abierto como "w" (write) que ya existía, los datos sustituyen a los existentes antes de abrir el fichero. (V)
  2. Al escribir datos en un fichero abierto como "a" (append) que ya existía, los datos quedarán añadidos a continuación de los existentes antes de abrir el fichero. (V)

Sintaxis, Preprocesador y Lógica de Programación

  1. Después de una llamada a función se pone punto y coma (;), salvo que a continuación venga una llave de apertura ({). (F)
  2. La directiva de preprocesador #include <stdio.h> aparece en todos los ficheros fuente en C. (F)

Cálculo de Sumas con Bucles

  1. El siguiente fragmento de programa calcula en la variable suma la suma de los enteros pares entre 8 y 16. (F)
int i, suma;
i = 6;
suma = 0;
do {
    i = i + 2;
    suma += i;
} while (i <= 16);

Nota: Este código calcula la suma de los números pares 8, 10, 12, 14 y 16, lo que resulta en 60. Si "entre 8 y 16" se refiere a un rango exclusivo, la afirmación sería falsa. Si es inclusivo, la suma es correcta, pero la respuesta original indica (F).

Sustitución de Expresiones en Bucles

  1. Si se sustituye expr por pot + i, se visualizará en pantalla '1 2 3 4 5' como resultado de ejecutar el siguiente fragmento de programa. (F)
int i, pot;
pot = 0;
for (i = 1; i < 5; i++)
    printf("%d ", pot + i);

Nota: Con la sustitución propuesta, el programa imprimiría '1 2 3 4', ya que el bucle se ejecuta para i desde 1 hasta 4 (excluyendo 5).

Conceptos Adicionales

  1. FILE *f es una variable destinada a guardar la dirección de una estructura. (V)

Entradas relacionadas: