QCM : Introduction aux Structures et Algorithmes Essentiels — 20 questions

Questions et réponses du QCM

1. En programmation orientée objet, quel est le rôle principal d’une interface ?

Garantir que toutes les méthodes soient automatiquement réécrites
Stocker les données internes d’une classe dans des attributs privés
Décrire les fonctionnalités attendues sans fournir l’implémentation concrète
Permettre à une classe de remplacer une autre classe par héritage

Décrire les fonctionnalités attendues sans fournir l’implémentation concrète

Explication

Une interface précise ce qu’un objet doit savoir faire, sans imposer la manière de le faire. L’implémentation concrète correspond justement au « comment », pas à l’interface.

2. Dans une pile, quel élément est retiré en premier lors d’un retrait classique ?

Le dernier élément ajouté
Le premier élément ajouté
L’élément situé au milieu
L’élément ayant la plus petite valeur

Le dernier élément ajouté

Explication

Une pile suit le principe LIFO : le dernier élément entré est le premier sorti. Cela la distingue d’une file, où l’on retire d’abord le premier élément entré.

3. Dans un arbre binaire de recherche, où doivent se trouver les valeurs strictement plus petites que celle d’un nœud ?

Dans le sous-arbre gauche
Dans les feuilles
Dans le sous-arbre droit
Uniquement à la racine

Dans le sous-arbre gauche

Explication

Dans un ABR, les valeurs plus petites sont placées à gauche et les plus grandes à droite. Cette règle permet la recherche par comparaisons successives.

4. Que renvoie la fonction de recherche lorsqu’elle atteint un nœud vide ?

La hauteur de l’arbre
La valeur cherchée
La taille du sous-arbre
False

False

Explication

Lorsque le nœud courant est nul, cela signifie que la valeur n’a pas été trouvée, donc la fonction renvoie False. Ce cas marque l’absence de la valeur dans l’arbre.

5. Quel parcours d’un arbre binaire de recherche produit les valeurs dans l’ordre croissant ?

Le parcours en largeur
Le parcours suffixe
Le parcours infixe
Le parcours préfixe

Le parcours infixe

Explication

Le parcours infixe visite gauche, puis racine, puis droite ; dans un ABR, cela donne naturellement les valeurs dans l’ordre croissant. Les autres parcours n’assurent pas cet ordre.

6. Quelle structure de données est utilisée pour réaliser un parcours en largeur ?

Un ensemble
Une pile
Un dictionnaire
Une file

Une file

Explication

Le parcours en largeur explore les nœuds niveau par niveau, ce qui nécessite une file pour traiter les sommets dans le bon ordre. Une pile serait adaptée à une exploration en profondeur.

7. Dans un graphe pondéré, qu’indique le poids d’une arête ?

Un coût associé à cette arête
Le degré du sommet de départ
Le nombre de sommets du graphe
La couleur de la liaison

Un coût associé à cette arête

Explication

Un graphe pondéré associe un coût ou un poids à chaque arête. Ce poids peut servir dans certains algorithmes, même s’il est ignoré par BFS et DFS dans le cours.

8. Quel énoncé décrit correctement la différence entre DFS et BFS ?

DFS va au fond, BFS explore par couches
DFS explore par couches, BFS va au fond
DFS trouve toujours le plus court chemin
DFS utilise les poids, BFS ignore les voisins

DFS va au fond, BFS explore par couches

Explication

DFS descend d’abord dans une branche avant de revenir en arrière, tandis que BFS visite les nœuds niveau par niveau. Le plus court chemin n’est garanti par BFS que dans le cadre décrit avec coût unitaire.

9. Dans le modèle relationnel, qu’est-ce qu’une clé primaire ?

Une colonne qui décrit une propriété
Un attribut qui référence une autre table
Un attribut qui identifie de manière unique une ligne
Un ensemble de valeurs autorisées pour une colonne

Un attribut qui identifie de manière unique une ligne

Explication

La clé primaire sert à identifier de façon unique chaque ligne d’une table. La clé étrangère, elle, référence la clé primaire d’une autre table.

10. Quelle requête sert à ne garder que les valeurs distinctes d’une colonne ?

SELECT colonne ORDER BY colonne
SELECT DISTINCT colonne FROM table
SELECT * FROM table
SELECT colonne WHERE colonne

SELECT DISTINCT colonne FROM table

Explication

DISTINCT supprime les doublons et permet d’obtenir une liste de valeurs uniques. SELECT * renvoie toutes les colonnes, sans dédoublonnage.

11. Dans une table de routage, quel élément indique le prochain routeur à emprunter pour atteindre une destination ?

Le masque de sous-réseau
L’adresse de broadcast
La passerelle
L’interface de sortie

La passerelle

Explication

La passerelle correspond au prochain routeur vers lequel envoyer les paquets pour atteindre la destination. L’interface de sortie indique plutôt par quel lien local le paquet quitte le routeur.

12. Quelle différence de métrique distingue RIP d’OSPF ?

