EXAMEN LANGAGE C TEST 24 

Exercice n° 1 :  What will each of the following programs display ? / 3PT

#include<stdio.h>

int main () {    printf ("*****\n");     

printf ("****\n");   

  printf ("***\n");   

printf ("**\n");  

printf ("*\n");   

return 0;

}

Program a

#include <stdio.h> int main () {    printf ("*****\n");      printf ("*    *\n");     printf ("*    *\n");     printf ("*    *\n");     printf ("*****\n");      return 0; }

Program b

#include <stdio.h>

int main() {

   const double G = 6.6* 1e6;

    float x = 2/3;

    int d = x;

    float f = d++;

    int k = ++d;

    int l = 2.8 / 3;

    int m = --l;

    int s = m--;

  printf("G = %.4f, x = %.3f,   d = %d, f = %.3f, k = %d, l = %d, m = %d, s = %d\n",

           x, d, f, k, l, m, s);

 

    return 0;

}

    Program c

#include<stdio.h>

int main () {   float a, b, c, sum;

printf("Enter thre numbers");   

scanf("%f", &a);    scanf("%f", &b);    scanf("%f", &c);   sum=a+b+c ;

   printf("sum=%f", sum);

   return 0;

}       Program d

#include <stdio.h> #define TEN   10

int main () {    

float moyenne;    printf("Enter the average");    scanf("%f", &moyenne);   if (moyenne<TEN)       {printf("Echec");}   else{printf("Succès");}

   return 0; }

Program e

#include<stdio.h> #define PI 3.14 int main () {

   float r,s;

   printf("Enter the radius");    scanf("%f", &r);    s=r*r*PI;

   printf("result=%f\n", s);

   return 0; }

Program f

 

Questions de Cours : 8PTS

  1. Quel est le type de chacune des constantes suivantes : '1', ''1'', 1, ''1234'', ''jean'' 
  2. Quelle est la différence syntaxique entre une constante caractère (char) et une constante chaîne de caractères ? L' écriture 'jean' est elle correcte ? Existe-t-il un type spécifique au chaine en C ?
  3. Quelle est la différence sémantique entre ++i et i++ ? Donner les valeurs de x, y, z  et i après l'exécution du bout de code suivant : « i=4 ; x=4 + ++i ; y=4 + i++ ; z=++i + i++ »
  4. 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 : Gestion des Pilotes et des Avions 10pts

Pour un site de e-learning pandacodeur êtes chargé de développer un système de gestion pour une compagnie aérienne pour acheminer leur livre. Ce système doit permettre de gérer les pilotes, les avions et les voyages. Chaque pilote a un identifiant unique qui est incrémenté automatiquement, un nom et un salaire. Chaque avion est associé à un pilote qui le pilote. Un voyage est caractérisé par un pilote, un avion, un itinéraire (destination) et un prix.

Objectif

Le programme doit :

  1. Représenter un pilote avec ses caractéristiques (identifiant unique, nom, salaire).
  2. Représenter un avion avec un pointeur vers le pilote qui le pilote.
  3. Représenter un voyage avec un pilote, un avion, une destination et un prix.
  4. Implémenter des opérations CRUD (Create, Read, Update, Delete) pour gérer les pilotes, les avions et les voyages.
  5. Fournir des fonctionnalités avancées comme la recherche de pilotes par nom, la recherche d'avions par pilote, et l'affichage des voyages par destination.


Structures de Données

Représente un pilote avec les champs suivants :

  • idPilote (entier) : Identifiant unique du pilote, incrémenté automatiquement.
  • nom (chaîne de caractères de taille 60) : Nom du pilote.
  • salaire (flottant) : Salaire du pilote.

Structure Avion

Représente un avion avec les champs suivants :

  • idAvion (entier) : Identifiant unique de l'avion.
  • pilote (pointeur vers Pilote) : Pointeur vers le pilote qui pilote cet avion.

Enumération Destination

Représente les destinations possibles : DOUALA, DSCHANG, EDÉA, YAOUNDÉ, BAFOUSSAM

Structure Voyage

Représente un voyage avec les champs suivants :

  • pilote (pointeur vers Pilote) : Pilote responsable du voyage.
  • avion (pointeur vers Avion) : Avion utilisé pour le voyage.
  • destination (Destination) : Destination du voyage.
  • prix (flottant) : Prix du voyage.


Questions et Fonctionnalités

  1. Initialisation des structures
    • o Écrivez une fonction initialiserSysteme qui initialise les structures nécessaires pour gérer les pilotes, les avions et les voyages.
  2. Ajout d'un pilote
    • o Écrivez une fonction ajouterPilote qui ajoute un nouveau pilote à la liste. L'identifiant du pilote doit être incrémenté automatiquement.
  3. Ajout d'un avion
    • o Écrivez une fonction ajouterAvion qui ajoute un nouvel avion à la liste. L'avion doit être associé à un pilote existant.
  4. Ajout d'un voyage
    • o Écrivez une fonction ajouterVoyage qui ajoute un nouveau voyage à la liste. Le voyage doit être associé à un pilote et un avion existants.
  5. Affichage des pilotes
    • o Écrivez une fonction afficherPilotes qui affiche tous les pilotes avec leurs détails.
  6. Affichage des avions
    • o Écrivez une fonction afficherAvions qui affiche tous les avions avec leurs détails, y compris le pilote associé.
  7. Affichage des voyages
    • o Écrivez une fonction afficherVoyages qui affiche tous les voyages avec leurs détails.
  8. Recherche de pilotes par nom
    • o Écrivez une fonction rechercherPiloteParNom qui recherche un pilote par son nom et retourne un pointeur vers le pilote trouvé.
  9. Recherche d'avions par pilote
    • o Écrivez une fonction rechercherAvionsParPilote qui retourne une liste des avions pilotés par un pilote donné.
  10. Recherche de voyages par destination
    • o Écrivez une fonction rechercherVoyagesParDestination qui retourne une liste des voyages pour une destination donnée.
  11. Modification du salaire d'un pilote
    • o Écrivez une fonction modifierSalairePilote qui modifie le salaire d'un pilote existant.
  12. Suppression d'un pilote
    • o Écrivez une fonction supprimerPilote qui supprime un pilote de la liste. Assurez-vous de mettre à jour les avions et voyages associés.
  13. Suppression d'un avion
    • o Écrivez une fonction supprimerAvion qui supprime un avion de la liste. Assurez-vous de mettre à jour les voyages associés.
  14. Suppression d'un voyage
    • o Écrivez une fonction supprimerVoyage qui supprime un voyage de la liste.
  15. Libération de la mémoire
    • o Écrivez une fonction libererSysteme qui libère la mémoire allouée pour les pilotes, les avions et les voyages.


Prototypes des Fonctions

void initialiserSysteme();

void ajouterPilote(char *nom, float salaire);

void ajouterAvion(int idPilote);

void ajouterVoyage(int idPilote, int idAvion, Destination destination, float prix);

void afficherPilotes();

void afficherAvions();

void afficherVoyages();

Pilote *rechercherPiloteParNom(char *nom);

Avion *rechercherAvionsParPilote(int idPilote);

Voyage *rechercherVoyagesParDestination(Destination destination);

void modifierSalairePilote(int idPilote, float nouveauSalaire);

void supprimerPilote(int idPilote);

void supprimerAvion(int idAvion);

void supprimerVoyage(int idVoyage);

void libererSysteme();

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