entender qué es C, escribir tu primer programa y dominar el ciclo *escribir → compilar → ejecutar → corregir*.
Incluye 3 ejercicios con pistas y solución y un quiz de 5 preguntas. Tiempo estimado: 40 minutos.
1. ¿Por qué C?
C (1972) es el lenguaje sobre el que se construyen sistemas operativos, bases de datos, navegadores, videojuegos y microcontroladores. Te da control total sobre la memoria y la máquina, a cambio de que seas tú quien se haga responsable. Aprender C te enseña cómo funciona realmente un ordenador, y eso mejora tu forma de programar en cualquier otro lenguaje.
C es un lenguaje compilado: un programa llamado compilador traduce tu código fuente (.c) a un ejecutable en código máquina.
hola.c ──(preprocesador)──▶ ──(compilador)──▶ hola.o ──(enlazador)──▶ hola.exe
2. Anatomía del programa mínimo
#include <stdio.h> // 1) trae las declaraciones de printf, scanf...
int main(void) { // 2) el programa empieza aquí
printf("Hola, mundo!\n"); // 3) una sentencia: termina en ;
return 0; // 4) 0 = "todo ha ido bien"
}
#include <stdio.h>: instrucción del preprocesador; pega el contenido del header de entrada/salida estándar.int main(void): función de entrada. Devuelve unintal sistema operativo.printf("..."): imprime texto.\nes el salto de línea. Otros escapes:\ttabulador,\\barra,\"comillas.- Cada sentencia acaba en
;y los bloques van entre{ }. - Comentarios:
// una líneay/* varias líneas */.
3. Los errores se leen de arriba abajo
hola.c:5:5: error: expected ';' before 'return'
Formato: fichero:línea:columna: tipo: mensaje.
- Corrige solo el primer error y recompila: los siguientes suelen ser consecuencia del primero.
- A veces el error está en la línea anterior a la que se señala (un
;olvidado se detecta en la siguiente). - Hay errores (no compila) y avisos o warnings (compila pero sospecha). Trata los warnings como errores.
4. Prueba esto (2 minutos)
- Quita el
;tras elprintfy compila. Lee el mensaje. - Cambia
printfporprinft. ¿Qué dice ahora el compilador? - Escribe
printf("a\tb\nc\n");y adivina la salida antes de ejecutar.
Resumen
| Concepto | Recuerda |
|---|---|
| Compilar | Traducir .c a ejecutable antes de ejecutar |
main |
Punto de entrada; return 0 = éxito |
; |
Termina cada sentencia |
| Errores | Se leen desde el primero; fichero:línea:col |
Siguiente paso: python curso.py empezar 1 y luego python curso.py quiz 1.
Ejercicios prácticos del módulo 1
Programar se aprende programando: intenta cada ejercicio antes de mirar las pistas, y usa la solución solo para comparar. Marca los que resuelvas y tu progreso se guarda en este navegador.
1.1 Hola, mundo
Entrada de ejemplo
(ninguna)
Salida esperada
Hola, mundo!
Tu punto de partida
#include <stdio.h>
int main(void) {
// TODO: imprime "Hola, mundo!" y salta de linea
return 0;
}Cópialo en tu editor, complétalo, compílalo (gcc -Wall -Wextra programa.c -o programa) y prueba la entrada de ejemplo. Para que se corrija solo con varios casos de prueba, descarga el curso.
Pista 1
La funcion que imprime por pantalla es printf, y vive en <stdio.h>.
Pista 2
printf("texto"); -- el texto va entre comillas dobles y la sentencia acaba en ;
Pista 3
Para el salto de linea, anade \n dentro del texto: "Hola, mundo!\n"
Ver solución (inténtalo antes)
#include <stdio.h>
int main(void) {
printf("Hola, mundo!\n");
return 0;
}1.2 Dibuja con asteriscos
Entrada de ejemplo
(ninguna)
Salida esperada
*
***
*****
|
Tu punto de partida
#include <stdio.h>
int main(void) {
// TODO: dibuja el arbol con 4 printf
return 0;
}Cópialo en tu editor, complétalo, compílalo (gcc -Wall -Wextra programa.c -o programa) y prueba la entrada de ejemplo. Para que se corrija solo con varios casos de prueba, descarga el curso.
Pista 1
Cada linea es un printf distinto terminado en \n.
Pista 2
Cuenta bien los espacios: la primera linea tiene 4 espacios y 1 asterisco.
Ver solución (inténtalo antes)
#include <stdio.h>
int main(void) {
printf(" *\n");
printf(" ***\n");
printf(" *****\n");
printf(" |\n");
return 0;
}1.3 Caza los errores de compilacion
Entrada de ejemplo
(ninguna)
Salida esperada
Arreglado! 2 + 3 = 5
Tu punto de partida
#include <stdio.h>
int main(void) {
int a = 2
int b = 3;
printf("Arreglado!\n")
printf("%d + %d = %d\n", a, b, a + b);
retrun 0;
}Cópialo en tu editor, complétalo, compílalo (gcc -Wall -Wextra programa.c -o programa) y prueba la entrada de ejemplo. Para que se corrija solo con varios casos de prueba, descarga el curso.
Pista 1
Hay 3 errores. El compilador te da la linea de cada uno: empieza por el primero.
Pista 2
Dos sentencias no terminan en punto y coma, y hay una palabra reservada mal escrita.
Ver solución (inténtalo antes)
#include <stdio.h>
int main(void) {
int a = 2;
int b = 3;
printf("Arreglado!\n");
printf("%d + %d = %d\n", a, b, a + b);
return 0;
}Quiz del módulo 1
5 preguntas para comprobar que has fijado los conceptos. Las opciones se barajan cada vez.