Voici quelques exercices à résoudre en langage C...
 
Rappel: la ligne de compilation recommandée est la suivante.
$ gcc -g -Og -Wall -Wextra -o toto toto.c
 

1   Heures - minutes - secondes

Étant données deux durées en secondes, les convertir en heures - minutes - secondes puis les additioner.

2   Années bissextiles

Déterminer si une année est bissextile.

  • une année est bissextile si elle est divisible par 4 et pas par 100,
  • sauf les années divisibles par 400 qui sont bissextiles

3   Dessiner un sapin

Dessiner un sapin de hauteur h. Exemples (h = 4)

  • sapin plein:
           *
          ***
         *****
        *******
    
  • sapin vide:
           *
          * *
         *   *
        *******
    
  • sapin couché:
           *
          **
         ***
        ****
         ***
          **
           *
    

4   Tables de multiplication

Écrire une fonction affichant la table de multiplication d'un entier sous le format (exemple pour 3):

3   6   9   12   15
18   21   24   27   30

puis une autre affichant cette fois-ci la table dans l'ordre:

3   9   15   21   27
6   12   18   24   30


Écrire un programme C affichant les 10 premières tables de multiplication. Le format d'affichage est demandé à l'utilisateur.

Remarque: si une fonction ne retourne rien, son type de retour est void.

5   Deviner un nombre

Écrire un programme qui réalise le petit jeu suivant. Tout d'abord, l'ordinateur choisit un entier x entre 1 et 100. L'utilisateur essaie ensuite de le deviner. Il entre alors successivement des entiers, et à chaque coup l'ordinateur lui indique si l'entier est supérieur à x, inférieur à x, ou égal à x auquel cas la partie s'arrête et le nombre de coups est affiché.

Modifier ensuite le programme afin que l'utilisateur puisse, s'il le souhaite, recommencer une partie. En quittant le programme, le meilleur score s'affiche.

Voici une fonction retournant un entier entre min et max:

#include <stdlib.h>
#include <time.h>
  
int choisir_nombre(int min, int max) {
  srand(time(NULL));
  return min + rand() % (1+max-min);
}

6   Mise en majuscule

Écrire un programme qui lit un texte saisi au clavier, le met en majuscule et écrit le résultat à l'écran. On pourra utiliser la fonction suivante qui prend un caractère en argument, le convertit en majuscule (si besoin) et retourne le résultat:

#include <ctype.h>
int toupper(int c);


On pourra tester ce programme

  • soit en tapant un texte au clavier;
  • soit en lui donnant le contenu d'un fichier par cat pipo.txt | ./toto ou bien ./toto < pipo.txt.