QCM de langage C avec corrections

Le langage C est fondamental dans le monde de la programmation, utilisé pour développer des logiciels systèmes ainsi que des applications. Cet article propose un questionnaire à choix multiples (QCM) destiné à tester vos connaissances en C, accompagné de corrections détaillées pour chaque question. Ce QCM couvre des concepts de base aux aspects plus avancés.

QCM : Questions et Réponses
Question 1 : Quel est le prototype standard d’une fonction main en C ?

a) int main()
b) void main()
c) main()
d) static main()

Réponse correcte : a) int main()

Correction : En C, la fonction main doit retourner un entier. C’est le statut de sortie du programme. Les prototypes void main() et static main() ne sont pas standards et peuvent ne pas être acceptés par tous les compilateurs.

Question 2 : Quelle instruction est utilisée pour allouer dynamiquement de la mémoire ?

a) alloc()
b) malloc()
c) new
d) create()

Réponse correcte : b) malloc()

Correction : malloc() est une fonction de la bibliothèque standard C qui alloue un bloc de mémoire de taille spécifiée et retourne un pointeur vers le début de ce bloc. Les autres options ne sont pas des fonctions standard en C pour l’allocation de mémoire.

Question 3 : Quel opérateur est utilisé pour accéder aux membres d’une structure via un pointeur en C ?

a) .
b) ->
c) ::
d) #

Réponse correcte : b) ->

Correction : L’opérateur -> est utilisé pour accéder aux membres d’une structure à partir d’un pointeur pointant vers cette structure. L’opérateur . est utilisé lorsque vous avez une instance de structure (et non un pointeur).

Question 4 : Quel mot-clé est utilisé pour sortir d’une boucle ou sauter à l’itération suivante ?

a) break
b) continue
c) exit
d) return

Réponse correcte : a) break, b) continue

Correction :

  • break est utilisé pour sortir complètement d’une boucle.
  • continue provoque le saut des instructions restantes dans le corps de la boucle et reprend l’exécution au début de l’itération suivante.
  • exit et return ne sont pas utilisés spécifiquement pour contrôler les boucles.
Synthèse 😉

Ce QCM est un excellent moyen de tester et de renforcer votre compréhension des principes de base du langage C. Les corrections fournies vous aideront à clarifier vos doutes et à mieux comprendre les bonnes pratiques en C. Pour une maîtrise complète, continuez à explorer ces concepts en écrivant et en exécutant vos propres programmes en C.


Voici trois modèles de QCM en langage C, chacun couvrant un thème différent : les bases du langage, la gestion de la mémoire, et les pointeurs et structures. Ces modèles sont conçus pour tester et renforcer la compréhension des concepts clés de ces domaines.

Modèle 1 : Les Bases du Langage C

Question 1 : Quel type de données serait le plus approprié pour stocker un nombre entier ?
a) float
b) int
c) char
d) double

Question 2 : Quelle structure de contrôle permet de répéter des instructions un nombre spécifié de fois ?
a) if
b) while
c) for
d) switch

Question 3 : Comment écririez-vous une condition if pour vérifier si une variable a est à la fois plus grande que b et plus petite que c ?
a) if (a > b && a < c)
b) if (a > b || a < c)
c) if (a > b) && (a < c)
d) if (a > b) || (a < c)

Modèle 2 : Gestion de la Mémoire

Question 1 : Quelle fonction est utilisée pour libérer la mémoire allouée dynamiquement ?
a) free()
b) remove()
c) delete()
d) clear()

Question 2 : Si vous allouez de la mémoire avec malloc, quelle précaution doit être prise ?
a) Vérifier si le pointeur retourné est NULL
b) Initialiser la mémoire avec init()
c) Utiliser immédiatement la mémoire sans vérification
d) Libérer immédiatement la mémoire après allocation

Question 3 : Combien de bytes sont nécessaires pour stocker une nouvelle allocation de 10 entiers en C ?
a) 10 * sizeof(int)
b) 10 / sizeof(int)
c) sizeof(int[10])
d) 10 + sizeof(int)

Modèle 3 : Pointeurs et Structures

Question 1 : Quel est l’opérateur pour accéder à l’adresse d’une variable ?
a) *
b) &
c) ->
d) .

Question 2 : Que représente ptr->age si ptr est un pointeur vers une structure contenant un membre age ?
a) L’adresse de age dans la structure
b) Le contenu de la variable age dans la structure
c) Une erreur de syntaxe, il faut utiliser *ptr.age
d) Une erreur de syntaxe, il faut utiliser &ptr->age

Question 3 : Si vous avez une structure Personne avec un champ nom de type char[50], comment pouvez-vous déclarer et initialiser une instance de cette structure ?
a) struct Personne p = {"Alice"};
b) struct Personne p; p.nom = "Alice";
c) struct Personne p = {nom: "Alice"};
d) struct Personne p; p->nom = "Alice";

Chaque modèle peut être utilisé dans divers contextes éducatifs ou d’évaluation pour aider les étudiants ou les professionnels à réviser et à approfondir leur compréhension du langage C.

Autres articles

Multiplication de Deux Matrices en Langage C...
Dans cet article, nous allons explorer comment multiplier...
Read more
Pointeur de pointeur en c - Guide...
iIntroduction aux Pointeurs en C : Les pointeurs sont des variables...
Read more
Déclaration de Tableau Dynamique en C avec...
Les tableaux dynamiques en C sont des structures de données...
Read more

Laisser un commentaire

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