QCM CPP - C (Partie 2)
Quiz interactif avec 10 questions. Testez vos connaissances!
Comment jouer ?
- 1. Lisez chaque question attentivement
- 2. Choisissez votre réponse parmi les options
- 3. Cliquez sur "Voir la réponse" pour vérifier
- 4. Comptez vos bonnes réponses à la fin !
Quiz: QCM CPP - C (Partie 2)
10 questions | Difficulté: moyen
Question 1
Qu’est ce qu’une enumeration en C?
- A. Une fonction
- B. Un type de données prédéfini
- C. Une variable globale
- D. Un type d’enumeration
Voir la réponse
Réponse correcte: D
Enumeration est un type de données user-définie qui consiste en des constantes entières et chaque constante entière est donnée un nom.
Question 2
Quel mot clé est utilisé pour définir un type d’enumeration en C?
- A. enum
- B. int
- C. char
- D. while
Voir la réponse
Réponse correcte: A
Le mot clé enum est utilisé pour définir un type d’enumeration.
Question 3
Quelle ligne de code définit une constante RED dans l’exemple donné?
- A. enum color{ GREEN, BLUE };
- B. void printColor(enum color chosenColor) { … };
- C. lor_name = “Invalid color”; switch (chosenColor) { … };
- D. enum color{ RED, GREEN, BLUE };
Voir la réponse
Réponse correcte: A
La constante RED est définie dans enum color{ RED, GREEN, BLUE };
Question 4
Quel code affiche le message ‘RED’ en utilisant l’exemple de printColor?
- A. enum color{ RED, GREEN, BLUE }; void printColor(enum color chosenColor) { … }; lor_name = “Invalid color”; switch (chosenColor) { case RED: color_name = “RED”; break; … };
- B. enum color{ RED, GREEN, BLUE }; void printColor(enum color chosenColor) { … }; lor_name = “Invalid color”; switch (chosenColor) { case RED: color_name = “RED”; break; … }; printf(“%s”, color_name);
- C. enum color{ RED, GREEN, BLUE }; void printColor(enum color chosenColor) { … }; lor_name = “Invalid color”; switch (chosenColor) { case GREEN: color_name = “GREEN”; break; … }; printf(“%s”, color_name);
- D. enum color{ RED, GREEN, BLUE }; void printColor(enum color chosenColor) { … }; lor_name = “Invalid color”; switch (chosenColor) { case BLUE: color_name = “BLUE”; break; … }; printf(“%s”, color_name);
Voir la réponse
Réponse correcte: B
Le code enum color{ RED, GREEN, BLUE }; void printColor(enum color chosenColor) { … }; lor_name = “Invalid color”; switch (chosenColor) { case RED: color_name = “RED”; break; … }; printf(“%s”, color_name); affiche le message ‘RED’.
Question 5
Quel est le problème avec l’utilisation de la variable lor_name dans l’exemple de printColor?
- A. lor_name est définie avant le bloc switch
- B. lor_name n’est pas déclarée
- C. lor_name est une constante
- D. lor_name est utilisé pour stocker une chaîne de caractères
Voir la réponse
Réponse correcte: C
lor_name est définie en dehors du bloc switch et n’est donc pas accessible dans le bloc. Pour résoudre ce problème, lor_name peut être déclarée dans le bloc switch.
Question 6
Comment on définit une constante compilé à partir de type int sans donner un nom à ce type d’enumeration?
- A. enum { buffersize = 256, }; static unsigned char buffer [buffersize] = { 0 };
- B. enum{ buffersize = 256; } static unsigned char buffer [buffersize] = { 0 };
- C. enum buffersize{ 256 }; static unsigned char buffer [buffersize] = { 0 };
- D. enum int{ buffersize = 256 }; static unsigned char buffer [buffersize] = { 0 };
Voir la réponse
Réponse correcte: A
On définit une constante compilé à partir de type int sans donner un nom à ce type d’enumeration en utilisant enum { buffersize = 256, }; static unsigned char buffer [buffersize] = { 0 };
Question 7
Quel est le problème avec l’utilisation de la constante AnotherZero dans l’exemple de main?
- A. AnotherZero a une valeur négative
- B. AnotherZero n’a pas été déclarée
- C. AnotherZero a une valeur positive
- D. AnotherZero est définie avec une constante déjà utilisée
Voir la réponse
Réponse correcte: A
AnotherZero est définie avec une constante déjà utilisée (Negative), ce qui provoque un conflit de nom. Pour résoudre ce problème, il est possible de changer le nom d’une des constantes ou de définir AnotherZero avec une valeur différente.
Question 8
Quel est l’avantage d’utiliser un type d’enumeration plutôt qu’un type entier (int) en C?
- A. On évite les erreurs de compilation
- B. On obtient des performances plus rapides
- C. On gagne en espace mémoire
- D. On a une meilleure portabilité
Voir la réponse
Réponse correcte: A
L’avantage d’utiliser un type d’enumeration plutôt qu’un type entier (int) en C est que l’on évite les erreurs de compilation car on a une documentation sur les valeurs légales à utiliser.
Question 9
Quel est le problème avec la déclaration enum Dupes dans l’exemple de main?
- A. Dupes n’est pas déclaré avant son utilisation
- B. Dupes a été défini avec une valeur négative
- C. Dupes est déclaré avec des noms répétés
- D. Dupes est utilisé pour stocker un tableau
Voir la réponse
Réponse correcte: D
Dans l’exemple de main, Dupes est déclaré comme un type d’enumeration avec des noms répétés (Base, One, Two, Negative, AnotherZero), ce qui provoque un conflit de nom.
Question 10
Quel est l’avantage d’utiliser les initialisations désignées dans l’exemple de main?
- A. On gagne en espace mémoire
- B. On obtient des performances plus rapides
- C. On évite les erreurs de compilation
- D. On a une meilleure portabilité
Voir la réponse
Réponse correcte: B
Les initialisations désignées permettent d’éviter les erreurs de compilation en définissant directement la valeur des constantes d’enumeration.