RIP utilise le nombre de sauts, tandis qu’OSPF utilise un coût lié aux liaisons
RIP utilise la passerelle, tandis qu’OSPF utilise l’interface de sortie
RIP utilise la bande passante, tandis qu’OSPF utilise le nombre de sauts
RIP utilise l’adresse IP, tandis qu’OSPF utilise le masque

RIP utilise le nombre de sauts, tandis qu’OSPF utilise un coût lié aux liaisons

Explication

RIP choisit les routes selon le nombre de sauts, alors qu’OSPF calcule un coût dépendant des caractéristiques des liens, notamment la bande passante. Cela explique que les deux protocoles puissent préférer des chemins différents.

13. Dans un algorithme récursif, quel rôle joue le cas de base ?

Il stoppe la récursion pour éviter des appels sans fin
Il divise le problème en deux parties égales
Il trie les sous-listes avant l’appel suivant
Il combine les sous-résultats obtenus par les appels récursifs

Il stoppe la récursion pour éviter des appels sans fin

Explication

Le cas de base est la condition d’arrêt qui empêche la fonction de continuer à s’appeler indéfiniment. Sans lui, on risque une récursion infinie.

14. Dans le tri fusion, quelle opération est réalisée après le tri récursif des deux moitiés ?

L’échange des éléments extrêmes
La recherche du minimum de toute la liste
La fusion des deux listes triées
Le déplacement d’un pivot au centre

La fusion des deux listes triées

Explication

Le tri fusion suit le principe diviser pour régner : on découpe, on trie récursivement, puis on fusionne les deux moitiés triées. Le pivot appartient au tri rapide, pas au tri fusion.

15. Quel avantage principal la modularité apporte-t-elle à un programme ?

Elle remplace les fonctions par des variables globales
Elle supprime le besoin d’importer des fonctions
Elle rend le code plus dépendant des détails internes
Elle augmente la réutilisabilité et facilite la maintenance

Elle augmente la réutilisabilité et facilite la maintenance

Explication

La modularité consiste à découper un système en modules spécialisés, ce qui améliore la réutilisabilité, la maintenance et la compréhension du code. Elle ne supprime pas les importations, elle les structure.

16. Que permet l’instruction `from module import fonction` en Python ?

D’afficher la documentation du module
D’appeler la fonction directement sans préfixe de module
De charger automatiquement tout le contenu du module
De renommer le module avec la syntaxe `as`

D’appeler la fonction directement sans préfixe de module

Explication

Avec `from module import fonction`, la fonction est importée directement et peut être appelée sans écrire le nom du module. L’importation de tout le contenu correspond plutôt à `from module import *`.

17. Dans le tri par insertion, quelle opération caractérise le placement d’un nouvel élément ?

Il est placé en fin de tableau sans comparaison
Il est échangé avec le plus petit élément restant
Il est fusionné avec la moitié triée de la liste
Il est inséré à sa place en décalant les éléments plus grands

Il est inséré à sa place en décalant les éléments plus grands

Explication

Le tri par insertion prend un élément et le place dans la partie déjà triée en décalant vers la droite les éléments plus grands. C’est ce mécanisme de décalage qui le distingue du tri par sélection.

18. Quelle affirmation décrit correctement le tri par sélection ?

Il insère chaque élément dans une file FIFO
Il choisit à chaque position le minimum restant puis l’échange
Il compare seulement les éléments déjà triés
Il trie en fusionnant deux sous-listes ordonnées

Il choisit à chaque position le minimum restant puis l’échange

Explication

Le tri par sélection parcourt la partie non triée, repère le minimum restant puis l’échange avec l’élément courant. Le tri fusion, lui, repose sur la division puis la fusion de sous-listes.

19. Que signifie l’écriture `a ≡ b (mod n)` ?

Que n divise la différence a − b
Que a et b sont tous deux divisibles par n
Que a est forcément plus grand que b
Que a est égal à b sans condition supplémentaire

Que n divise la différence a − b

Explication

La congruence modulo n signifie que n divise la différence a − b. Ce n’est pas une égalité stricte : deux nombres congruents peuvent être différents.

20. Que fournit l’algorithme d’Euclide étendu en plus du PGCD ?

La liste des diviseurs communs de a et b
Une factorisation complète en nombres premiers
Des coefficients vérifiant une égalité de Bézout
Une congruence directe entre a et b

Des coefficients vérifiant une égalité de Bézout

Explication

L’Euclide étendu calcule le PGCD et renvoie aussi des coefficients x et y tels que ax + by = PGCD. C’est précisément l’égalité de Bézout.

Révisez avec les flashcards

Mémorisez les réponses avec 20 flashcards sur Introduction aux Structures et Algorithmes Essentiels.

Interface — définition ?

Contrat décrivant fonctionnalités sans implémentation.

Encapsulation — rôle ?

Protège les données internes via des attributs privés.

Héritage — principe ?

Réutilisation et extension d’une classe par une autre.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Introduction aux Structures et Algorithmes Essentiels.

Voir la fiche →

Cours similaires

Crée tes propres QCM

Importe ton cours et l'IA génère des QCM avec corrections en 30 secondes.

Générateur de QCM