QCMUP.COM

Liste Qcm Programmation Pour Concours et Examen Partie - 5

Entraînez-vous avec des QCM corrigés, consultez la réponse et la justification pour progresser durablement.

40 questions Corrigé Réviser → Pratiquer

La programmation est devenue une compétence centrale, bien au-delà des métiers de développeur.

Elle occupe une place importante dans les cursus d’informatique, les concours techniques et les entretiens d’embauche, car elle développe à la fois la logique, la rigueur et la créativité.

Cette page vous propose de vérifier votre maîtrise des notions essentielles : variables et types de données, structures de contrôle, fonctions, récursivité, programmation orientée objet, algorithmique, outils du quotidien comme Git et le débogage, jusqu’aux bonnes pratiques de conception et de sécurité.

Chaque question est suivie d’une explication courte qui vous aide à comprendre le raisonnement, pas seulement à retenir une réponse.

Que vous débutiez ou que vous souhaitiez consolider vos acquis, vous pourrez avancer pas à pas et repérer les points à retravailler.

QCM 1 Solution

Qu'est-ce qu'une variable en programmation ?

A. Une instruction qui répète un bloc de code
B. Un type de fichier exécutable
C. Un emplacement mémoire nommé qui stocke une valeur
D. Un commentaire destiné aux lecteurs
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Une variable associe un nom à une valeur en mémoire, valeur que le programme peut lire et modifier.

QCM 2 Solution

Qu'est-ce qu'un algorithme ?

A. Une suite finie d'instructions précises permettant de résoudre un problème
B. Un langage de programmation
C. Un logiciel de traduction du code
D. Un composant matériel de l'ordinateur
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Un algorithme décrit la méthode de résolution, indépendamment du langage utilisé pour l'écrire.

QCM 3 Solution

Quel type de donnée convient le mieux pour représenter une valeur vrai ou faux ?

A. L'entier
B. La chaîne de caractères
C. Le nombre flottant
D. Le booléen
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Le booléen ne peut prendre que deux valeurs, vrai ou faux, et sert surtout dans les conditions.

QCM 4 Solution

Quel opérateur renvoie le reste d'une division entière dans la plupart des langages ?

A. /
B. %
C. &
D. #
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
L'opérateur modulo (%) donne le reste, par exemple 7 % 3 vaut 1. Il sert à tester la parité.

QCM 5 Solution

À quoi sert une instruction conditionnelle de type if ?

A. À répéter un bloc plusieurs fois
B. À exécuter un bloc seulement lorsqu'une condition est vraie
C. À définir une nouvelle fonction
D. À importer une bibliothèque
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
if permet au programme de prendre une décision selon l'état des données.

QCM 6 Solution

Combien de fois la boucle `for i in range(5)` s'exécute-t-elle en Python ?

A. 4 fois
B. 6 fois
C. 0 fois
D. 5 fois
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
range(5) produit les valeurs 0, 1, 2, 3 et 4, soit cinq itérations.

QCM 7 Solution

Dans la plupart des langages, quel est l'indice du premier élément d'un tableau ?

A. 0
B. 1
C. -1
D. Cela dépend de la taille du tableau
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
L'indexation commence à 0 : le dernier élément d'un tableau de n éléments a donc l'indice n - 1.

QCM 8 Solution

Qu'est-ce qu'une fonction ?

A. Une variable qui stocke du texte
B. Une erreur détectée à l'exécution
C. Un bloc de code nommé, réutilisable, pouvant recevoir des paramètres
D. Un type particulier de boucle
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Les fonctions évitent de réécrire le même code et rendent un programme plus lisible.

QCM 9 Solution

Que se passe-t-il lorsque la condition d'une boucle while reste toujours vraie ?

A. La boucle s'exécute une seule fois
B. Le programme refuse toujours de démarrer
C. La boucle est ignorée
D. La boucle ne s'arrête jamais, sauf interruption ou instruction de sortie
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
C'est une boucle infinie. On la quitte avec une instruction comme break ou en modifiant la condition.

