Тест: Introduction à la Programmation et Structures de Données — 24 въпроса

Подробни въпроси и отговори

1. Quel concept décrit le fait de cacher les données internes d’une classe et de n’y accéder qu’au moyen de méthodes prévues ?

L’implémentation
L’héritage
L’encapsulation
Le polymorphisme

L’encapsulation

Обяснение

L’encapsulation protège les données internes et limite l’accès à celles-ci par des méthodes contrôlées. L’héritage et le polymorphisme concernent plutôt la réutilisation et la diversité des comportements.

2. Quel concept permet à plusieurs types d’utiliser une même interface tout en ayant des comportements différents ?

L’interface
Le polymorphisme
L’héritage
L’implémentation

Le polymorphisme

Обяснение

Le polymorphisme permet d’appeler une même méthode ou interface sur des objets de types différents, avec des comportements redéfinis. L’interface décrit ce qui est attendu, mais ne fournit pas cette variation de comportement.

3. Quelle structure suit le principe « dernier entré, premier sorti » ?

La file
Le dictionnaire
La liste triée
La pile

La pile

Обяснение

Une pile fonctionne en LIFO, donc le dernier élément ajouté est le premier retiré. Une file suit au contraire le principe FIFO.

4. Dans une liste Python utilisée comme file, quelle opération retire l’élément le plus ancien ?

pop()
append()
pop(0)
insert(0, x)

pop(0)

Обяснение

Pour une file modélisée par une liste, pop(0) enlève l’élément en tête, donc le plus ancien. append() ajoute à la fin, ce qui ne retire rien.

5. Quelle opération permet d’associer ou de modifier la valeur liée à une clé dans un dictionnaire Python ?

dictionnaire += valeur
dictionnaire.remove(clé)
dictionnaire[clé] = valeur
dictionnaire(valeur)

dictionnaire[clé] = valeur

Обяснение

L’écriture dictionnaire[clé] = valeur crée ou met à jour l’entrée correspondant à la clé. Les autres propositions ne correspondent pas à la syntaxe des dictionnaires Python.

6. Quel est le coût moyen des opérations de recherche, d’insertion et de suppression dans un dictionnaire Python ?

O(1)
O(n)
O(log n)
O(n²)

O(1)

Обяснение

Les dictionnaires offrent en moyenne un accès, une insertion et une suppression en temps constant. Cela les distingue d’une liste, où la recherche est généralement linéaire.

7. Dans un arbre binaire de recherche, que contient un sous-arbre gauche par rapport à son nœud parent ?

Des valeurs inférieures
Des valeurs supérieures
Des valeurs égales
Des valeurs quelconques

Des valeurs inférieures

Обяснение

Dans un ABR, tout nœud du sous-arbre gauche contient des valeurs inférieures à celle du nœud courant. Le sous-arbre droit contient au contraire des valeurs supérieures.

8. Quel parcours d’un ABR renvoie les valeurs dans l’ordre croissant ?

En largeur
Préfixe
Suffixe
Infixe

Infixe

Обяснение

Le parcours infixe visite gauche, puis racine, puis droite, ce qui produit les valeurs triées dans un ABR. Les autres parcours ne garantissent pas cet ordre.

9. Quel parcours explore d’abord tous les voisins d’un niveau avant de passer au niveau suivant ?

DFS
BFS
Tri topologique
Recherche binaire

BFS

Обяснение

Le parcours en largeur BFS visite les sommets niveau par niveau. DFS, lui, s’enfonce d’abord le plus loin possible avant de revenir en arrière.

10. Dans une implémentation basée sur une liste de successeurs, de quoi dépend principalement l’ordre de visite des sommets ?

De la liste des voisins fournie
Du sommet de départ uniquement
Du poids des arêtes
Du nombre total d’arêtes

De la liste des voisins fournie

Обяснение

