QCMUP.COM

Liste Qcm Programmation Pour Concours et Examen Partie - 6

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

40 questions Corrigé Réviser → Pratiquer

Savoir écrire un programme qui fonctionne ne suffit pas : il faut aussi comprendre pourquoi il fonctionne, comment l’améliorer et comment le rendre fiable.

C’est ce que mesurent les épreuves de programmation dans les cursus d’informatique, les concours et les entretiens techniques.

Cette page vous invite à tester des notions plus approfondies : structures de données, parcours de graphes, algorithmes de tri, conception orientée objet, programmation fonctionnelle, bases de données, sécurité et outils de travail en équipe.

Chaque question est suivie d’une explication courte qui vous aide à saisir le raisonnement, au lieu de vous contenter de mémoriser une réponse.

Que vous prépariez un examen ou que vous souhaitiez consolider votre pratique, vous progresserez à votre rythme et repérerez facilement les points à retravailler.

QCM 1 Solution

Qu'est-ce qu'une variable locale ?

A. Une variable accessible depuis tout le programme
B. Une variable accessible uniquement dans la fonction où elle est définie
C. Une variable stockée sur le disque dur
D. Une variable qui ne peut jamais changer de valeur
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
La portée d'une variable locale se limite à son bloc ou à sa fonction, ce qui évite les effets de bord.

QCM 2 Solution

Que renvoie l'expression int("42") en Python ?

A. La chaîne "42"
B. Une erreur systématique
C. Le nombre flottant 4.2
D. L'entier 42
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
int() convertit (caste) une chaîne représentant un nombre entier en véritable valeur entière.

QCM 3 Solution

Que produit l'expression 'a' + 'b' en Python ?

A. Une erreur de type
B. Le nombre 195
C. La chaîne 'ab'
D. La liste ['a', 'b']
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
L'opérateur + concatène deux chaînes de caractères.

QCM 4 Solution

Quelle structure de données associe une clé à une valeur ?

A. Le dictionnaire (table associative)
B. Le tuple
C. La pile
D. Le tableau à une dimension
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Un dictionnaire permet de retrouver une valeur à partir de sa clé, par exemple un nom associé à un âge.

QCM 5 Solution

Quelle est la caractéristique principale d'un ensemble (set) ?

A. Il conserve toujours les doublons
B. Il est toujours trié
C. Il ne contient que des nombres
D. Il ne contient aucun élément en double
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Un ensemble garantit l'unicité de ses éléments, ce qui est pratique pour dédoublonner une liste.

QCM 6 Solution

Quel est l'avantage d'une liste chaînée par rapport à un tableau ?

A. L'accès direct à n'importe quel élément par son indice
B. L'insertion ou la suppression en début de liste en temps constant
C. Une consommation mémoire toujours plus faible
D. Un tri automatique des éléments
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Il suffit de modifier quelques liens, sans décaler les autres éléments comme dans un tableau.

QCM 7 Solution

Dans un arbre binaire de recherche, où se trouvent les valeurs inférieures à celle d'un nœud ?

A. Dans le sous-arbre droit
B. À la racine uniquement
C. Dans le sous-arbre gauche
D. Dans les feuilles uniquement
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Cette règle d'ordre permet de rechercher une valeur en éliminant la moitié de l'arbre à chaque étape, si l'arbre est équilibré.

QCM 8 Solution

Quelle structure utilise-t-on classiquement pour un parcours en largeur (BFS) d'un graphe ?

A. Une file
B. Une pile
C. Un tas
D. Un dictionnaire
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
La file traite les nœuds dans leur ordre d'arrivée, donc niveau par niveau.

QCM 9 Solution

Quel mécanisme sous-tend un parcours en profondeur (DFS) d'un graphe ?

A. Une file de priorité
B. Un tri préalable des nœuds
C. Une pile, explicite ou via la récursivité
D. Une table de hachage uniquement
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Le DFS explore une branche jusqu'au bout avant de revenir en arrière, ce que la pile permet naturellement.

QCM 10 Solution

Quelle est la complexité moyenne du tri fusion (merge sort) ?

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

Réponse correcte : D

Justification :
Le tableau est coupé en deux à chaque niveau, puis fusionné en temps linéaire.

QCM 11 Solution

Quel est le rôle du pivot dans le tri rapide (quicksort) ?

A. Il sert de clé de chiffrement
B. Il sépare les éléments en deux groupes, plus petits et plus grands que lui
C. Il supprime les doublons
D. Il mesure le temps d'exécution
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Une fois la partition faite, on trie récursivement chaque groupe.

