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
- Un array de enteros es una variable de tipo entero. (F)
- El nombre de un array es un apuntador constante. (V)
- Una función de tipo
void
no puede contener la sentenciareturn
. (F) - Una función puede devolver una estructura. (V)
- 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
- 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ón0 < 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
yj=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
yj=2
. Se imprimen tres asteriscos (***
). Luego, un salto de línea.
Condicionales y Comportamiento Indefinido
- 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
- 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
- La siguiente sentencia es correcta:
int a, b = 0, *p;
. (V) - Los miembros de una estructura son todos del mismo tipo. (F)
- La siguiente sentencia es correcta:
int a; float *a;
. (F) - Los miembros de una estructura son de diferentes tipos siempre. (F)
- Los miembros de una estructura pueden ser de tipo estructura. (V)
Manejo de Ficheros en C
- 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) - 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
- Después de una llamada a función se pone punto y coma (
;
), salvo que a continuación venga una llave de apertura ({
). (F) - La directiva de preprocesador
#include <stdio.h>
aparece en todos los ficheros fuente en C. (F)
Cálculo de Sumas con Bucles
- 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
- Si se sustituye
expr
porpot + 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
FILE *f
es una variable destinada a guardar la dirección de una estructura. (V)