400 Exercices Corrigés En C – Partie 2

La meilleure façon d’apprendre quelque chose est de pratiquer des exercices. Nous avons préparer ces exercices corrigés pour les personnes (débutantes ou intermédiaires) qui sont familières avec le langage C et programmation. Nous espérons que ces exercices vous aideront à améliorer vos compétences sur le langage C et programmation. Les exercices corrigés suivantes sont actuellement disponibles, nous travaillons dur pour ajouter plus d’exercices. Bon apprentissage!

Vous pouvez lire notre tutoriel sur le langage C avant de résoudre les exercices suivants.

 
 

Veuillez voir les exercices de 1 à 30 sur ce lien.

 

31. Écrire un programme C pour calculer la consommation moyenne d’une voiture à partir d’une distance parcourue (en km, valeur entière) et du carburant consommé (en litres, nombre flottant).

Exemple de sortie:

Entrer la distance totale en km: 470 
Entrer le carburant total dépensé en litres: 5

Consommation moyenne (km/litre) = 94.000
#include <stdio.h>

int main() 
{
    int distance;
    float carburant;

    printf("Entrer la distance totale en km:");
    scanf("%d", &distance);
    
    printf("Entrer le carburant total dépensé en litres:");
    scanf("%f", &carburant);
    
    printf("Consommation moyenne (km/litre) = %.3f ",distance/carburant);
    printf("\n");

    return 0;
}
 
 

32. Écrire un programme C pour calculer la distance entre deux points.

Remarque: x1, y1, x2, y2 sont tous des valeurs flottants.

Exemple de sortie:

Entrée x1: 10
Entrée y1: 18 

Entrée x2: 40 
Entrée y2: 20 

Distance entre ces points est: 30.0666
#include <stdio.h>
#include <math.h>

int main() {
    float x1, y1, x2, y2, distance; 
    
    printf("Entrée x1:");
    scanf("%f", &x1);
    printf("Entrée y1:");
    scanf("%f", &y1);
    
    printf("Entrée x2:");
    scanf("%f", &x2);
    printf("Entrée y2:");
    scanf("%f", &y2);
    
    // Calculer la distance entre les points
    distance = ((x2-x1)*(x2-x1))+((y2-y1)*(y2-y1));
    
    printf("Distance entre ces points est: %.4f", sqrt(distance));
    
    return 0;
}
 
 

33. Ecrivez une fonction pour calculer la somme de deux nombres. Si les deux nombres sont identiques, le programme renvoie le triple de leur somme.

Exemple de sortie:

foncSomme(1,2) -> 3
foncSomme(2,2) -> 12
#include <stdio.h>

//Déclarez la fonction "foncSomme" avec deux paramètres
int foncSomme(int a, int b); 

int main(void)
{
    /* Appeler la fonction "foncSomme" avec  
       les arguments 1 et 2 et afficher le résultat */
    printf("%d \n", foncSomme(1, 2));

    /* Appeler la fonction "foncSomme" avec 
       les arguments 2 et 2 et afficher le résultat */
    printf("%d", foncSomme(2, 2));
}

// Définition de la fonction "foncSomme"
int foncSomme(int a, int b)
{
    /* Expression conditionnelle : Si a est égal à b, 
	   retourner (a + b) multiplié par 3, sinon retourner a + b */
    return a == b ? (a + b) * 3 : a + b;
}
 
 

34. Écrivez un programme C qui vérifie deux entiers donnés et renvoie TRUE si au moins l’un d’entre eux est égal à 20 ou si leur somme est égale à 20.

Exemple de sortie:

check(15, 5) ->  TRUE
check(15, 20) ->  TRUE
check(15, 25) ->  FALSE
#include <stdio.h>

//Déclarez la fonction "check" avec deux paramètres
int check(int a, int b); 

int main(void)
{
    /* Appeler la fonction "check" avec  
       les arguments 25 et 5 et afficher le résultat */
    printf("%d", check(15, 5));

    /* Appeler la fonction "check" avec 
       les arguments 25 et 5 et afficher le résultat */
    printf("%d", check(15, 20));
}

// Définition de la fonction "check"
int check(int a, int b)
{
    // Retourne 1 (true) si l'une des conditions suivantes est vraie
    return a == 20 || b == 20 || (a + b == 20);
}
 
 

35. Ecrivez un programme C qui vérifie si un entier positif est divisible par 3 ou 7, ou les deux. Si l’entier est un multiple de 3, le programme retournera TRUE. De même, si l’entier est un multiple de 7, le programme renvoie également TRUE. Si l’entier n’est pas un multiple de 3 ou de 7, le programme renvoie FALSE.

Exemple de sortie:

check(3) ->  TRUE
check(12) ->  TRUE
check(4) ->  FALSE
#include <stdio.h>

//Déclarez la fonction "check" avec deux paramètres
int check(int n); 

int main(void)
{
    /* Appeler la fonction "check" avec  
       l'argument 3 et afficher le résultat */
    printf("%d", check(3));

    /* Appeler la fonction "check" avec 
       l'argument 12 et afficher le résultat */
    printf("%d", check(12));
}

// Définition de la fonction "check"
int check(int n)
{
    // Retourne 1 (true) si l'une des conditions suivantes est vraie
    return n % 3 == 0 || n % 7 == 0;
}
 
 

36. Ecrivez un programme en C pour inverser les chiffres d’un nombre saisi par l’utilisateur.

Exemple de sortie:

Donner un nombre: 123
321
#include <stdio.h>

