EXAMEN LANGAGE C ( PROGRAMMATION C ) TEST 11 /XX 2023
EXAMEN + CORRIGE EN LANGAGE C
bientot disponible.............Bas du formulaire
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;
}
- 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;
|
- 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; } }
|
- 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++;
} }
|
‘’ La persévérance, c’est ce qui rend l’impossible possible, le possible probable et le probable réalisé. ‘’
Bonne chance pour le rattrapage les amis.
Contact WhatsApp : +237 658395978 | Réaliser Par Mr Joël_Yk .