QCM 10 Solution

Quelle est la différence entre un paramètre et un argument ?

A. Le paramètre figure dans la définition de la fonction, l'argument est la valeur transmise lors de l'appel
B. L'argument figure dans la définition, le paramètre est la valeur transmise
C. Il n'y a aucune différence
D. Le paramètre n'existe que dans les boucles
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Dans def f(x), x est un paramètre. Dans f(5), 5 est un argument.

QCM 11 Solution

À quoi servent les commentaires dans un code source ?

A. À accélérer l'exécution
B. À réserver de la mémoire
C. À expliquer le code aux lecteurs sans être exécutés
D. À déclarer des variables
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Les commentaires sont ignorés par la machine. Ils facilitent la compréhension et la maintenance.

QCM 12 Solution

En Python, laquelle de ces structures est modifiable après sa création ?

A. Le tuple
B. La liste
C. La chaîne de caractères
D. L'entier
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Une liste est mutable : on peut ajouter, supprimer ou remplacer ses éléments. Tuples et chaînes sont immuables.

QCM 13 Solution

Qu'est-ce que la récursivité ?

A. Le fait qu'une fonction s'appelle elle-même
B. Une boucle qui ne s'arrête jamais
C. Une variable accessible partout
D. Une erreur de syntaxe
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
La récursivité résout un problème en le ramenant à une version plus petite de lui-même.

QCM 14 Solution

Quelle condition est indispensable pour qu'une fonction récursive se termine ?

A. Une variable globale
B. Plusieurs paramètres
C. Un cas de base qui arrête les appels
D. Une boucle for à l'intérieur
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Sans cas de base, les appels s'enchaînent indéfiniment jusqu'au dépassement de la pile.

QCM 15 Solution

Que renvoie en Python l'expression len('code') ?

A. 3
B. 4
C. 5
D. 'code'
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
len donne le nombre de caractères : c, o, d, e, soit 4.

QCM 16 Solution

Quelle est la différence entre = et == dans la plupart des langages ?

A. Il n'y en a aucune
B. = compare deux valeurs et == affecte une valeur
C. Les deux servent à déclarer des variables
D. = affecte une valeur et == compare deux valeurs
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Confondre les deux est une erreur classique : = modifie une variable, == teste l'égalité.

QCM 17 Solution

À quoi sert la structure try / except (ou try / catch) ?

A. À accélérer le programme
B. À intercepter et traiter les erreurs survenant à l'exécution
C. À définir une classe
D. À déclarer le type d'une variable
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Elle permet de réagir à une erreur (fichier absent, division par zéro) sans que le programme s'arrête brutalement.

QCM 18 Solution

Que signifie l'acronyme POO ?

A. Programmation Optimisée Ordonnée
B. Procédure Orientée Ordre
C. Programmation Orientée Objet
D. Processus Objet Ouvert
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
La POO organise le code autour d'objets qui regroupent des données et des comportements.

QCM 19 Solution

Qu'est-ce qu'une classe en programmation orientée objet ?

A. Un modèle qui décrit les attributs et les méthodes des objets
B. Une boucle particulière
C. Un fichier de données
D. Une erreur de compilation
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
La classe est le plan de construction à partir duquel on crée des objets.

QCM 20 Solution

Quel est le lien entre une classe et un objet ?

A. Un objet est une copie du code source de la classe
B. Un objet est un type primitif
C. Un objet est une fonction statique
D. Un objet est une instance de la classe
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Chaque objet créé à partir d'une classe possède ses propres valeurs d'attributs.

QCM 21 Solution

Que désigne le polymorphisme ?

A. Le fait de masquer les attributs d'un objet
B. Le fait pour une classe de reprendre les éléments d'une autre
C. Le fait que des objets de classes différentes répondent à une même méthode, chacun à sa façon
D. La conversion d'un nombre en texte
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Une même instruction, comme dessiner(), peut produire un résultat différent selon l'objet concerné.

QCM 22 Solution

Quelle est la complexité de la recherche dichotomique dans un tableau trié ?

A. O(log n)
B. O(n)
C. O(n²)
D. O(1)
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
À chaque étape, on élimine la moitié des éléments restants, d'où une croissance logarithmique.

QCM 23 Solution

Quelle est la complexité du tri à bulles dans le pire cas ?

A. O(log n)
B. O(n)
C. O(1)
D. O(n²)
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Le tri à bulles compare de nombreuses paires d'éléments, ce qui devient coûteux sur de grands tableaux.

QCM 24 Solution

En moyenne, quelle est la complexité d'un accès par clé dans une table de hachage (dictionnaire) ?

A. O(n)
B. O(1)
C. O(n log n)
D. O(n²)
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
La fonction de hachage calcule directement l'emplacement de la valeur, d'où un accès en temps constant.

QCM 25 Solution

Quelle commande Git enregistre les modifications dans l'historique local ?

A. git commit
B. git clone
C. git pull
D. git init
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
git commit crée un point de sauvegarde accompagné d'un message décrivant le changement.

QCM 26 Solution

À quoi sert un débogueur ?

A. À compiler le programme plus vite
B. À rédiger la documentation
C. À chiffrer le code source
D. À exécuter le programme pas à pas et inspecter l'état des variables
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Il aide à comprendre où et pourquoi un programme s'écarte du comportement attendu.

QCM 27 Solution

Qu'est-ce qu'un test unitaire ?

A. Un test du système complet en production
B. Une vérification automatisée du bon comportement d'une petite unité de code
C. Une mesure de la vitesse du réseau
D. Une évaluation de l'apparence de l'interface
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Les tests unitaires, souvent sur une fonction, détectent vite les régressions après une modification.

QCM 28 Solution

Qu'est-ce qui caractérise un langage interprété comme Python ?

A. Il produit toujours un exécutable autonome avant le lancement
B. Il ne permet pas de définir de fonctions
C. Son code est lu et exécuté par un interpréteur, sans passer par un fichier exécutable distinct
D. Il n'utilise jamais de mémoire
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Un interpréteur traduit et exécute le code à la volée, ce qui facilite les essais rapides.

QCM 29 Solution

Où s'exécute le JavaScript ?

A. Uniquement dans le BIOS
B. Uniquement dans les imprimantes
C. Uniquement dans les bases de données
D. Dans le navigateur, mais aussi côté serveur avec Node.js
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Né pour le web côté client, JavaScript s'utilise aussi pour des serveurs et des outils en ligne de commande.

QCM 30 Solution

Que signifie l'acronyme JSON ?

A. Java Standard Object Notation
B. JavaScript Object Notation
C. Joint Script Online Network
D. Java Serialized Output Node
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
JSON est un format texte léger, très utilisé pour échanger des données entre applications.

QCM 31 Solution

Dans une API REST, quelle est la fonction habituelle d'une requête HTTP GET ?

A. Supprimer une ressource
B. Créer une ressource
C. Lire ou récupérer une ressource
D. Remplacer une ressource
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
GET sert à consulter des données sans les modifier. POST crée, PUT remplace et DELETE supprime.

QCM 32 Solution

Que signifie le principe DRY en développement ?

A. Don't Repeat Yourself : éviter de dupliquer la logique
B. Deploy Regularly Yourself
C. Define Repeated Yields
D. Document Recursive Yields
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Factoriser le code évite qu'une même correction doive être faite à plusieurs endroits.

QCM 33 Solution

Quelle est une cause fréquente d'un dépassement de pile (stack overflow) ?

A. Un trop grand nombre de commentaires
B. Une récursion sans cas de base ou trop profonde
C. Une variable déclarée en majuscules
D. Un fichier source volumineux
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Chaque appel de fonction occupe de la place dans la pile : trop d'appels imbriqués la saturent.

QCM 34 Solution

Qu'est-ce qu'une fuite de mémoire ?

A. De la mémoire allouée, jamais libérée alors qu'elle n'est plus utilisée
B. Une perte de connexion réseau
C. La suppression accidentelle d'un fichier
D. Un virus qui efface la mémoire vive
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Les fuites s'accumulent et finissent par ralentir ou faire planter l'application.

QCM 35 Solution

Pourquoi recourt-on à la programmation asynchrone ?

A. Pour ralentir volontairement le programme
B. Pour supprimer la nécessité des fonctions
C. Pour chiffrer les données échangées
D. Pour ne pas bloquer le programme pendant une opération longue, comme un appel réseau
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Le programme peut continuer à travailler en attendant la réponse, ce qui garde l'interface fluide.

QCM 36 Solution

Quelle est la meilleure protection contre les injections SQL ?

A. Désactiver les mots de passe
B. Concaténer directement les saisies dans la requête
C. Utiliser des requêtes paramétrées
D. Masquer les champs du formulaire
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Avec des paramètres, les données saisies ne sont jamais interprétées comme du code SQL.

QCM 37 Solution

Qu'est-ce qu'un framework ?

A. Un ensemble structuré d'outils et de conventions servant de base au développement d'applications
B. Un compilateur
C. Un type de base de données
D. Un périphérique de saisie
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Un framework impose une organisation et fournit des composants prêts à l'emploi, par exemple Django ou React.

QCM 38 Solution

Que signifie la lettre S dans le sigle SOLID ?

A. Single Server
B. Secure Socket
C. Static Sequence
D. Single Responsibility : une classe ne doit avoir qu'une seule raison de changer
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Une classe qui fait une seule chose est plus simple à comprendre, à tester et à faire évoluer.

QCM 39 Solution

À quoi sert l'intégration et le déploiement continus (CI/CD) ?

A. À rédiger la documentation
B. À automatiser les tests, la construction et la livraison du code
C. À remplacer les développeurs
D. À compresser les fichiers sources
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Chaque modification est vérifiée automatiquement, ce qui réduit les erreurs et accélère les livraisons.

QCM 40 Solution

Que garantit le patron de conception Singleton ?

A. Qu'une classe peut avoir autant d'instances que voulu
B. Que les objets sont toujours immuables
C. Qu'une classe n'a qu'une seule instance, accessible globalement
D. Que les méthodes sont toujours statiques
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Il convient pour une ressource unique, comme une configuration, mais il faut l'utiliser avec parcimonie.

Mots & Définitions
Consultez les définitions des termes importants.

Un algorithme est une suite d'étapes précises qui permet de résoudre un problème. Il se décrit indépendamment de tout langage, comme une recette de cuisine. Un programme n'est que la traduction d'un algorithme dans un langage compréhensible par l'ordinateur.

Une variable est un espace mémoire auquel on donne un nom pour y ranger une valeur. Son type indique la nature de cette valeur : nombre, texte, booléen, liste. Bien choisir les types évite beaucoup d'erreurs.

Les structures de contrôle dirigent le déroulement d'un programme. Les conditions permettent de choisir entre plusieurs chemins, et les boucles de répéter des actions. Sans elles, un programme se contenterait d'exécuter ses lignes une à une.

Une fonction est un bloc de code auquel on donne un nom pour le réutiliser autant de fois que nécessaire. Elle peut recevoir des paramètres et renvoyer un résultat. Elle rend le programme plus clair et plus facile à corriger.

Une fonction est récursive lorsqu'elle s'appelle elle-même pour traiter une version plus petite du même problème. Elle doit toujours comporter un cas de base qui arrête les appels. Elle convient bien aux structures arborescentes et à certains calculs mathématiques.

Gérer les erreurs consiste à prévoir ce qui peut mal tourner et à y répondre proprement. Des mécanismes comme try et except permettent d'intercepter un problème sans interrompre brutalement le programme. Un code robuste informe l'utilisateur au lieu de planter.

Ce paradigme organise le code autour d'objets qui regroupent des données et des comportements. Il s'appuie sur des principes comme l'encapsulation, l'héritage et le polymorphisme. Il facilite la réutilisation et la maintenance de gros projets.