L’ordre de visite dépend de l’ordre des voisins dans la liste de successeurs. Dans le contenu fourni, DFS et BFS ignorent les poids des arêtes.

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

Une colonne qui identifie de façon unique chaque ligne d’une table
Une colonne qui peut contenir des valeurs répétées sans contrainte
Une table utilisée pour relier deux bases de données
Un ensemble de valeurs autorisées pour un attribut

Une colonne qui identifie de façon unique chaque ligne d’une table

Обяснение

La clé primaire sert à identifier de manière unique chaque ligne d’une table. Les valeurs répétées y sont donc exclues, contrairement à une simple colonne non contrainte.

12. Quelle clause SQL permet de supprimer les doublons dans le résultat d’une requête ?

DISTINCT
WHERE
INNER JOIN
ORDER BY

DISTINCT

Обяснение

DISTINCT élimine les répétitions dans les lignes renvoyées par SELECT. WHERE filtre, ORDER BY trie et INNER JOIN relie des tables.

13. Quelle est la métrique utilisée par RIP pour choisir une route ?

Le débit maximal des liens
Le nombre de routeurs voisins
Le nombre de sauts
Le coût cumulé des liaisons

Le nombre de sauts

Обяснение

RIP choisit ses routes en fonction du nombre de sauts. Le coût des liaisons et la connaissance globale du réseau relèvent plutôt d’OSPF.

14. Quel protocole calcule un chemin optimal à partir d’un coût minimal des liaisons ?

OSPF
RIP
BFS
CIDR

OSPF

Обяснение

OSPF utilise une vision globale du réseau et cherche un coût minimal. RIP, lui, repose sur l’échange périodique de tables et le nombre de sauts.

15. Quelle affirmation décrit correctement un cas de base en récursivité ?

C’est la condition qui arrête la récursion
C’est la valeur renvoyée uniquement à la fin du programme
C’est la partie qui déclenche une boucle infinie
C’est l’appel qui multiplie toujours la taille du problème

C’est la condition qui arrête la récursion

Обяснение

Le cas de base permet d’arrêter la récursion et d’éviter une suite infinie d’appels. Sans lui, la fonction ne converge pas vers une terminaison.

16. Que se passe-t-il si une fonction récursive n’atteint jamais son cas de base ?

Elle devient automatiquement itérative
Elle s’arrête dès le premier appel récursif
Elle renvoie toujours la valeur 1
Elle finit par provoquer une erreur de profondeur maximale

Elle finit par provoquer une erreur de profondeur maximale

Обяснение

Sans condition d’arrêt atteignable, les appels s’enchaînent jusqu’à dépasser la profondeur maximale autorisée. Python finit alors par lever une erreur de ce type.

17. Dans la stratégie diviser pour régner, quelle étape suit immédiatement la résolution des sous-problèmes ?

La suppression des doublons
Le choix aléatoire d’un pivot
Le parcours en largeur
La combinaison des résultats

La combinaison des résultats

Обяснение

Diviser pour régner consiste à découper le problème, résoudre les sous-problèmes, puis combiner leurs résultats. La combinaison est donc l’étape finale de la méthode.

18. Dans le tri fusion, quelle condition correspond au cas de base ?

Une liste de longueur au plus 1
Une liste de taille pair
Une liste contenant uniquement des valeurs égales
Une liste déjà triée en ordre décroissant

Une liste de longueur au plus 1

Обяснение

Le tri fusion s’arrête lorsqu’une liste a une longueur au plus 1, car elle est déjà triée. La parité de la taille n’intervient pas dans ce cas de base.

19. Que permet la modularité en Python au niveau de l’organisation du code ?

Exécuter un programme sans importer de fichiers
Découper un système complexe en modules spécialisés
Remplacer les fonctions par des variables globales
Transformer automatiquement tout code en classes

Découper un système complexe en modules spécialisés

Обяснение

La modularité consiste à séparer un système en modules qui gèrent chacun une fonctionnalité spécifique. Cela facilite ensuite la réutilisation et la maintenance.

