EXAMEN LANGAGE C ( PROGRAMMATION C ) TEST  17 /XX annee acaDEMIQUE 2024

EXAMEN + CORRIGE EN LANGAGE C

EXERCICE 1 : Exécution de Code 3 pts

# include <stdio.h>

    int Bravo(int k, int j) {

    return k + j ;

}

    int Delta(int x, int xx) {

    return x * xx;

}

   void Alpha(int (*func)(int, int), int a, int b, int c, int d,       int e, int f) {

    int r1 = func(a, b);

    int r2 = func(c, d);

    int r3 = func(e, f);

    printf("Mission 1 = %d\n", r1);

    printf("Terminée 2 = %d\n", r2);

    printf("Succès  3 = %d\n", r3);

    for (int m = 1; m <= 4; m++) {

        r1 += m * 2;

        r2 -= m * 3;

        r3 += (m % 2 == 0) ? m * 5 : m * 4;

        printf(" [%d] : Mission = %d Accomplie, Princesse = %d sauve, point restant  %d\n", m, r1, r3, r2);

    }

}

int main() {

  int a = 5, b = 3, c = 2, d = 4, e = 7, f = 1;

    Alpha(Bravo, a, b, c, d, e, f);

    return 0; }

}Program e

#include <stdio.h>

void Gamma(int a, int b, int c, int d) {

    int temp;

    for (int h = 0; h < 3; h++) {

        for (int e = 0; e < 2; e++) {

            tp = a + b * c - d; 

            a += tp;

            b -= h;

            c *= e + 1;

            d += 2;

            printf("--- %d - %d, --- %d, --- %d, ---%d, ---- %d, ---- %d\n", h, e, tp, a, b, c, d);

        }

    }

    printf("Final values: a = %d, b = %d, c = %d, d = %d\n", a, b, c, d);

}

int main() {

    int x = 5, y = 3, z = 2, w = 10;

    Gamma(x, y, z, w);

    return 0;

}                 

 

                 Program f

 

EXERCICE 2 : Fonction & Procédure en C 4pts

1) Inversion d'un tableau

  • Description : Inverser un tableau d'entiers (par exemple, [1, 2, 3] devient [3, 2, 1]).
  • Fonction : void reverse(int arr[], int start, int end)

2. Recherche d'un élément dans un tableau

  • Description : Chercher si un élément est présent dans un tableau. La fonction retourne l'index de l'élément ou -1 si l'élément n'est pas trouvé.
  • Fonction : int find(int arr[], int size, int target)

3. Calcul du plus grand commun diviseur (PGCD)

  • Description : Utiliser l'algorithme d'Euclide pour calculer le PGCD de deux nombres entiers.
  • Fonction : int gcd(int a, int b)

4. Recherche d'un élément dans une chaîne (recherche de sous-chaîne)

  • Description : Chercher une sous-chaîne dans une chaîne de caractères.
  • Fonction : int findSubstring(char* str, char* sub)

EXERCICE 03 : 4 PTS

  1. Analyse d’un code C , donner la sortie écran et explique la Structure de Contrôle utilisée dans ce Programme C:

#include <stdio.h>

int main() {

    int n=4, m=9;

    (n > 0 && n <= 100) ? printf("n est Positif et dans la plage [1, 100]\n") :

    (n < 0 && n >= -100) ? printf("n est Négatif et dans la plage [-100, -1]\n") :

    printf("n est Zero ou hors des plages spécifiées\n");

    (m % 2 == 0 && m != 0) ? printf("m est Pair et non nul\n") :

    (m % 2 != 0 && m != 0) ? printf("m est Impair et non nul\n") : printf("m est Zero\n");

    return 0; }

  1. What are basic data types supported in the C Programming Language? What are tokens in C?
  2. All keywords in C are in __a) LowerCase letters b) UpperCase letters c) CamelCase letters d) None of the mentioned
  3. Which is valid C expression? a) int my_num = 100,000; b) int my_num = 100000; c) int my num = 1000;  d) int $my_num = 10000;
  4. What is the use of printf() and scanf() functions? Also explain format specifiers?
  5.  Code Suivant : char c = ‘t ’ ;   printf("Le code___de '%c' est ?: %d\n", c, c); donne quel résultat ? Comment se base la machine pour trouver ce type de code par exemple pour ‘A’ -> 65  et ‘a’ -> 97.

PROBLEME : 9 PTS 

La société NkiliTech, spécialisée dans les services médicaux, souhaite développer un programme pour gérer efficacement une base de données contenant des informations sur ses docteurs. Chaque docteur est caractérisé par les informations suivantes : Code : Identifiant unique (entier). Nom : Nom complet du docteur (chaîne de caractères de 60). Spécialité : Domaine médical de spécialisation (chaîne de caractères de 60 ). Expérience : Nombre d'années d'expérience (entier). Consultations : Nombre total de consultations effectuées par le docteur (entier). Votre mission est d’implémenter un programme en langage C permettant de répondre aux besoins de gestion des docteurs de la société NkiliTech. Le programme doit utiliser une structure pour modéliser les docteurs et un tableau dynamique pour gérer l'ensemble de la base.

Questions :

  1. Définir une structure Docteur permettant de modéliser un docteur.
  2. Implémenter une structure pour gérer un tableau dynamique contenant les docteurs et permettant de connaître la taille de la base.
  3. Implémenter une fonction permettant de rechercher un docteur dans la base à partir de son code. Prototype : Docteur* rechercherDocteurParCode(Docteur* docteurs, int taille, int code);. Retour attendu : un pointeur vers le docteur s'il est trouvé, ou NULL sinon.
  4. Implémenter une fonction permettant d’ajouter un nouveau docteur à la base en ajustant dynamiquement la taille du tableau. Prototype : Docteur* ajouterDocteur(Docteur* docteurs, int* taille, Docteur nouveauDocteur);. La fonction vérifie que le code est unique avant l'ajout.
  5. Implémenter une fonction permettant de modifier le nombre de consultations d’un docteur à partir de son code. Prototype : int modifierConsultations(Docteur* docteurs, int taille, int code, int nouvellesConsultations);. Retour attendu : 1 si la modification a réussi, ou 0 si le docteur n'a pas été trouvé.
  6. Implémenter une fonction permettant de supprimer un docteur de la base à partir de son code, en ajustant dynamiquement la taille du tableau. Prototype : Docteur* supprimerDocteur(Docteur* docteurs, int* taille, int code);. Retour attendu : le tableau mis à jour des docteurs.
  7. Implémenter une fonction permettant de trouver le docteur ayant le maximum d’années d’expérience dans la base. Prototype : Docteur* docteurPlusExperimente(Docteur* docteurs, int taille);. Retour attendu : un pointeur vers le docteur trouvé, ou NULL si la base est vide.
  8. Implémenter une fonction permettant d’afficher les informations des docteurs spécialisés dans un domaine médical donné. Prototype : void afficherDocteursSpecialite(Docteur* docteurs, int taille, const char* specialite);.
  9. Implémenter une fonction permettant de trier la base de docteurs par le nombre total de consultations en ordre décroissant. Prototype : void trierDocteursParConsultations(Docteur* docteurs, int taille);.
  10. Implémenter une fonction permettant de sauvegarder toutes les informations des docteurs dans un fichier texte. Prototype : int sauvegarderBaseDocteurs(Docteur* docteurs, int taille, const char* nomFichier);. Retour attendu : 1 en cas de succès, ou 0 en cas d’échec.

 

SOLUTION : CORRECTION

 

 

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