Test & QCM Métier

QCM – Programmation procédurale en C

Voici un exemple de QCM portant sur la programmation procédurale en C. Il couvre des concepts fondamentaux du C tels que les fonctions, les pointeurs, et la gestion de la mémoire.


QCM – Programmation procédurale en C

1. Quelle est la bonne syntaxe pour déclarer une fonction en C ?

  • a) int fonctionName{}
  • b) void fonctionName()
  • c) function fonctionName()
  • d) function fonctionName[]

Réponse : b) void fonctionName()


2. Que retourne une fonction en C si aucune valeur de retour n’est spécifiée ?

  • a) Elle retourne 0
  • b) Elle retourne 1
  • c) Elle ne retourne rien
  • d) Elle retourne une valeur aléatoire

Réponse : c) Elle ne retourne rien (si la fonction est définie avec void comme type de retour).


3. Lequel des éléments suivants est utilisé pour passer une variable par référence dans une fonction en C ?

  • a) Le type de retour de la fonction
  • b) Les arguments passés par valeur
  • c) Les pointeurs
  • d) Les tableaux

Réponse : c) Les pointeurs


4. Quel est le mot-clé utilisé pour renvoyer une valeur à partir d’une fonction en C ?

  • a) send
  • b) return
  • c) result
  • d) exit

Réponse : b) return


5. Comment appelle-t-on une fonction déclarée dans un fichier mais définie dans un autre fichier en C ?

  • a) Une fonction statique
  • b) Une fonction externe
  • c) Une fonction locale
  • d) Une fonction anonyme

Réponse : b) Une fonction externe


6. Quelle est la différence principale entre une variable locale et une variable globale en C ?

  • a) Une variable locale est accessible par toutes les fonctions
  • b) Une variable globale est accessible uniquement dans la fonction où elle est déclarée
  • c) Une variable locale est déclarée dans une fonction, tandis qu’une variable globale est déclarée en dehors de toutes les fonctions
  • d) Les variables locales et globales sont les mêmes en C

Réponse : c) Une variable locale est déclarée dans une fonction, tandis qu’une variable globale est déclarée en dehors de toutes les fonctions.


7. Que se passe-t-il lorsque vous utilisez l’opérateur & dans un programme C ?

  • a) Il ajoute deux nombres
  • b) Il soustrait deux nombres
  • c) Il renvoie l’adresse mémoire d’une variable
  • d) Il déclare un pointeur

Réponse : c) Il renvoie l’adresse mémoire d’une variable


8. Quelle fonction de la bibliothèque standard est utilisée pour allouer dynamiquement de la mémoire en C ?

  • a) malloc()
  • b) scanf()
  • c) alloc()
  • d) memset()

Réponse : a) malloc()


9. Dans une fonction, quel mot-clé est utilisé pour empêcher la modification d’une variable passée en argument ?

  • a) static
  • b) const
  • c) volatile
  • d) register

Réponse : b) const


10. Quel est le but d’une fonction récursive en C ?

  • a) Appeler une autre fonction de manière continue
  • b) Retourner une valeur d’une fonction anonyme
  • c) Appeler la fonction elle-même jusqu’à une condition de sortie
  • d) Libérer la mémoire allouée dynamiquement

Réponse : c) Appeler la fonction elle-même jusqu’à une condition de sortie


Ce QCM programmation procédurale en C couvre divers aspects de la programmation procédurale en C et permet de tester la compréhension de concepts clés tels que les fonctions, les pointeurs, et la gestion de la mémoire.

Fiche Pratique : Programmation procédurale en langage C

1. Définition

La programmation procédurale en C est un paradigme qui repose sur l’organisation du programme en sous-unités appelées fonctions. Chaque fonction représente une série d’instructions visant à effectuer une tâche spécifique. La logique du programme est construite en appelant ces fonctions dans un ordre déterminé.

2. Caractéristiques de la programmation procédurale en C

  • Modularité : Le code est divisé en plusieurs fonctions autonomes et réutilisables. Cela facilite la maintenance, la compréhension et la réutilisation du code.
  • Gestion manuelle de la mémoire : C permet une gestion explicite de la mémoire à travers des fonctions comme malloc(), calloc(), realloc() et free().
  • Portée des variables : Les variables peuvent être locales (déclarées dans une fonction) ou globales (déclarées en dehors de toutes les fonctions). Les variables locales ne sont accessibles qu’au sein de la fonction où elles sont déclarées.

3. Fonctions

Les fonctions sont au cœur de la programmation procédurale en C. Voici les étapes clés pour déclarer et utiliser une fonction :

  • Déclaration :
   retour fonctionNom(type_argument1, type_argument2);

Exemple :

   int addition(int a, int b);
  • Définition :
   type_retour fonctionNom(type_argument1 nom_argument1, type_argument2 nom_argument2) {
       // Corps de la fonction
       return valeur;
   }

Exemple :

   int addition(int a, int b) {
       return a + b;
   }
  • Appel de fonction :
   int resultat = addition(5, 3);

4. Passage de paramètres

  • Par valeur : Les valeurs des arguments sont copiées dans les paramètres de la fonction. Toute modification des paramètres dans la fonction n’affecte pas les arguments d’origine.
    Exemple :
   void modifier(int a) {
       a = 10;  // Ne modifie pas la variable originale
   }
  • Par référence (via les pointeurs) : L’adresse de la variable est passée, et toute modification dans la fonction affecte la variable d’origine.
    Exemple :
   void modifier(int *a) {
       *a = 10;  // Modifie la variable originale
   }

5. Pointeurs

Les pointeurs permettent de manipuler directement les adresses mémoire, ce qui est essentiel pour le passage de paramètres par référence, la gestion dynamique de la mémoire et les manipulations complexes de données.

  • Déclaration d’un pointeur :
    c int *p; // Pointeur vers un entier
  • Initialisation d’un pointeur :
    c int a = 5; int *p = &a; // P prend l'adresse de a
  • Déréférencement :
    c *p = 10; // Change la valeur de a à travers le pointeur

6. Gestion de la mémoire

En C, la gestion de la mémoire est manuelle, via les fonctions suivantes :

  • malloc() : Alloue une certaine quantité de mémoire. int *p = (int *)malloc(sizeof(int) * 5); // Alloue un tableau de 5 entiers
  • free() : Libère la mémoire allouée dynamiquement.
    c free(p); // Libère la mémoire pointée par p

7. Structures

Les structures permettent de regrouper différents types de données sous une seule entité. Elles sont particulièrement utiles pour représenter des objets complexes.

  • Déclaration d’une structure : struct Personne { char nom[50]; int age; };
  • Utilisation d’une structure :
    c struct Personne p1; p1.age = 25;

8. Variables globales et locales

  • Variables locales : Déclarées à l’intérieur d’une fonction, elles ne sont accessibles qu’à l’intérieur de cette fonction.
    Exemple :
   void fonction() {
       int x = 5;  // Variable locale à fonction()
   }
  • Variables globales : Déclarées en dehors de toutes les fonctions, elles sont accessibles par toutes les fonctions du programme.
    Exemple :
   int x = 10;  // Variable globale

   void fonction() {
       x = 5;  // Modifie la variable globale
   }

9. Les bibliothèques standard

La bibliothèque standard en C propose des fonctions utilitaires pour diverses opérations (entrées/sorties, manipulation de chaînes de caractères, etc.).

  • stdio.h : Fournit des fonctions d’entrée/sortie comme printf(), scanf().
  • stdlib.h : Contient des fonctions pour la gestion de la mémoire (malloc(), free()), la génération de nombres aléatoires, etc.
  • string.h : Offre des fonctions de manipulation de chaînes de caractères comme strlen(), strcpy().

10. Exemple de programme

Voici un exemple simple d’un programme C avec une fonction de calcul de la somme de deux nombres :

#include <stdio.h>

// Déclaration de la fonction
int addition(int a, int b);

int main() {
    int num1 = 5, num2 = 10;
    int resultat = addition(num1, num2);
    printf("La somme est : %d\n", resultat);
    return 0;
}

// Définition de la fonction
int addition(int a, int b) {
    return a + b;
}

Résumé

La programmation procédurale en C repose sur la décomposition d’un programme en fonctions modulaires qui exécutent des tâches spécifiques. Elle offre un contrôle direct sur la mémoire et le matériel grâce à l’utilisation de pointeurs et d’une gestion manuelle de la mémoire.

Autres articles

Guide pour rédiger un QCM en microéconomie...
1. Structurer le QCMUn bon QCM doit être structuré autour...
Read more
Exercices Corrigés : Bilan Matière en Génie...
Fiche de Révision : Bilan Matière en Génie des ProcédésLe...
Read more
Guide : Le GRAFCET du Point de...
Le GRAFCET (Graphe Fonctionnel de Commande Étape-Transition) est un outil...
Read more

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *