Instructions

Nous allons apprendre les bases de la syntaxe en langage C, limités volontairement aux concepts fondamentaux : macros, printf, debug macros (LINE, FILE), variables simples, et tableaux statiques. Chaque exercice doit être rangé dans un dossier séparé suivant la structure :

c-unix-nom-prenom/
└── td2/
    ├── exo1/
    │   └── main.c
    └── exo2/
        └── main.c

Toutes les compilations se font avec :

gcc -Wall -o main main.c
./main

Tous les éxercices sont a faire sur les VM unix : 172.16.20.1:8006 avec vos identificants 3il. Vous allez voir git cet aprem. Pour travailler a la maison et sur windows, mingwin32 ou wsl peuvent être utile afin de compilé dans un environement similaire.

Exercice 1 : Prise en main du compilateur

  1. Créez un fichier /exo1/main.c
  2. Écrivez un programme qui affiche la phrase : Bonjour le monde !
  3. Compilez et exécutez-le.

Exemple attendu

Bonjour le monde !

Documentation

Exercice 2 : Types simples et affichage formaté

  1. Créez /exo2/main.c
  2. Déclarez trois variables :
    - un entier a = 42
    - un flottant pi = 3.14159f
    - un caractère lettre = 'A'
  3. Affichez leurs valeurs avec printf en respectant les formats %d, %f, %c.
a = 42
pi = 3.14
lettre = A

Exercice 3 : Lecture avec scanf

  1. Créez /exo3/main.c
  2. Lisez un entier saisi au clavier, puis affichez-le avec printf.
Entrez un nombre : 12
Vous avez saisi : 12

Exercice 4 : Macros de constantes

  1. Créez /exo4/main.c
  2. Définissez PI et GRAVITE comme macros constantes.
  3. Affichez leurs valeurs.
PI = 3.14159
Gravite = 9.81000

Exercice 5 : Macros fonctionnelles

  1. Créez /exo5/main.c
  2. Définissez les macros :
    - SQUARE(x) renvoie le carré
    - DOUBLE(x) renvoie le double
  3. Testez-les avec différents entiers.
SQUARE(3) = 9
DOUBLE(5) = 10
SQUARE(3+2) = 10

Exercice 6 : Découvrir les macros prédéfinies.

  1. Créez /exo7/main.c
  2. Affichez les macros suivantes :
    - __FILE__
    - __LINE__
    - __DATE__
    - __TIME__
    - __linux__
Fichier : main.c
Ligne   : 10
Date    : Nov 12 2025
Heure   : 08:42:18
Linux   : 1

Exercice 7 : Compilation conditionnelle

Objectif : Comprendre #ifdef, #ifndef, et #else.

  1. Créez /exo6/main.c
  2. Définissez DEBUG si elle n’est pas déjà définie.
  3. Affichez un message différent selon la présence de DEBUG.
  4. Ne définissez pas DEBUG mais ajoutez -DDEBUG à la commande gcc
Mode debug activé (ligne 12, fichier main.c)

Exercice 8 : Tableaux statiques et parcours

  1. Créez /exo8/main.c
  2. Déclarez int notes[5] = {12, 14, 9, 15, 10};
  3. Utilisez une boucle for pour afficher chaque note.
Note[0] = 12
Note[1] = 14
Note[2] = 9
Note[3] = 15
Note[4] = 10

Exercice 9 : Moyenne avec scanf

  1. Saisissez 3 notes dans un tableau float notes[3];
  2. Calculez la moyenne.
  3. Affichez le résultat avec printf("Moyenne = %.2f\n", moyenne);
Entrez 3 notes :
10 14 12
Moyenne = 12.00

Exercice 10 : Macros et debug personnalisé

Créer une macro LOG(msg) active uniquement si DEBUG est défini.

  1. Créez /exo10/main.c
  2. Utilisez-la pour afficher différentes étapes de votre programme.
DEBUG (main.c:12): Initialisation
DEBUG (main.c:15): Calcul terminé