int main()
{
	int Nbr,rev=0;   
	printf("Donner un nombre:");
	scanf("%d",&Nbr);

	while(Nbr > 0){
		rev = rev * 10;  
		rev = rev + Nbr%10; 
		Nbr = Nbr/10;
	}
	printf("%d",rev);   

	return 0; 
}

Voici ce que fait le programme ci-dessus:

  • Initialise la variable rev = 0.
  • Dans la boucle while multiplie le nombre inversé ‘rev’ par 10, ajoutez le reste du nombre original ‘Nbr’ divisé par 10 à ‘rev’.
    • C’est-à-dire, rev = rev + Nbr%10
  • Diviser le nombre original par 10.
    • Dans cette étape, la valeur du nombre original ‘Nbr’ est mise à jour en la divisant par 10. À chaque itération, le dernier chiffre du nombre original ‘Nbr’ est supprimé et la boucle se termine lorsque la valeur du nombre original ‘Nbr’ est égale à 0.

Maintenant, inversons le nombre 123 en utilisant le programme ci-dessus.

Nbr = 123
rev = 0
rev = rev * 10 + Nbr % 10 = 0 * 10 + 123 % 10 = 3
Nbr = Nbr/ 10 = 12
rev = rev * 10 + Nbr % 10 = 3 * 10 + 12 % 10 = 32
Nbr = Nbr/ 10 = 1
rev = rev * 10 + Nbr % 10 = 32 * 10 + 1 % 10 = 321
Nbr = Nbr/10 = 0.

Le résultat sera donc 321.

 
 

37. Écrire un programme en C permettant d’entrer un nombre et d’afficher le triangle d’étoiles.

Exemple de sortie:

Entrez un nombre: 5
    *
   ***
  *****
 *******
*********
#include <stdio.h>

int main()
{
	int Nbr,i,j;   
	printf("Entrez un nombre:");
	scanf("%d",&Nbr);

	for(i=0; i < Nbr; i++){
		for(j=1; j <= (Nbr*2)-1; j++){
			if (j >= Nbr-i && j <= Nbr+i)                    
				printf("*");
			else   
				printf(" ");   
		}
		printf("\n");      
	}  
	return 0; 
}
 
 

38. Écrire un programme en C qui permet de savoir si le nombre saisi est Premier ou non. (Un nombre premier est un nombre uniquement divisible par 1 ou par lui-même).

Exemple de sortie:

Entrer un nombre : 29
29 est un nombre premier

Entrer un nombre : 21
21 n'est pas un nombre premier

21 a quatre diviseurs (1, 3, 7 et 21) donc ce n'est pas un nombre premier.

#include <stdio.h>

int main()
{
	int i=2,Nbr;
	
	printf("Entrer un nombre :"); 
	scanf("%d",&Nbr);
	
	while(Nbr%i != 0 && i < Nbr){
		i++;
	}
	
	if (i == Nbr) 
		printf("%d est un nombre premier",Nbr);
	else  
		printf("%d n'est pas un nombre premier",Nbr);
		
	return 0; 
}

Une façon simple de déterminer si un nombre est premier est de faire une boucle allant de 2 à n-1 et de vérifier si le nombre est divisible par n'importe quel nombre de cette plage. Si c'est le cas, il ne s'agit pas d'un nombre premier ; sinon, c'est le cas.

 
 

39. Écrire un programme en C qui prend deux entiers de l'utilisateur (un nombre de base et un exposant) et calcule la puissance.

Exemple: Dans le cas de 23

  • 2 est le nombre de base
  • 3 est l'exposant
  • Et la puissance est égale à 2*2*2

Exemple de sortie:

Entrer la base: 2
Entrer l'exposant: 3
2 ^ 3 = 8
#include <stdio.h>

int main()
{
	int e, i;
	float puissance,b;
	puissance = 1;
	
	printf("Entrer la base:"); 
	scanf("%f",&b);
	printf("Entrer l'exposant:"); 
	scanf("%d",&e);
     
	for(i=1; i<=e; i++){
		puissance = puissance * b;
	}
 
	printf("%.1f ^ %d = %.1f",b,e,puissance);

	return 0; 
}

Voici la logique descriptive étape par étape:

  • L'utilisateur entre la base et les exposants. Les stocker dans deux variables, b et e.
  • Déclarer et initialiser une autre variable pour stocker la puissance, puissance = 1.
  • Exécutez une boucle de 1 à exposant, en incrémentant le compteur de la boucle de 1 à chaque itération. La structure de la boucle doit ressembler à for(i=1; i<=e; i++).
  • Pour chaque itération à l'intérieur de la boucle, multipliez la puissance par la base, c'est-à-dire puissance = puissance * b.
  • Enfin, à la fin de la boucle, il ne reste plus que la puissance dans la variable puissance.
 
 

40. Ecrivez un programme en C qui demande l'âge et permet de renseigner sa catégorie sachant que les catégories sont les suivantes:
  • Gamin de 6 à 7 ans
  • Pupille de 8 à 9 ans
  • Jeune de 10 à 11 ans
  • Cadet après 12 ans

Exemple de sortie:

Entrer votre age : 6
Vous êtes Gamin
#include <stdio.h>

int main()
{
	int age;
	
	printf("Entrer votre age :"); 
	scanf("%d",&age);

	if(age >= 6 && age <= 7) 
		printf("Vous êtes Gamin");
		
	if(age >= 8 && age <= 9) 
		printf("Vous êtes Pupille");

	if(age >= 10 && age <= 11)
		printf("Vous êtes Jeune");

	if(age >= 12) 
		printf("Vous êtes Cadet"); 

	return 0; 
}
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *