QCM : Bases de Python (22 questions)

Questions et réponses du QCM

1. Quel est le rôle général d’une structure de contrôle dans un programme ?

Stocker des valeurs en organisant les données du programme
Effectuer des calculs sur les valeurs manipulées par le programme
Répéter des instructions selon une condition ou une collection
Diriger le flux d’exécution en permettant décisions, répétitions ou gestion d’erreurs

Diriger le flux d’exécution en permettant décisions, répétitions ou gestion d’erreurs

Explication

Une structure de contrôle dirige le flux d’exécution et peut servir à prendre des décisions, répéter des actions ou gérer des exceptions. La « structure de données » concerne le stockage, la « répétition » ne couvre qu’un seul rôle, et les « calculs » ne définissent pas ce mécanisme.

2. Dans un programme Python, une instruction commence par `if condition:` et les lignes suivantes sont indentées. Que signale le retrait de l’indentation ?

La modification de la condition en valeur fausse
La continuation du bloc au niveau précédent
La sortie du bloc de la structure de contrôle
La fin de l’exécution de tout le programme

La sortie du bloc de la structure de contrôle

Explication

L’indentation délimite le bloc associé à la structure ; la retirer indique que l’exécution sort de ce bloc. Cela ne met pas nécessairement fin au programme, ne prolonge pas le bloc et ne modifie pas la condition.

3. Que fait une instruction conditionnelle lorsqu’elle évalue une condition ?

Elle exécute une liste d’instructions si la condition est vraie, ou une autre sinon
Elle répète une liste d’instructions pour chaque élément d’une collection
Elle capture une erreur puis exécute une procédure de traitement
Elle exécute une liste d’instructions sans tenir compte de la condition

Elle exécute une liste d’instructions si la condition est vraie, ou une autre sinon

Explication

Une instruction conditionnelle teste si une condition est vérifiée et choisit le bloc correspondant, ou l’autre bloc si elle ne l’est pas. La répétition pour une collection relève d’une boucle, l’exécution indépendante de la condition ignore son rôle, et la capture d’erreur relève de la gestion des exceptions.

4. Un programme teste successivement plusieurs conditions avec `if`, puis `elif`, et possède un bloc `else`. Si aucune condition testée ne convient, quel bloc est exécuté ?

Le bloc `if`
Un nouveau bloc conditionnel
Tous les blocs `elif`
Le bloc `else`

Le bloc `else`

Explication

Dans une chaîne `if…elif…else`, le bloc `else` est exécuté lorsqu’aucune condition précédente ne convient. Le bloc `if` correspond à la première condition vraie, les blocs `elif` sont examinés à la suite, et `else` n’ajoute pas de test.

5. Une note de 15 doit recevoir une mention selon les seuils suivants : Très Bien à partir de 16, Bien à partir de 14, Assez Bien à partir de 12, et Passable en dessous. Quelle mention convient ?

Très Bien
Bien
Assez Bien
Passable

Bien

Explication

Une note de 15 atteint le seuil de 14 pour Bien, mais pas celui de 16 pour Très Bien. « Très Bien » applique le seuil supérieur, « Assez Bien » celui de 12 à une note qui atteint aussi le seuil de Bien, et « Passable » concerne les notes inférieures à 12.

6. Un programme doit redemander un code jusqu’à ce que l’utilisateur saisisse le bon, sans connaître à l’avance le nombre d’essais. Quel type de boucle convient le mieux ?

Une boucle for qui teste la réussite après chaque tour
Une boucle for avec un nombre d’essais fixé à l’avance
Une boucle while dont le nombre de tours est fixé à l’avance
Une boucle while fondée sur la condition de réussite

Une boucle while fondée sur la condition de réussite

Explication

Une boucle while répète les instructions tant que sa condition booléenne est vraie et convient lorsque le nombre d’itérations est inconnu. Une boucle for à nombre fixé suppose des itérations connues, tandis que les autres réponses confondent compteur et condition d’arrêt.

7. Dans une boucle while, la condition dépend de la variable n, mais aucune instruction du bloc ne modifie n. Si la condition est vraie au premier test, que risque-t-il de se produire ?

La boucle s’arrête après un tour complet
La boucle modifie n automatiquement à chaque tour
La boucle exécute un nombre prédéfini de tours
La boucle peut se poursuivre indéfiniment

La boucle peut se poursuivre indéfiniment

Explication

Si la variable qui détermine la condition n’est pas mise à jour, une condition initialement vraie peut le rester et entraîner une boucle indéfinie. L’arrêt après un tour et l’incrémentation implicite supposent une action absente, tandis qu’un nombre prédéfini de tours correspond à une autre logique.

8. Un programme doit afficher exactement douze fois un message, et ce nombre de répétitions est déterminé dès le départ. Quel type de boucle correspond le mieux à cette tâche ?

