Information

Author(s) François De Keersmaeker
Deadline No deadline
Submission limit No limitation

Sign in

Décomposition d'un programme en modules - QCM 2

Soit le programme C définit par les 3 fichiers suivants:

main.c

#include <stdlib.h>
#include <stdio.h>
#include "module_a.h"
#include "module_b.h"
extern char* str_a;
extern char* str_b;
void func_a() {
  printf("%s\n", str_a);
  printf("%s\n", str_b);
  func_c();
}
int main(int argc, char const *argv[]) {
  func_a();
  func_b();
  func_c();
  return EXIT_SUCCESS;
}

module_a.c

#include "module_a.h"
char* str_a = "Bonjour";
static char* str_b = "Salut";
static void func_a() {
  printf("%s\n", str_b);
}
void func_b() {
  func_a();
}
static void func_c() {
  printf("Ciao");
}

module_b.c

#include "module_b.h"
static char* str_a = "Coucou";
char* str_b = "Hello";
static void func_b() {
  static int a = 0;
  int b = 0;
  printf("%s (a = %d; b = %d)\n", str_a, a, b);
  a++;
  b++;
}
void func_c() {
  func_b();
}

Les questions suivantes traitent de la visibilité des variables et fonctions à travers ces 3 fichiers.


Question 1: Variable str_b

Quelle est la valeur de la variable str_a vue par le fichier main.c ?

Question 2: Variable str_b

Quelle est la valeur de la variable str_b vue par le fichier main.c ?

Question 3: Fonction func_a

Dans quel fichier est définie la fonction func_a exécutée par la fonction main ?

Question 4: Fonction func_b

Dans quel fichier est définie la fonction func_b exécutée par la fonction main ?

Question 5: Fonction func_c

Dans quel fichier est définie la fonction func_c exécutée par la fonction main ?

Question 6: Variable a

Quelle sera la valeur de la variable a affichée lors de la 5e exécution de la fonction func_b définie dans le fichier module_b.c ?

Question 7: Variable b

Quelle sera la valeur de la variable b affichée lors de la 5e exécution de la fonction func_b définie dans le fichier module_b.c ?