EXAMEN LANGAGE C ( PROGRAMMATION C ) TEST  23 /XX année acaDéMIQUE 2024 - 2025

EXAMEN + CORRIGE EN LANGAGE C

 

 

Énoncés de l'exercice : Gestion d'une boutique

1. Structures de données

Un article dans une boutique est décrit par un code, un libellé, un prix unitaire, une quantité en stock et une quantité seuil (minimum à avoir en stock).

Définissez une structure de données pour représenter un article, et une autre pour représenter une boutique, sachant qu'une boutique peut avoir au maximum 1000 articles.

2. Programme pour lire et afficher les articles

Écrivez un programme qui permet à l'utilisateur de lire les données de n articles (n est saisi au clavier) et de les afficher.

3. Programme pour afficher l'article le plus cher

Écrivez un programme qui affiche les attributs de l'article le plus cher de la boutique.

4. Programme pour afficher les articles en dessous du seuil

Écrivez un programme qui affiche à l'écran la liste (code et libellé) des articles dont la quantité en stock est inférieure à la quantité seuil.

5. Programme pour calculer le capital de la boutique

Écrivez un programme qui calcule le capital de la boutique. Le capital est défini comme la somme des produits du prix unitaire par la quantité en stock.

SOLUTION : CORRECTION

 

Correction Examen Programmation en C

Question 1 : Analyse du programme

Le programme donné est le suivant :


int main()  
{  
    int n=10, p=5, q=10, r ;  
    r = n == (p = q) ;  
    printf("A : n = %d p=%d q=%d r=%d\n", n, p, q, r);  
    n = p = q = 5 ;  
    n += p += q ; r=n<<2 ;  
    printf("B : n = %d p=%d q=%d r=%d\n", n, p, q, r);  
    q = n < p ? n++ : p++ ; r=100<<4 ;  
    printf("C : n = %d p=%d q=%d r=%d\n", n, p, q, r);  
    q = n > p ? n++ : p++ ; r=12 & 4 ;  
    printf("D : n = %d p=%d q=%d r=%d\n", n, p, q, r);  
    return 0 ;  
}
        

Correction :

  • Partie A : A : n = 10 p=10 q=10 r=1
  • Partie B : B : n = 15 p=10 q=5 r=60
  • Partie C : C : n = 15 p=11 q=10 r=1600
  • Partie D : D : n = 16 p=11 q=15 r=4

Question 2 : Calcul de factorielle

Version avec while :


#include <stdio.h>

int main() {
    int n, i = 1;
    long factorial = 1;
    printf("Entrez un entier : ");
    scanf("%d", &n);
    while (i <= n) {
        factorial *= i;
        i++;
    }
    printf("Factorielle de %d est %ld\n", n, factorial);
    return 0;
}
        

Version avec do...while :


#include <stdio.h>

int main() {
    int n, i = 1;
    long factorial = 1;
    printf("Entrez un entier : ");
    scanf("%d", &n);
    do {
        factorial *= i;
        i++;
    } while (i <= n);
    printf("Factorielle de %d est %ld\n", n, factorial);
    return 0;
}
        

Exercice : Gestion d'une boutique

1. Structures de données :


typedef struct {
    char code[10];
    char libelle[50];
    float prixUnitaire;
    int quantiteStock;
    int quantiteSeuil;
} Article;

typedef struct {
    Article articles[1000];
    int nombreArticles;
} Boutique;
        

2. Programme pour lire et afficher les articles :


#include <stdio.h>

Stéphane, [09/02/2025 19:24]
int main() {
    Boutique boutique;
    int n, i;
    printf("Entrez le nombre d'articles : ");
    scanf("%d", &n);
    boutique.nombreArticles = n;
    for (i = 0; i < n; i++) {
        printf("Article %d :\n", i + 1);
        printf("Code : "); scanf("%s", boutique.articles[i].code);
        printf("Libelle : "); scanf("%s", boutique.articles[i].libelle);
        printf("Prix unitaire : "); scanf("%f", &boutique.articles[i].prixUnitaire);
        printf("Quantite en stock : "); scanf("%d", &boutique.articles[i].quantiteStock);
        printf("Quantite seuil : "); scanf("%d", &boutique.articles[i].quantiteSeuil);
    }
    for (i = 0; i < n; i++) {
        printf("Article %d : Code=%s, Libelle=%s, Prix=%.2f, Stock=%d, Seuil=%d\n",
               i + 1, boutique.articles[i].code, boutique.articles[i].libelle,
               boutique.articles[i].prixUnitaire, boutique.articles[i].quantiteStock,
               boutique.articles[i].quantiteSeuil);
    }
    return 0;
}
        

3. Programme pour afficher l'article le plus cher :


#include <stdio.h>

int main() {
    Boutique boutique;
    int i, maxIndex = 0;
    float maxPrix = 0;
    for (i = 0; i < boutique.nombreArticles; i++) {
        if (boutique.articles[i].prixUnitaire > maxPrix) {
            maxPrix = boutique.articles[i].prixUnitaire;
            maxIndex = i;
        }
    }
    printf("Article le plus cher : Code=%s, Libelle=%s, Prix=%.2f\n",
           boutique.articles[maxIndex].code, boutique.articles[maxIndex].libelle,
           boutique.articles[maxIndex].prixUnitaire);
    return 0;
}
        

4. Programme pour afficher les articles en dessous du seuil :


#include <stdio.h>

int main() {
    Boutique boutique;
    int i;
    for (i = 0; i < boutique.nombreArticles; i++) {
        if (boutique.articles[i].quantiteStock < boutique.articles[i].quantiteSeuil) {
            printf("Code=%s, Libelle=%s\n", boutique.articles[i].code, boutique.articles[i].libelle);
        }
    }
    return 0;
}
        

5. Programme pour calculer le capital de la boutique :


#include <stdio.h>

int main() {
    Boutique boutique;
    int i;
    float capital = 0;
    for (i = 0; i < boutique.nombreArticles; i++) {
        capital += boutique.articles[i].prixUnitaire * boutique.articles[i].quantiteStock;
    }
    printf("Capital de la boutique : %.2f\n", capital);
    return 0;
}
        

Si vous avez trouvé les examens corrigés en Langage C de Mr JoëlYk intéressants et utiles, pourquoi ne pas les partager avec d'autres personnes qui pourraient également en bénéficier ? Partagez ce lien sur les réseaux sociaux ou envoyez-le à vos amis et collègues. Vous pourriez aider quelqu'un à améliorer ses compétences en programmation ou à trouver des solutions à des problèmes complexes. N'oubliez pas que la connaissance doit être partagée pour grandir. Merci pour votre soutien et votre partage !

Contact WhatsApp : +237 652027193 | Réaliser Par Joël_Yk

 

Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam