QCM : Flot d’exécution en Python — 11 questions

Questions et réponses du QCM

1. Quel est l’objectif principal de la programmation procédurale lorsqu’un programme est découpé en fonctions ou procédures élémentaires ?

Réserver chaque fonction à une seule utilisation dans le programme
Rendre le programme modulaire, réutilisable et plus facile à faire évoluer
Exécuter toutes les instructions dans un ordre fixe sans les regrouper
Remplacer les données du programme par des constantes difficiles à modifier

Rendre le programme modulaire, réutilisable et plus facile à faire évoluer

Explication

Le découpage en fonctions ou procédures élémentaires favorise la modularité, la réutilisation et l’évolution du programme. Regrouper les instructions ne vise pas à empêcher leur réutilisation ni à imposer un ordre d’exécution rigide.

2. Quelle distinction caractérise une fonction pure par rapport à une procédure ?

La fonction pure affiche un résultat en modifiant l’état du système
La fonction pure s’exécute une fois tandis que la procédure peut être réutilisée
La fonction pure renvoie une valeur sans modifier l’état du système
La fonction pure ne reçoit aucun paramètre et la procédure en reçoit plusieurs

La fonction pure renvoie une valeur sans modifier l’état du système

Explication

Une fonction pure produit une valeur sans effet sur l’état du système, tandis qu’une procédure peut agir par effet de bord et ne rien renvoyer. L’affichage constitue justement un exemple d’action réalisée par une procédure.

3. Quelle description correspond à une liste en Python ?

Une succession ordonnée de valeurs entre crochets et séparées par des virgules
Une collection de caractères placés entre guillemets et séparés par des espaces
Une succession de valeurs sans ordre ni possibilité d’accès par indice
Une valeur unique entourée de crochets et associée à une seule position

Une succession ordonnée de valeurs entre crochets et séparées par des virgules

Explication

Une liste est une succession ordonnée et indexée, généralement écrite entre crochets avec des valeurs séparées par des virgules. L’absence d’ordre ou d’accès par indice décrit une structure différente et ne correspond pas à une liste.

4. Pour une liste de longueur nn, quelle expression permet d’accéder à sa dernière valeur ?

t[n]
t[n - 1]
t[0]
t[1]

t[n - 1]

Explication

Les indices d’une liste de longueur nn vont de 00 à n−1n - 1 ; la dernière valeur est donc accessible avec `t[n - 1]`. L’indice nn dépasse la dernière position, tandis que 00 désigne la première valeur.

5. Qu'est-ce qu'une programmation procédurale ?

Une méthode qui consiste à découper un programme en fonctions ou procédures élémentaires pour le rendre modulaire et réutilisable.
Une approche qui privilégie la programmation orientée objet pour structurer le logiciel.
Une méthode qui repose sur l'utilisation exclusive de classes et d'héritages.
Une technique qui utilise uniquement des objets pour organiser le code.

Une méthode qui consiste à découper un programme en fonctions ou procédures élémentaires pour le rendre modulaire et réutilisable.

Explication

La programmation procédurale consiste à diviser un programme en fonctions ou procédures pour le rendre plus modulaire et facile à faire évoluer. Contrairement à la programmation orientée objet, elle ne se concentre pas sur les objets ou classes.

6. Dans une programmation procédurale, quelle est la principale caractéristique d'une fonction pure ?

Elle peut ne rien renvoyer et agir par effet de bord.
Elle modifie l’état global du programme à chaque appel.
Elle ne peut accepter qu’un seul paramètre à la fois.
Elle renvoie une valeur sans modifier l’état du système.

Elle renvoie une valeur sans modifier l’état du système.

Explication

Une fonction pure renvoie une valeur sans changer l’état du système, ce qui facilite la compréhension et la maintenance du code. Contrairement à une procédure, elle n’a pas d’effet de bord.

7. Quel est le rôle principal d'une structure de branchement conditionnel dans un programme ?

Initialiser une variable avant une boucle.
Calculer la somme d'une liste de valeurs.
Répéter un bloc d'instructions un nombre de fois connu.
Exécuter un bloc d'instructions uniquement si une condition est vraie.