20. Quelle différence correspond à l’usage de `import module` par rapport à `from module import fonction` ?

Le premier impose d’appeler `module.fonction`, le second permet d’appeler `fonction` directement
Le premier importe tout sans conflit, le second interdit l’accès à la fonction
Le premier crée une docstring, le second crée une classe
Le premier sert uniquement à documenter, le second uniquement à supprimer un module

Le premier impose d’appeler `module.fonction`, le second permet d’appeler `fonction` directement

Обяснение

Avec `import module`, on accède à l’élément via `module.fonction`. Avec `from module import fonction`, la fonction est utilisable directement par son nom.

21. Quel énoncé décrit le mieux la modularité en Python ?

Écrire du code sans fonctions afin de limiter les dépendances
Regrouper tout le code dans un seul fichier pour simplifier les imports
Utiliser uniquement des classes héritées pour organiser un programme
Découper un système en modules spécialisés chacun dans une fonctionnalité précise

Découper un système en modules spécialisés chacun dans une fonctionnalité précise

Обяснение

La modularité consiste à séparer un système complexe en modules qui prennent chacun en charge une fonctionnalité spécifique. Cela améliore l’organisation du code, contrairement à un fichier unique qui ne favorise pas cette séparation.

22. Quelle différence distingue le plus précisément un import de la forme « import module » d’un import de la forme « from module import fonction » ?

Le premier importe une seule fonction, alors que le second importe tout le module
Le premier rend la fonction privée, alors que le second la rend automatiquement documentée
Le premier sert uniquement pour les classes, alors que le second sert uniquement pour les variables
Le premier oblige à appeler la fonction via le nom du module, alors que le second permet de l’appeler directement

Le premier oblige à appeler la fonction via le nom du module, alors que le second permet de l’appeler directement

Обяснение

Avec « import module », on accède aux éléments via « module.fonction » ; avec « from module import fonction », la fonction est disponible directement. C’est précisément la différence d’usage mise en avant.

23. Dans un tri par insertion, que fait l’algorithme lorsqu’il insère un nouvel élément à sa place ?

Il décale vers la droite les éléments plus grands avant de placer la valeur insérée
Il échange directement chaque élément avec le minimum global du tableau
Il fusionne deux sous-tableaux déjà triés pour former un résultat final
Il parcourt le tableau une seule fois sans modifier l’ordre des éléments

Il décale vers la droite les éléments plus grands avant de placer la valeur insérée

Обяснение

Le tri par insertion construit une partie triée en décalant les éléments plus grands vers la droite pour insérer la valeur courante au bon endroit. Les autres propositions décrivent d’autres algorithmes ou un comportement incorrect.

24. Quel est le coût temporel dans le pire cas pour le tri par insertion et pour le tri par sélection ?

O(n^2) pour les deux algorithmes
O(n log n) pour les deux algorithmes
O(1) pour les deux algorithmes
O(n) pour les deux algorithmes

O(n^2) pour les deux algorithmes

Обяснение

Le tri par insertion et le tri par sélection ont tous deux un coût quadratique dans le pire cas, soit O(n^2). Les autres réponses correspondent à des complexités qui ne conviennent pas à ces méthodes.

Прегледайте с флашкарти

Запомнете отговорите с 24 флашкарти по Introduction à la Programmation et Structures de Données.

Programmation orientée objet — définition ?

Méthode de programmation basée sur classes et objets.

Interface — rôle ?

Décrit les fonctionnalités sans implémentation.

Encapsulation — but ?

Protéger et masquer les données internes.

Вижте флашкартите →

Учете с листа за преговор

Прочетете пълния лист за преговор на Introduction à la Programmation et Structures de Données.

Вижте листа за преговор →

Similar courses

Създайте свои собствени тестове

Импортирайте курса си и AI генерира тестове с корекции за 30 секунди.

Генератор на тестове