QCM 12 Solution

En quoi consiste la mémoïsation ?

A. Mémoriser les résultats d'appels déjà calculés pour éviter de les recalculer
B. Compresser le code source
C. Supprimer les variables inutilisées
D. Sauvegarder le programme sur disque
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Cette technique accélère par exemple le calcul récursif de la suite de Fibonacci.

QCM 13 Solution

Que caractérise un algorithme glouton ?

A. Il teste systématiquement toutes les combinaisons possibles
B. Il utilise toujours la récursivité
C. Il revient sur chacun de ses choix
D. Il choisit à chaque étape la meilleure option locale, sans retour en arrière
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Il est rapide et simple, mais ne donne pas toujours la solution optimale globale.

QCM 14 Solution

Que désigne une classe abstraite ?

A. Une classe sans aucun attribut
B. Une classe qui est instanciée automatiquement
C. Une classe qui ne peut pas être instanciée directement et sert de base à d'autres classes
D. Une classe écrite en langage machine
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Elle définit un cadre commun, parfois avec des méthodes à compléter par les classes filles.

QCM 15 Solution

À quoi sert une interface en programmation orientée objet ?

A. À dessiner une fenêtre graphique uniquement
B. À définir un contrat de méthodes que les classes doivent implémenter
C. À stocker des données sur le disque
D. À accélérer la compilation
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Une interface décrit ce qu'un objet sait faire, pas comment il le fait.

QCM 16 Solution

Quel est le rôle d'un constructeur ?

A. Initialiser un objet au moment de sa création
B. Détruire un objet
C. Compiler une classe
D. Copier un fichier
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Le constructeur définit l'état initial de l'objet, en affectant ses attributs par exemple.

QCM 17 Solution

Que caractérise une méthode statique ?

A. Elle ne peut jamais recevoir de paramètres
B. Elle modifie automatiquement les attributs de tous les objets
C. Elle est exécutée une seule fois au démarrage
D. Elle appartient à la classe et s'appelle sans créer d'objet
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
On l'utilise pour des fonctions utilitaires qui ne dépendent pas de l'état d'une instance.

QCM 18 Solution

Pourquoi dit-on souvent de préférer la composition à l'héritage ?

A. Parce que l'héritage est interdit en POO
B. Parce que la composition est toujours plus rapide à l'exécution
C. Parce qu'elle crée un couplage plus faible et rend le code plus souple
D. Parce qu'elle évite d'écrire des classes
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Assembler des objets plutôt que dériver des classes limite les dépendances rigides.

QCM 19 Solution

Qu'est-ce que la redéfinition (override) d'une méthode ?

A. Supprimer une méthode de la classe mère
B. Fournir dans une classe fille une nouvelle version d'une méthode héritée
C. Renommer une méthode
D. Rendre une méthode privée
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
La classe fille adapte le comportement hérité tout en gardant la même signature.

QCM 20 Solution

Qu'est-ce qu'une fonction lambda ?

A. Une petite fonction anonyme, souvent écrite sur une ligne
B. Une fonction qui s'exécute automatiquement au démarrage
C. Une fonction réservée aux calculs complexes
D. Une fonction qui ne renvoie jamais rien
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Elle est pratique pour des opérations courtes, par exemple comme critère de tri.

QCM 21 Solution

Qu'appelle-t-on fonction d'ordre supérieur ?

A. Une fonction écrite dans un langage de haut niveau
B. Une fonction qui s'exécute en priorité
C. Une fonction qui prend une autre fonction en paramètre ou en renvoie une
D. Une fonction contenant plus de dix lignes
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Des fonctions comme map, filter ou sorted avec une clé en sont des exemples courants.

QCM 22 Solution

Qu'est-ce qu'une fermeture (closure) ?

A. La fin d'un programme
B. Un bloc try sans except
C. Un fichier fermé après lecture
D. Une fonction qui conserve l'accès aux variables de son contexte de création
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
La fonction interne se souvient des variables de la fonction englobante même après la fin de celle-ci.

QCM 23 Solution

Quel est l'intérêt d'un générateur (mot-clé yield) en Python ?

A. Il chiffre les données
B. Il produit des valeurs à la demande, sans tout stocker en mémoire
C. Il accélère toujours la compilation
D. Il remplace les classes
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Un générateur est idéal pour parcourir de très grandes séquences en économisant la mémoire.

QCM 24 Solution

Que signifie le code de statut HTTP 404 ?

A. La ressource demandée est introuvable
B. La requête a réussi
C. Une erreur interne du serveur s'est produite
D. L'accès est interdit
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Le serveur est joignable, mais l'adresse demandée ne correspond à aucune ressource.

QCM 25 Solution

Que signifie le code de statut HTTP 500 ?

A. La ressource a été déplacée
B. La requête est mal formée
C. La connexion est requise
D. Le serveur a rencontré une erreur interne
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Les codes 5xx indiquent un problème côté serveur, alors que les 4xx signalent une erreur côté client.

QCM 26 Solution

À quoi sert une jointure (JOIN) en SQL ?

A. À supprimer une table
B. À sauvegarder une base
C. À combiner les lignes de plusieurs tables à partir d'une colonne commune
D. À chiffrer une colonne
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
On relie par exemple une table de commandes à celle des clients grâce à l'identifiant du client.

QCM 27 Solution

Que garantit la propriété d'atomicité d'une transaction (ACID) ?

A. Que la base est toujours accessible
B. Que la transaction est exécutée entièrement ou pas du tout
C. Que les données sont toujours triées
D. Que les utilisateurs sont authentifiés
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
En cas d'échec en cours de route, toutes les modifications sont annulées, ce qui évite les états incohérents.

QCM 28 Solution

Qu'est-ce qu'un ORM ?

A. Un outil qui fait correspondre des objets du code à des tables de base de données
B. Un protocole réseau
C. Un format de fichier image
D. Un type de processeur
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Il permet de manipuler les données avec des objets plutôt que d'écrire à la main toutes les requêtes SQL.

QCM 29 Solution

En quoi consiste une faille XSS (Cross-Site Scripting) ?

A. Saturer un serveur de requêtes
B. Casser un mot de passe par force brute
C. Voler un fichier sur le disque
D. Injecter du code malveillant dans une page vue par d'autres utilisateurs
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
On s'en protège en échappant ou en filtrant systématiquement les données affichées.

QCM 30 Solution

Pourquoi ajoute-t-on un sel (salt) lors du hachage d'un mot de passe ?

A. Pour rendre le mot de passe plus court
B. Pour pouvoir retrouver le mot de passe en clair
C. Pour que deux mots de passe identiques n'aient pas la même empreinte et pour contrer les tables précalculées
D. Pour accélérer la connexion
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Le sel est une valeur aléatoire unique par utilisateur, ajoutée avant le hachage.

QCM 31 Solution

Que vise une attaque CSRF ?

A. Faire exécuter à un utilisateur connecté une action qu'il n'a pas voulue
B. Deviner un mot de passe
C. Chiffrer le disque de la victime
D. Saturer la mémoire d'un serveur
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Le navigateur envoie automatiquement les cookies de session ; des jetons anti-CSRF permettent de s'en prémunir.

QCM 32 Solution

Qu'est-ce qu'une situation de compétition (race condition) ?

A. Un résultat qui dépend de l'ordre imprévisible d'exécution de plusieurs tâches concurrentes
B. Une boucle très rapide
C. Une comparaison de performances entre deux langages
D. Un test de charge
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Quand plusieurs fils accèdent sans coordination à une même donnée, le résultat peut varier d'une exécution à l'autre.

QCM 33 Solution

Qu'est-ce qu'un interblocage (deadlock) ?

A. Un programme qui s'exécute trop vite
B. Un fichier verrouillé par le système d'exploitation
C. Plusieurs tâches qui s'attendent mutuellement pour toujours, ce qui les bloque
D. Une erreur de syntaxe
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Chaque tâche détient une ressource nécessaire à l'autre. On l'évite par exemple en imposant un ordre d'acquisition des verrous.

QCM 34 Solution

Quel est le rôle du ramasse-miettes (garbage collector) ?

A. Nettoyer le disque dur
B. Supprimer les commentaires du code
C. Effacer les fichiers temporaires
D. Libérer automatiquement la mémoire des objets devenus inutilisés
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Il décharge le développeur de la libération manuelle de la mémoire dans des langages comme Java ou Python.

QCM 35 Solution

Qu'est-ce que la refactorisation (refactoring) ?

A. Ajouter de nouvelles fonctionnalités
B. Améliorer la structure interne du code sans changer son comportement externe
C. Traduire le code dans un autre langage
D. Supprimer tous les tests
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
On rend le code plus lisible et plus maintenable, en s'appuyant sur des tests pour vérifier que rien n'est cassé.

QCM 36 Solution

Quel est le principe du développement piloté par les tests (TDD) ?

A. Écrire le test avant d'écrire le code qui doit le faire réussir
B. Tester uniquement après la mise en production
C. Laisser les utilisateurs écrire les tests
D. Ne jamais utiliser de tests automatisés
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Le cycle rouge, vert, refactorisation guide la conception et garantit une bonne couverture de tests.

QCM 37 Solution

Dans le versionnage sémantique, quel numéro augmente pour une simple correction de bogue rétrocompatible ?

A. Le premier (version majeure)
B. Le deuxième (version mineure)
C. Aucun, la version reste la même
D. Le troisième (correctif ou patch)
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : D

Justification :
Dans le format majeur.mineur.correctif, on passe par exemple de 2.4.1 à 2.4.2 pour un correctif.

QCM 38 Solution

Que doit-on faire en cas de conflit de fusion (merge conflict) dans Git ?

A. Supprimer tout le dépôt
B. Ignorer le conflit et valider
C. Résoudre manuellement les différences, puis valider la résolution
D. Réinstaller Git
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : C

Justification :
Git ne peut pas choisir seul entre deux modifications touchant les mêmes lignes ; il revient au développeur de trancher.

QCM 39 Solution

À quoi sert un linter ?

A. À compiler le code en binaire
B. À analyser le code pour repérer erreurs potentielles et écarts de style
C. À héberger le code en ligne
D. À chiffrer les variables
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : B

Justification :
Un linter signale très tôt des problèmes comme les variables inutilisées ou les conventions non respectées.

QCM 40 Solution

Quel est l'intérêt principal d'une revue de code (code review) ?

A. Faire relire les modifications par un pair pour détecter des défauts et partager les connaissances
B. Remplacer les tests automatisés
C. Augmenter le nombre de lignes de code
D. Supprimer la documentation
Afficher la réponse Cliquez pour voir la correction

Réponse correcte : A

Justification :
Un regard extérieur repère erreurs, failles et problèmes de lisibilité avant qu'ils n'atteignent la production.

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

À propos de ce QCM

Cette série s’adresse à celles et ceux qui maîtrisent déjà les bases et veulent passer à un niveau supérieur.

Elle commence par des rappels utiles sur la portée des variables, les conversions de types et la manipulation de chaînes, puis enchaîne sur les structures de données.

Dictionnaires, ensembles, listes chaînées et arbres y sont présentés par leurs usages concrets, car le choix d’une structure conditionne souvent la performance d’une solution.

Vient ensuite l’algorithmique : parcours en largeur et en profondeur, méthodes de tri, mémoïsation et approche gloutonne.

Ces notions apprennent à comparer plusieurs stratégies et à justifier un choix, compétence très recherchée lors des épreuves comme en entreprise.

La partie consacrée à la conception orientée objet revient sur l’abstraction, les interfaces, la redéfinition de méthodes et le débat entre héritage et composition.

Elle est complétée par un aperçu de la programmation fonctionnelle, avec les fonctions anonymes, les fermetures, les fonctions d’ordre supérieur et les générateurs.

Le quiz aborde aussi le monde réel du développement : codes de réponse HTTP, jointures et transactions en base de données, mappage objet-relationnel, failles de sécurité courantes, compétitions d’accès et interblocages, gestion automatique de la mémoire.

Enfin, les pratiques professionnelles sont à l’honneur : refactorisation, tests, revue de code, analyse statique, versionnage et résolution de conflits.

Ces exercices renforcent la compréhension théorique, l’esprit d’analyse et la capacité à relier un concept à un cas pratique.

Pour progresser, répondez sans aide, notez ce qui vous a fait hésiter, testez ces notions dans votre éditeur de code, puis refaites le quiz quelques jours plus tard.

Conclusion

Ce quatrième parcours de programmation vous permet d’aller au-delà des bases et de comprendre les choix qui distinguent un code simplement fonctionnel d’un code solide et maintenable.

Il consolide vos connaissances en algorithmique, en conception et en bonnes pratiques, tout en vous préparant aux questions que l’on rencontre en examen comme en entretien.

La régularité reste votre meilleure alliée : de courtes séances fréquentes, associées à la pratique du code, ancrent durablement l’apprentissage.

Revenez sur vos erreurs, appuyez-vous sur les explications et mesurez votre progression au fil des essais.

↑