Exécuter un bloc d'instructions uniquement si une condition est vraie.

Explication

Le rôle d'un branchement conditionnel est d'exécuter un bloc d'instructions lorsque la condition est vérifiée. Contrairement à une boucle, il ne répète pas l'exécution, et il ne sert pas à initialiser ou calculer des sommes.

8. En quoi la boucle for diffère-t-elle d'une boucle while en termes de contrôle du nombre d'itérations ?

La boucle for a un nombre d’itérations connu à l’avance, tandis que la boucle while dépend d’une condition à maintenir.
La boucle for ne peut pas être imbriquée dans une autre boucle, contrairement à la boucle while.
La boucle for est toujours inconditionnelle, alors que la boucle while est bornée.
La boucle for dépend d’une condition à maintenir, alors que la boucle while a un nombre d’itérations fixe.

La boucle for a un nombre d’itérations connu à l’avance, tandis que la boucle while dépend d’une condition à maintenir.

Explication

La boucle for est conçue pour répéter un nombre d’itérations connu à l’avance, grâce à la fonction range(). La boucle while, quant à elle, dépend d’une condition qui doit rester vraie pour continuer, sans garantie de nombre d’itérations.

9. Quelle est la conséquence principale de l'utilisation d'une boucle while avec un variant qui diminue strictement à chaque itération ?

Elle augmente la complexité du programme sans affecter la terminaison.
Elle garantit la terminaison de la boucle en évitant une boucle infinie.
Elle limite le nombre d'itérations à une valeur fixe prédéfinie.
Elle permet d'exécuter la boucle indéfiniment si la condition reste vraie.

Elle garantit la terminaison de la boucle en évitant une boucle infinie.

Explication

L'utilisation d'un variant qui diminue strictement à chaque itération permet de prouver que la boucle finit, évitant ainsi une boucle infinie. La réduction du variant est une méthode classique pour assurer la terminaison.

10. Comment appliquer efficacement une boucle while pour garantir la terminaison d'un algorithme ?

En utilisant un variant qui diminue strictement à chaque itération.
En s'assurant que la condition de la boucle devient fausse après un nombre fini d'itérations.
En définissant une condition qui ne dépend pas de variables modifiées dans la boucle.
En évitant d'utiliser des variables qui changent durant l'exécution de la boucle.

En utilisant un variant qui diminue strictement à chaque itération.

Explication

L'utilisation d'un variant qui diminue strictement à chaque itération permet de prouver que la boucle while se termine, évitant ainsi une boucle infinie. La deuxième option est également correcte mais moins précise, car elle ne mentionne pas le mécanisme de diminution du variant.

11. Quelle est la caractéristique principale des boucles imbriquées lorsqu'elles sont utilisées pour parcourir une matrice ?

Elles permettent de parcourir systématiquement chaque ligne et chaque colonne de la matrice.
Elles exécutent un seul niveau de boucle pour traiter une matrice.
Elles nécessitent un nombre d'itérations connu à l'avance.
Elles ne peuvent pas être utilisées pour traiter des matrices de grande taille.

Elles permettent de parcourir systématiquement chaque ligne et chaque colonne de la matrice.

Explication

Les boucles imbriquées sont conçues pour parcourir chaque ligne et chaque colonne d'une matrice, en utilisant une boucle pour les lignes et une autre pour les colonnes. La première option est correcte car elle décrit précisément cette propriété, tandis que les autres sont incorrectes ou incomplètes.

Révisez avec les flashcards

Mémorisez les réponses avec 11 flashcards sur Flot d’exécution en Python.

Qu'est-ce que la programmation procédurale ?

C'est découper un programme en fonctions ou procédures modulaires.

Quelle différence entre fonction pure et procédure ?

La fonction pure renvoie une valeur sans effet de bord, la procédure agit par effet de bord.

Qu'est-ce qu'une liste en Python ?

Une succession ordonnée de valeurs entre crochets séparées par des virgules.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Flot d’exécution en 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