Une boucle while dont le nombre d’itérations est fixé par le compteur
Une boucle for avec un compteur parcourant douze valeurs
Une boucle while qui attend qu’une condition devienne fausse
Une boucle for qui répète jusqu’à une réussite imprévisible

Une boucle for avec un compteur parcourant douze valeurs

Explication

La boucle for fait parcourir des valeurs à un compteur et convient lorsque le nombre d’itérations est connu à l’avance. Une condition d’arrêt imprévisible relève plutôt de while, et les autres choix inversent les rôles du compteur et de la condition.

9. Dans un parcours construit avec range(4, 9), quels nombres sont inclus dans la plage ?

Les entiers de 0 à 8
Les entiers de 4 à 9
Les entiers de 4 à 8
Les entiers de 4 à 13

Les entiers de 4 à 8

Explication

Avec deux arguments, range(début, fin) inclut la borne de départ et exclut la borne finale : range(4, 9) produit donc les entiers de 4 à 8. Inclure 9 oublie l’exclusion de la borne finale, commencer à zéro ignore le début fourni, et interpréter 9 comme un pas confond les arguments.

10. Une suite arithmétique a pour terme courant unu_n une valeur de 12 et pour raison rr une valeur de −4-4. Quelle relation donne le terme suivant un+1u_{n+1} ?

un+1=4−unu_{n+1}=4-u_n
un+1=−4unu_{n+1}=-4u_n
un+1=un−8u_{n+1}=u_n-8
un+1=un−4u_{n+1}=u_n-4

$$u_{n+1}=u_n-4$$

Explication

Dans une suite arithmétique, on obtient le terme suivant en ajoutant la raison au terme courant ; ici, ajouter −4-4 revient à soustraire 4. L’expression 4−un4-u_n inverse les termes, −4un-4u_n multiplie au lieu d’ajouter et un−8u_n-8 applique deux fois la raison.

11. Pour calculer successivement les termes d’une suite arithmétique jusqu’au rang 6, quelle démarche faut-il suivre ?

Partir du terme initial, multiplier chaque terme par la raison et s’arrêter au rang 6
Partir de la raison, ajouter le terme initial à chaque étape et s’arrêter au rang 6
Partir du terme initial, ajouter la raison à chaque étape et s’arrêter au rang 6
Partir du terme initial, ajouter la raison une fois et s’arrêter au rang 1

Partir du terme initial, ajouter la raison à chaque étape et s’arrêter au rang 6

Explication

Le calcul successif conserve le terme obtenu à chaque étape, lui ajoute la raison, puis répète l’opération jusqu’au rang demandé. Repartir de la raison, multiplier ou s’arrêter après une seule addition ne suit pas cette procédure.

12. Une collection Python doit pouvoir être modifiée, contenir des éléments de types différents et voir sa taille changer. Quelle structure correspond à ces caractéristiques ?

Un tuple entre parenthèses, avec des éléments séparés par des virgules
Une chaîne entre guillemets, avec des caractères séparés par des virgules
Une séquence abstraite, sans délimiteurs ni éléments modifiables
Une liste entre crochets, avec des éléments séparés par des virgules

Une liste entre crochets, avec des éléments séparés par des virgules

Explication

Une liste Python est ordonnée et mutable ; elle peut contenir des types différents, sa taille peut évoluer et elle s’écrit entre crochets avec des virgules. Le tuple est la confusion pertinente car il n’est pas mutable, tandis qu’une séquence est une notion générale et une chaîne est un autre type de séquence.

13. Dans la liste `pays = ["USA", "Canada", "UK", "Norway", "Malta", "India"]`, quel élément obtient-on avec l’indice `-2` ?

"UK"
"Canada"
"Malta"
"India"

"Malta"

Explication

Les indices négatifs se comptent à partir de la fin : `-1` désigne `"India"` et `-2` désigne donc `"Malta"`. `"UK"` correspond à l’indice positif 2, `"Canada"` à l’indice 1, et `"India"` à l’indice `-1`.

14. Une séquence contient 9 éléments. Quelle valeur renvoie `len()` lorsqu’on l’applique à cette séquence ?

8
4
10
9

9

Explication

La fonction `len()` renvoie le nombre d’éléments de la séquence, donc 9. La valeur 8 correspondrait au dernier indice positif, tandis que 10 ajoute un élément et 4 correspond à un indice central possible.

15. Pour afficher tous les éléments d’une liste `valeurs` sans dépasser ses limites, quelle boucle par indices convient ?

Parcourir directement `valeurs`, puis afficher chaque indice obtenu.
Parcourir les entiers de 0 à `len(valeurs) - 1`, puis afficher `valeurs[i]`.
Parcourir les entiers de 0 à `len(valeurs)`, puis afficher `valeurs[i]`.
Parcourir les entiers de 1 à `len(valeurs)`, puis afficher `valeurs[i]`.

Parcourir les entiers de 0 à `len(valeurs) - 1`, puis afficher `valeurs[i]`.

Explication

