Auteur : SD
Créé le : 04-01-2025
Exercices de programmation en langage C (boucles et printf)
Une série d'exercices pour "jouer" avec les boucles et la fonction printf.
Exercice 1
Afficher la table ASCII (valeur en décimal, valeur en hexadécimal et caractère correspondant pour les valeurs 0 à 127. Les caractères dont le code est inférieur à 32 ne seront pas affichés. On affichera 6 caractères par lignes.
Résultat attendu :
Voir l'aide
PRINTF
Les spécificateurs de format :
- %c permet dafficher un caractère
- %x permet dafficher une valeur en hexadécimal
- %hhu permet dafficher la valeur dun unsigned char en décimal
Les caractères spéciaux :
- \n permet dinsérer un saut de ligne
- \t permet dinsérer une tabulation
Le formatage :
- Pour aligner les valeurs il est possible dimposer à printf dimprimer un nombre minimun de caractères :
printf("%3hhu", nb); // ici printf "imprime" minimum 3 caractères, il ajoute des espaces à gauche
printf("%02x", nb); // ici printf "imprime" minimum 2 caractères, il ajoute des 0 à gauche
Voir le corrigé
#include <stdio.h> // Inclure la bibliothèque STanDard Input Output
// permet d'utiliser, entre autre, printf et scanf
int main()
{
unsigned char i;
for( i = 0 ; i < 128 ; i++ ) // Codes ASCII de 0 à 127
{
printf("%3hhu 0x%02x : ", i, i); // Affiche valeur décimale et hexadécimale
if(i < 32) // N'affiche pas les codes ASCII < 32
printf("\t");
else
printf("%c\t", i);
if((i+1) % 6 == 0) // Affichage sur 6 colonnes
printf("\n");
}
return 0;
}
Exercice 2
Variante de l'exercice précédent. Afficher les valeurs consécutives en colonne au lieu de les afficher par lignes.
On affichera l'ensemble sur 8 colonnes.
Résultat attendu :
Voir le corrigé
#include <stdio.h> // Inclure la bibliothèque STanDard Input Output
// permet d'utiliser, entre autre, printf et scanf
#define NB_LIGNES 16
#define NB_COLONNES 8
int main()
{
unsigned char ligne, colonne, code;
for( ligne = 0 ; ligne < NB_LIGNES ; ligne++ )
{
for( colonne = 0 ; colonne < NB_COLONNES ; colonne++)
{
code = ligne + colonne * NB_LIGNES;
printf("%3hhu 0x%02x : ", code, code);
if(code < 32)
printf("\t");
else
printf("%c\t", code);
}
printf("\n");
}
return 0;
}
Exercice 3
Demander à l'utilisateur de saisir un nombre de lignes. Dessiner ensuite un triangle, avec des '*', de la hauteur du nombre de lignes saisi.
Résultat attendu :
Voir le corrigé
#include <stdio.h> // Inclure la bibliothèque STanDard Input Output
// permet d'utiliser, entre autre, printf et scanf
int main()
{
unsigned short i, j, nbLignes;
printf("Donner le nombre de lignes : ");
scanf("%hu", &nbLignes);
printf("\n");
for( i = 0 ; i < nbLignes ; i++) {
for( j = 0 ; j < i + 1 ; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
Exercice 4
Même chose que l'exercice précédent mais en plaçant l'angle droit du triangle à droite.
Résultat attendu :
Voir le corrigé
#include <stdio.h> // Inclure la bibliothèque STanDard Input Output
// permet d'utiliser, entre autre, printf et scanf
int main()
{
unsigned short i, j, nbLignes;
printf("Donner le nombre de lignes : ");
scanf("%hu", &nbLignes);
printf("\n");
for( i = 0 ; i < nbLignes ; i++) {
for( j = 0 ; j < nbLignes - 1 - i ; j++) {
printf(" ");
}
for( j = 0 ; j < i + 1 ; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
Exercice 5
Même chose que l'exercice précédent avec un triangle isocèle.
Résultat attendu :
Voir le corrigé
#include <stdio.h> // Inclure la bibliothèque STanDard Input Output
// permet d'utiliser, entre autre, printf et scanf
int main()
{
unsigned short i, j, nbLignes;
printf("Donner le nombre de lignes : ");
scanf("%hu", &nbLignes);
printf("\n");
for( i = 0 ; i < nbLignes ; i++) {
for( j = 0 ; j < nbLignes - 1 - i ; j++) {
printf(" ");
}
for( j = 0 ; j < 2*i + 1 ; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
Exercice 6
Même chose que l'exercice 3 mais en dessinant uniquement le contour du triangle.
Résultat attendu :
Voir le corrigé
#include <stdio.h> // Inclure la bibliothèque STanDard Input Output
// permet d'utiliser, entre autre, printf et scanf
int main()
{
unsigned short i, j, nbLignes;
printf("Donner le nombre de lignes : ");
scanf("%hu", &nbLignes);
printf("\n");
for( i = 0 ; i < nbLignes ; i++) {
for( j = 0 ; j < i + 1 ; j++) {
if( j == 0 || j == i || i == nbLignes-1 )
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}
Exercice 7
Même chose que l'exercice 4 mais en dessinant uniquement le contour du triangle.
Exercice 8
Même chose que l'exercice 5 mais en dessinant uniquement le contour du triangle.
Vous avez apprécié cet article ? Partagez le !
Article connexe : Les structures algorithmiques de base