Cours 6.5. Exercices sur les boucles en C

Exercice 1

Écrire un programme qui affiche toutes les combinaisons d'un tirage de deux dés à 6 faces :

de1=1 de2=1
de1=1 de2=2
de1=1 de2=3
de1=1 de2=4
de1=1 de2=5
de1=1 de2=6
de1=2 de2=1
de1=2 de2=2
de1=2 de2=3
...

Exercice 2

Écrire un programme qui affiche la table ASCII de 32 à 127. Pour chaque caractère, le programme affiche le code ASCII en décimal et en hexadécimal :

┏━━━━━━━━━━━━━━━━┓
┃    ASCII TABLE    ┃
┗━━━━━━━━━━━━━━━━┛
| DEC | HEX | ASCII |
|-----|-----|-------|
|  32 |  20 |       |
|  33 |  21 |   !   |
|  34 |  22 |   "   |
|  35 |  23 |   #   |
|  36 |  24 |   $   |
|  37 |  25 |   %   |
|  38 |  26 |   &   |
|  39 |  27 |   '   |
|  40 |  28 |   (   |
|  41 |  29 |   )   |
|  42 |  2a |   *   |
|  43 |  2b |   +   |
|  44 |  2c |   ,   |

Exercice 3

Écrire un programme qui affiche un carré de côté WIDTH x HEIGHT caractères. WIDTH et HEIGHT sont des constantes :

#define   WIDTH     16
#define   HEIGHT    3

Voici un exemple avec les valeurs définies ci-dessus :

***************
***************
***************

Exercice 4

Écrire un programme qui affiche un triangle conformément à l'exemple ci-dessous :

*******
 ******
  *****
   ****
    ***
     **
      *

La taille du triangle est définie par une constante WIDTH. Dans l'exemple ci-dessus, WIDTH vaut 7.

Exercice 5

Écrire un programme qui affiche tous les diviseurs d'un entier saisi par l'utilisateur :

Entrez un entier positif : 30
1 est un diviseur de 30
2 est un diviseur de 30
3 est un diviseur de 30
5 est un diviseur de 30
6 est un diviseur de 30
10 est un diviseur de 30
15 est un diviseur de 30
30 est un diviseur de 30

Exercice 6

Écrire un programme qui affiche tous les tirages possibles du loto (5 boules numérotées de 1 à 49). Attention, ce n'est pas un tirage avec remise, chaque boule ne peut apparaître qu'une fois dans chaque tirage.

 1  2  3  4  5
 1  2  3  4  6
 1  2  3  4  7
 1  2  3  4  8
 1  2  3  4  9
 1  2  3  4 10
 1  2  3  4 11
 1  2  3  4 12
 1  2  3  4 13
 1  2  3  4 14
 1  2  3  4 15
 1  2  3  4 16
 1  2  3  4 17
 1  2  3  4 18
 1  2  3  4 19
 1  2  3  4 20
 1  2  3  4 21
 1  2  3  4 22
 1  2  3  4 23

Avez-vous conscience que si ce programme fonctionne correctement, il affiche le prochain tirage gagnant du loto ? 😁 🤑

Exercice 7

Fizz-Buzz est un jeu dans lequel les joueurs doivent compter à tour de rôle. Mais lorqu'un joueur doit dire un multiple de 3, il le remplace par Fizz. Si c'est un multiple de 5, il le remplace par Buzz. Si c'est un multiple de 3 et de 5, il doit dire Fizz-Buzz. Écrire un programme qui affiche la séquence du jeu pour les 100 premiers nombres :

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
Fizz-Buzz
16
17

Cet exercice est un test utilisé dans des entretiens d'embauche. Il permet d'estimer la capacité d'un développeur à coder proprement. Il existe plusieurs façons de programmer ce jeu. Dans le corrigé, c'est la lisibilité qui a été privilégiée, mais cette solution n'est pas optimale car elle répète plusieurs fois les mêmes tests. La vidéo suivante détaille l'évolution d'une solution naïve vers une solution plus élégante. Notons que la solution finale de la vidéo n'est pas adaptée au C. Toutefois, le processus de réflexion n'en reste pas moins intéressant.

Exercice 8

Écrire un programme qui demande à l'utilisateur de saisir un entier positif. Le programme affiche alors ce nombre en chiffres romains :

Entrez un entier positif : 2022
2022 s'écrit MMXXII en chiffres romains.

La solution proposée ci-dessous a été écrite par Maxime JOMEAU, que je remercie pour son travail.

Voir aussi


Dernière mise à jour : 22/11/2022