Les indices valides vont de 0 à `len(valeurs) - 1`, et l’accès `valeurs[i]` récupère chaque élément. Commencer à 1 omet le premier élément, tandis qu’inclure `len(valeurs)` dépasse le dernier indice valide.

16. Dans `nombres = [3, 5, 7]`, une boucle `for x in nombres` exécute `x = x + 1` à chaque passage ; quel est le contenu de `nombres` après la boucle ?

`[3, 6, 8]`
`[4, 5, 7]`
`[3, 5, 7]`
`[4, 6, 8]`

`[3, 5, 7]`

Explication

Réaffecter `x` change la variable de boucle, pas les éléments de la liste d’origine ; celle-ci reste donc `[3, 5, 7]`. `[4, 6, 8]` correspondrait à une modification effective des éléments, par exemple par leurs indices.

17. Qu’est-ce qu’un module Python ?

Un programme qui contient des fonctions réutilisables.
Un environnement qui exécute le programme sans fonctions.
Une fonction isolée qui ne peut pas en contenir d’autres.
Une liste de données destinée à être parcourue par Python.

Un programme qui contient des fonctions réutilisables.

Explication

Un module est un programme contenant des fonctions que l’on peut réutiliser ; la plupart sont déjà installés dans les versions standards de Python. Le réduire à une fonction, à une liste ou à un environnement confond sa nature avec d’autres éléments.

18. Une tortue doit tracer un carré en répétant la même séquence de déplacement et de virage ; quelle séquence doit-elle répéter quatre fois ?

Avancer, puis tourner à gauche de 90°.
Avancer, puis tourner à gauche de 45°.
Avancer, puis tourner à droite de 180°.
Tourner à gauche de 90°, puis avancer.

Avancer, puis tourner à gauche de 90°.

Explication

Pour dessiner un carré, Turtle répète quatre fois une avancée suivie d’un virage de 90°. Tourner avant d’avancer inverse la séquence demandée, et les angles de 180° ou de 45° ne produisent pas les quatre angles droits du carré.

19. Un programme doit parcourir une liste de nombres et interrompre la recherche dès qu’il rencontre un nombre négatif. Quelle méthode convient ?

Une boucle while où l’indice indique directement si un nombre négatif a été rencontré
Une boucle while qui continue jusqu’à la fin de la liste même après avoir trouvé un négatif
Une boucle while avec une variable booléenne, arrêtée à la découverte d’un négatif ou à la fin de la liste
Une boucle for dont le nombre d’itérations est fixé avant le parcours, sans condition d’arrêt liée au résultat

Une boucle while avec une variable booléenne, arrêtée à la découverte d’un négatif ou à la fin de la liste

Explication

La recherche utilise une boucle while et une variable booléenne pour signaler la découverte d’un nombre négatif, ce qui permet d’arrêter le parcours dès qu’il est trouvé ou lorsque la liste est épuisée. Poursuivre jusqu’à la fin ignore le critère d’arrêt, fixer les itérations correspond à une autre logique et confondre indice et booléen attribue à l’indice un rôle différent.

20. Quels éléments la division euclidienne associe-t-elle au dividende et au diviseur de deux entiers naturels ?

Un diviseur commun et un reste
Un quotient décimal et un arrondi
Un quotient et un reste
Un quotient et un produit

Un quotient et un reste

Explication

La division euclidienne associe au dividende et au diviseur un quotient et un reste. Des facteurs décrivent une multiplication, le diviseur commun relève du calcul du PGCD et un quotient décimal avec arrondi ne caractérise pas cette division.

21. Pour une division euclidienne, on a a=53a = 53, b=8b = 8 et q=6q = 6. Quelle valeur du reste rr satisfait la relation de division euclidienne ?

r=48r = 48
r=59r = 59
r=45r = 45
r=5r = 5

$$r = 5$$

Explication

La relation a=bq+ra = bq + r donne r=53−8×6=53−48=5r = 53 - 8 \times 6 = 53 - 48 = 5. La valeur 45 vient de a−qa-q, 48 est le produit bqbq et 59 provient de l’addition de aa et qq.

22. Pour calculer le PGCD de 84 et 30 avec l’algorithme d’Euclide, les restes successifs sont 24, 6, puis 0. Quel est le PGCD ?

30
24
0
6

6

Explication

L’algorithme s’arrête lorsque le reste devient nul ; le PGCD est alors le dernier reste non nul, soit 6. Retenir 24 s’arrête trop tôt, zéro est le reste terminal et 30 est le diviseur initial, pas le dernier reste non nul.

Révisez avec les flashcards

Mémorisez les réponses avec 68 flashcards sur Bases de Python.

Quel rôle joue une structure de contrôle dans un programme ?

Elle dirige le flux d’exécution.

Par quel signe se termine la première ligne d’une structure de contrôle ?

Par deux-points.

Comment le bloc d’une structure de contrôle est-il délimité ?

Par l’indentation.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Bases de Python.

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