Langage C/C++

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.


Quiz et tests interactifs sur le langage C

Testez vos connaissances avec 170 questions sur la syntaxe, les pointeurs, les tableaux, les structures, la mémoire dynamique, les fichiers, la compilation et les entretiens techniques en langage C.

17 blocs thématiques 10 questions par bloc 170 corrections expliquées
' + ''; body.appendChild(card); }); const actions = document.createElement("div"); actions.className = "quiz-actions"; actions.innerHTML = '' + '' + '
Répondez aux 10 questions.
'; body.appendChild(actions); details.appendChild(summary); details.appendChild(body); container.appendChild(details); }); container.addEventListener("click",function(event){ const checkButton = event.target.closest(".check-quiz"); const resetButton = event.target.closest(".reset-quiz"); if(checkButton){ const body = checkButton.closest(".quiz-body"); const details = checkButton.closest(".quiz-section"); const sectionIndex = Array.from(container.children).indexOf(details); const cards = body.querySelectorAll(".question-card"); let score = 0; let answered = 0; cards.forEach(function(card, questionIndex){ const selected = card.querySelector("input:checked"); const correctIndex = Number(card.dataset.answer); const labels = card.querySelectorAll(".option"); const feedback = card.querySelector(".feedback"); const question = quizData[sectionIndex].questions[questionIndex]; labels.forEach(function(label){ label.classList.remove("correct-option","wrong-option"); }); labels[correctIndex].classList.add("correct-option"); if(!selected){ feedback.className = "feedback visible wrong"; feedback.innerHTML = "Réponse manquante. " + question.explanation; return; } answered++; if(Number(selected.value) === correctIndex){ score++; feedback.className = "feedback visible correct"; feedback.innerHTML = "Bonne réponse. " + question.explanation; }else{ selected.closest(".option").classList.add("wrong-option"); feedback.className = "feedback visible wrong"; feedback.innerHTML = "Réponse incorrecte. " + question.explanation; } }); const result = body.querySelector(".quiz-result"); const percentage = Math.round((score / cards.length) * 100); let level = "À revoir"; if(percentage >= 90){ level = "Excellent niveau"; }else if(percentage >= 70){ level = "Bon niveau"; }else if(percentage >= 50){ level = "Niveau intermédiaire"; } result.innerHTML = "Score : " + score + " / " + cards.length + " — " + percentage + " % — " + level + " — Questions répondues : " + answered + " / " + cards.length; } if(resetButton){ const body = resetButton.closest(".quiz-body"); body.querySelectorAll("input[type='radio']").forEach(function(input){ input.checked = false; }); body.querySelectorAll(".option").forEach(function(option){ option.classList.remove("correct-option","wrong-option"); }); body.querySelectorAll(".feedback").forEach(function(feedback){ feedback.className = "feedback"; feedback.innerHTML = ""; }); body.querySelector(".quiz-result").textContent = "Répondez aux 10 questions."; } }); })();
Évaluez votre niveau en langage C

Répondez à ces 10 questions. Le test détermine automatiquement votre niveau : débutant, intermédiaire, avancé ou expert.

1. Quelle fonction représente le point d’entrée d’un programme C ?

2. Quel opérateur teste l’égalité entre deux valeurs ?

3. Quelle bibliothèque permet d’utiliser printf() ?

4. Quelle déclaration crée un pointeur vers un entier ?

5. Que renvoie malloc() lorsque l’allocation échoue ?

6. Quel est le premier indice d’un tableau en C ?

7. Quelle fonction libère une zone allouée dynamiquement ?

8. Quelle expression vérifie qu’un entier n est pair ?

9. Que vaut sizeof("abc") ?

10. Quel outil aide à détecter les erreurs et fuites mémoire ?

💡👇

QCM – Programmation procédurale en C

Fiche Pratique : Contrôle bas niveau en langage C – QCM Corrigé

AZ

Recent Posts

Marchand de biens immobiliers : activités, opérations, stratégies d’achat-revente et gestion des projets

Le métier de marchand de biens immobiliers consiste à acquérir des biens dans une logique…

7 heures ago

Plan de communication événement : exemple complet, méthode et modèle à télécharger

Le succès d'un événement se prépare bien avant l'ouverture des portes. Une communication structurée permet…

1 jour ago

Chromatographie HPLC : 20 exercices corrigés pour maîtriser les calculs et l’interprétation

La chromatographie liquide haute performance (HPLC) est aujourd'hui l'une des techniques analytiques les plus utilisées…

5 jours ago

HPLC : guide pratique du laboratoire, outils, simulateurs, calculs et interprétation des chromatogrammes

La HPLC (Chromatographie Liquide Haute Performance) est aujourd'hui l'une des techniques analytiques les plus utilisées…

1 semaine ago

Bilan prévisionnel sci gratuit : modèles Excel gratuits

Créer une SCI répond souvent à un projet de long terme. Certains souhaitent acquérir un…

1 semaine ago

Budget mariage : modèles Excel, calculateur, planning et guide complet

Organiser un mariage est une aventure aussi enthousiasmante qu'exigeante. Derrière chaque cérémonie réussie se cachent…

1 semaine ago

This website uses cookies.