Auteur : SD
Créé le : 04-01-2025
Exercices de programmation en langage C (tests, 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.
Articles connexes
Vous avez apprécié cet article ? Partagez le !
 
Article connexe : Les structures algorithmiques de base