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
etreturn
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.
💡👇