Une classe est un modèle qui décrit les caractéristiques et les actions possibles d'un type d'élément. Un objet est un exemplaire concret créé à partir de ce modèle. Plusieurs objets d'une même classe ont la même structure, mais des valeurs qui peuvent différer.

La complexité mesure comment le temps ou la mémoire nécessaires à un algorithme évoluent quand les données augmentent. On l'exprime avec la notation O, par exemple O(n) ou O(log n). Elle aide à choisir la méthode la plus efficace.

Une structure de données est une façon d'organiser l'information pour y accéder et la modifier efficacement. Tableaux, listes, piles, files et dictionnaires en sont des exemples. Le bon choix a un impact direct sur la rapidité du programme.

Le débogage consiste à repérer et corriger les erreurs d'un programme, notamment en l'exécutant pas à pas. Les tests automatisés vérifient que chaque morceau de code fait bien ce qu'on attend. Ensemble, ils garantissent la fiabilité des évolutions.

La gestion de versions conserve l'historique de toutes les modifications d'un projet. Git permet de revenir en arrière, de travailler en parallèle sur des branches et de collaborer à plusieurs. C'est un outil incontournable du développement moderne.

Une API est une interface qui permet à des logiciels de communiquer en suivant des règles communes. Les données y circulent souvent au format JSON, un texte léger facile à lire pour l'humain comme pour la machine. Elle est au cœur des applications web et mobiles.

Elle permet à un programme de lancer une opération longue, comme une requête réseau, sans rester bloqué pendant l'attente. Il peut traiter d'autres tâches puis reprendre quand la réponse arrive. Cette approche garde les applications fluides et réactives.

Des principes comme DRY, SOLID ou les patrons de conception guident l'écriture d'un code propre. Ils visent à éviter les répétitions, à limiter les dépendances et à faciliter les évolutions. Appliqués avec discernement, ils rendent un projet durable.

À propos de ce QCM

Ce quiz suit la progression d’un bon cours de programmation.

Il commence par les fondations : comprendre ce qu’est un algorithme, manipuler des variables de différents types, utiliser les opérateurs et construire des conditions.

Ces notions sont communes à presque tous les langages, ce qui permet de les transposer facilement de Python à JavaScript, de Java à C.

La suite s’intéresse à la répétition et à la structuration du code.

Les boucles, les fonctions et la récursivité apprennent à découper un problème en morceaux plus simples.

La gestion des erreurs complète ce socle en montrant comment écrire un programme qui réagit correctement aux situations imprévues.

Vient ensuite la programmation orientée objet, avec les notions de classe, d’instance et de polymorphisme, souvent source de confusion au début.

L’algorithmique prolonge cette réflexion avec les structures de données et la complexité, qui permettent de comparer plusieurs solutions et de comprendre pourquoi l’une est plus rapide qu’une autre.

Le quiz aborde enfin la réalité du métier : gestion de versions, tests, débogage, API, échanges de données, programmation asynchrone, intégration continue et prévention des failles comme l’injection SQL.

Les principes de conception montrent comment garder un projet lisible et évolutif.

Ces exercices développent la compréhension théorique, le sens de l’analyse et la capacité à relier un concept à un cas concret.

Ils permettent aussi de s’auto-évaluer honnêtement : chaque explication transforme une erreur en occasion d’apprendre.

Pour progresser, répondez sans aide, notez vos hésitations, testez ensuite ces notions dans votre éditeur de code, puis refaites le quiz quelques jours plus tard.

Conclusion

Ce quiz de programmation vous offre un entraînement complet pour consolider vos bases et gagner en assurance, que vous prépariez un examen, un concours ou un entretien technique.

En passant des notions fondamentales aux pratiques professionnelles, vous construisez une compréhension solide et cohérente.

La régularité reste votre meilleur atout : de courtes séances fréquentes, associées à la pratique du code, ancrent durablement les connaissances.

Revenez sur les points délicats, comparez vos résultats au fil du temps et appuyez-vous sur chaque explication pour progresser.

↑