Aller au contenu

Exercices en langage C/Notions de base

Un livre de Wikilivres.

Ces exercices sur les notions de base abordent :

  • définition de fonction
  • la fonction main
  • l'appel de fonction
  • la bibliothèques standard, l'inclusion avec le préprocesseur
  • la sortie formatée avec printf
  • les paramètres de main

Exercice 1 : programme minimal nop

[modifier | modifier le wikicode]

Écrire un programme qui ne fait rien (nop signifie no operation, soit « aucune opération »).

Pour le compiler et l'exécuter :

> gcc -Wall -o nop.exe nop.c
> ./nop.exe
>

Remarque qualité :

  • L'option -Wall n'est pas obligatoire. Elle demande au compilateur de signaler toutes les fautes qu'il peut détecter. Cela produit quelquefois des warnings ou avertissement que le programmeur, désireux de produire un code de qualité, s'efforcera de comprendre la signification et de corriger.
  • Je donne l'extension .exe à l'exécutable produit pour l'identifier plus facilement. Sous Windows l'extension .exe est obligatoire et rajoutée par l'éditeur de lien si oubli.

Notions :

  • définition de fonction
  • fonction principale main servant de point d'entrée
  • valeur retournée par une fonction

Exercice 2 : programme false

[modifier | modifier le wikicode]

Dans les faits, le programme précédent retourne toujours le code de succès 0 ; il correspond donc à la commande Unix true. La commande true retourne systématiquement le code de succès 0.

MacMini-TM:~ thierry$ true
MacMini-TM:~ thierry$ echo $?
0

Pour écrire faux (équivalent du programme UNIX false), cet exercice introduit une complication : l'appel d'une fonction contenue dans le même fichier source que la fonction principale main.

Écrire la fonction main() d'un programme faux qui appelle la fonction un suivante et retourne sa valeur à la sortie :

La fonction a appeler :

int un(void)
{
  return 1;
}

Pour compiler et exécuter :

> gcc -Wall -o faux.exe faux.c
> ./faux.exe
> echo $?
1

Notions :

  • déclaration de fonction
  • appel de fonction
  • prototype de fonction

Exercice 3 : programme hello, world

[modifier | modifier le wikicode]

Écrire un programme qui affiche hello, world.

> gcc  -o hello.exe hello.c
> ./hello.exe
hello, world
>

Notions :

  • inclusion d'en-tête standard
  • passage de paramètres de fonction
  • printf
  • chaîne de caractères statique

Exercice 4 : programme comptant les arguments en ligne de commande

[modifier | modifier le wikicode]

Écrire un programme qui affiche le nombre de paramètres en ligne de commande (en anglais, les arguments sont les données passées au programme, ou à une fonction).

Compilation et exécutions attendues :

> gcc -Wall -o arg.exe arg.c 
> ./arg.exe
0
> ./arg.exe foo bar
2

Notions :

  • paramètres de main
  • sortie formatée