EXAMEN LANGAGE C ( PROGRAMMATION C ) TEST  11 /XX 2023

EXAMEN + CORRIGE EN LANGAGE C

exercice 1 :

 

CORRECTION :

Exercice 1 : 3pt

bientot disponible.............Bas du formulaire

Exercice 2 : (3+2) 5pts

1. Ecrire un programme qui lit une chaîne de caractères CH au clavier et qui compte les occurrences des lettres de l'alphabet en ne distinguant pas les majuscules et les minuscules. Utiliser un tableau ABC de dimension 26 pour mémoriser le résultat et un pointeur PCH pour parcourir la chaîne CH et un pointeur PABC pour parcourir ABC. Afficher seulement le nombre des lettres qui apparaissent au mois une fois dans le texte.

Exemple:

Entrez un ligne de texte (max. 100 caractères) :

 Jeanne

 La chaîne "Jeanne" contient :

 1   fois la lettre 'A'

 2   fois la lettre 'E'

 1   fois la lettre 'J'

 3   fois la lettre 'N'

Correction :

#include <stdio.h>

main()

{

 /* Déclarations */

 char CH[101]; /* chaîne donnée */

 char *PCH;    /* pointeur d'aide dans CH  */

 int ABC[26];  /* compteurs des différents caractères */

  int *PABC;    /* pointeur d'aide dans ABC */

 /* Saisie des données */

 printf("Entrez une ligne de texte (max.100 caractères) :\n");

 gets(CH);

 /* Initialiser le tableau ABC */

 for (PABC=ABC; PABC<ABC+26; PABC++)

     *PABC=0;

 /* Compter les lettres */

 for (PCH=CH; *PCH; PCH++)

     {

      if (*PCH>='A' && *PCH<='Z')

         (*(ABC+(*PCH-'A')))++; /* Attention aux parenthèses! */

      if (*PCH>='a' && *PCH<='z')

         (*(ABC+(*PCH-'a')))++;

     }

 /* Affichage des résultats */

 /* (PABC-ABC) est le numéro de la lettre de l'alphabet. */

 printf("La chaîne \"%s\" contient :\n", CH);

 for (PABC=ABC; PABC<ABC+26; PABC++)

     if (*PABC)

        printf(" %d\tfois la lettre '%c' \n",

                                        *PABC, 'A'+(PABC-ABC));

  return 0;

}

2. Ecrire un Programme C qui Déterminer si un nombre est  un nombre d'Armstrong ou pas.

Principe : Un nombre de Armstrong est un entier positif dont la somme des cubes des chiffres vaut cet entier.

Exemple : 153 = 13 + 53 + 33 = 1 + 125 + 27 = 153. Ainsi 153 est Un Nombre d'Armstrong.

#include<stdio.h>

int main()

{

int nbr, a, tmp, somme=0;

printf(" Entrez un nombre: ");

scanf("%d", &nbr);

tmp=nbr;

while(nbr>0)

{

a=nbr%10;

somme=somme+(a*a*a);

nbr=nbr/10;

}

if(tmp==somme)

printf(" %d est un nombre Armstrong",tmp);

else

printf(" %d n'est pas un nombre Armstrong",tmp);

return 0;

}

Exercice 3 :  8pts

  1. Les structures de données : 3pts

#define N 10000

#define M 500

typedef struct Approvi {

   int qteProd;

  int dateAppro; // vous pouvez déclarer une Structure Date tel que Date dateAppro

  float prixAchat;

} Approvi;

typedef struct produit {

  char code[5];

  char* designation; // ou char designation[20]

  char*categorie; // ou char  categorie[20]

  float prixVente;

  int qteAlerte;

  int nbreAppro;

  Approvi listeAppro [M] ;

} produit;

  1. Ecriture de la fonction Existence :

int Existence(char*code, produit prod [ ] ) {

for(int i = 0; i<N; i++) {

if(strcmp(prod[i].code,code))

   return 0;  } else {return 1; } }

  1. Ecriture de la fonction ajoutez Produit :

void AjoutProduit(produit P [ ] ){

printf("Veuillez saisir la position du produit a insérer dans le tableau\n");

int k;

scanf("%d",&k);

printf("Veuillez saisir les informations du produit a insérer\n");

char* code;

printf("Veuillez saisir le code\n");

scanf("%s",code);

if(Existence(code,P))

          return ;

else{

strcpy(P[k].code,code);

printf("Veuillez saisir la designation\n");

scanf("%s",P[k].designation);

printf("Veuillez saisir la categorie\n");

scanf("%s",P[k].categorie);

printf("Veuillez saisir le prix de vente\n");

scanf("%f",&P[k].prixVente);

printf("Veuillez saisir la quantite d'alerte pour le réapprovisionnement\n");

scanf("%d",&P[k].qteAlerte);

printf("Veuillez saisir la quantite de produit\n");

scanf("%d",&P[k].listeAppro[P[k].nbreAppro].qteProd);

printf("Veuillez saisir la date de l'approvisionnement\n");

scanf("%d",&P[k].listeAppro[P[k].nbreAppro].dateAppro);

printf("Veuillez saisir le prix d'achat\n");

scanf("%f",&P[k].listeAppro[P[k].nbreAppro].prixAchat);

P[k].nbreAppro++;

} }

Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam