QCM : Briques séquentielles en algorithmique (9 questions)

Questions et réponses du QCM

1. Une liste `notes` contient plusieurs valeurs. Quel comportement décrit une boucle `for e in notes` utilisée pour les examiner sans modifier la liste ?

Elle retire chaque valeur de `notes` après l’avoir examinée.
Elle consulte les valeurs de `notes` en passant nécessairement par leurs indices.
Elle prend successivement chaque valeur de `notes` sans la modifier.
Elle remplace successivement chaque valeur de `notes` par `e`.

Elle prend successivement chaque valeur de `notes` sans la modifier.

Explication

Un parcours direct examine successivement chaque élément de la structure séquentielle sans la modifier. Remplacer les valeurs relève d’une modification, l’accès par indices est une autre méthode, et retirer les éléments change la liste.

2. Une fonction doit calculer la somme des valeurs d’une séquence `valeurs`. Quelle méthode convient ?

Initialiser un accumulateur à 0, ajouter chaque valeur pendant le parcours, puis le renvoyer.
Parcourir les valeurs et renvoyer l’élément rencontré en dernier.
Initialiser un accumulateur à la première valeur, ajouter les suivantes, puis le renvoyer.
Initialiser un accumulateur à 0, multiplier par chaque valeur, puis le renvoyer.

Initialiser un accumulateur à 0, ajouter chaque valeur pendant le parcours, puis le renvoyer.

Explication

Pour calculer une somme, on commence à 0, on ajoute à l’accumulateur chaque élément parcouru, puis on renvoie cet accumulateur. Commencer par la première valeur ne gère pas correctement une séquence vide, tandis que multiplier ou renvoyer le dernier élément ne calcule pas la somme.

3. Pour `range(4, 9)`, quelles bornes sont incluses dans la séquence produite ?

Les bornes 4 et 9 sont toutes deux incluses.
La borne 4 est incluse et la borne 9 est exclue.
Les bornes 4 et 9 sont toutes deux exclues.
La borne 4 est exclue et la borne 9 est incluse.

La borne 4 est incluse et la borne 9 est exclue.

Explication

Dans `range`, la borne de début est incluse et la borne de fin est exclue. Inclure 9 confond la fin avec le début, exclure 4 inverse la règle de départ, et exclure les deux bornes applique une règle erronée aux deux extrémités.

4. Une boucle utilise `range(2, 11, 3)`. Quelle séquence d’entiers cette expression produit-elle ?

11, 8, 5, 2
2, 3, 4, 5, 6, 7, 8, 9, 10
2, 5, 8, 11
2, 5, 8

2, 5, 8

Explication

Le pas indiqué vaut 3 : en partant de 2, on obtient 2, 5 et 8, puis le terme suivant, 11, n’est pas inférieur à la borne de fin. Inclure 11 oublie que la fin est exclue, la suite de nombres consécutifs néglige le pas, et le décompte inverse le sens.

5. Que désigne un parcours par indices, écrit `for i in range(len(S))` ?

Un parcours qui fournit les positions des éléments afin d’y accéder ou de les modifier
Une opération qui remplace chaque élément par une valeur provisoire
Une méthode qui crée une nouvelle liste en ajoutant des valeurs avec `append`
Un parcours qui renvoie directement les valeurs sans fournir leurs positions

Un parcours qui fournit les positions des éléments afin d’y accéder ou de les modifier

Explication

Le parcours par indices utilise les positions de la séquence, ce qui permet d’accéder aux éléments ou de les modifier. Un parcours direct fournit les valeurs elles-mêmes et ne donne pas directement leurs indices.

6. Dans quel cas le calcul du maximum d’une séquence exige-t-il une vérification préalable de sa taille ?

Lorsque les éléments ne sont pas triés, car le parcours ne peut pas les comparer.
Lorsque la séquence peut être vide, car l’initialisation au premier élément serait impossible.
Lorsque la séquence contient des nombres négatifs, car le maximum doit commencer à zéro.
Lorsque plusieurs éléments sont égaux, car le maximum doit être unique.

Lorsque la séquence peut être vide, car l’initialisation au premier élément serait impossible.

Explication

Le maximum est initialisé au premier élément, ce qui suppose que la séquence n’est pas vide ; une assertion telle que `assert len(S) > 0` peut vérifier cette condition. Des valeurs négatives ne posent pas ce problème, puisque l’initialisation se fait avec un élément de la séquence.

7. Quel est l’objectif de faire évoluer la variable impliquée dans la condition d’une boucle `while` ?

Déterminer à l’avance le nombre total de tours de la boucle
Permettre à la condition de devenir fausse afin que la boucle puisse se terminer
Réinitialiser la variable de condition après chaque exécution du bloc
Conserver la condition vraie pendant un nombre fixe de tours

Permettre à la condition de devenir fausse afin que la boucle puisse se terminer

Explication

Faire évoluer cette variable peut amener la condition à devenir fausse, ce qui met fin à la boucle. Déterminer à l’avance le nombre de tours n’est pas l’objectif, car une boucle `while` est utile lorsque ce nombre est inconnu.

8. Quelle différence distingue un parcours direct de l’accumulation utilisée pour calculer une somme ?

Le parcours direct combine les éléments dans une variable, tandis que l’accumulation les examine sans les modifier.
Le parcours direct examine les éléments sans les modifier, tandis que l’accumulation combine leurs valeurs dans une variable.
Le parcours direct construit une nouvelle séquence, tandis que l’accumulation remplace les éléments de la séquence initiale.
Le parcours direct s’arrête au premier élément, tandis que l’accumulation examine les éléments jusqu’au dernier.

Le parcours direct examine les éléments sans les modifier, tandis que l’accumulation combine leurs valeurs dans une variable.

Explication

Le parcours direct examine successivement les éléments sans modifier la structure, alors que l’accumulation met à jour une variable pour produire un résultat, comme une somme. Construire ou modifier une séquence décrit d’autres opérations, et non la différence entre ces deux démarches.

9. Pourquoi `range(len(S))` fournit-il les indices valides d’une séquence `S` de longueur `n` ?

Parce que les indices vont de 0 à `n - 1`, et `range(n)` exclut `n`.
Parce que `range(n)` commence à 1 et inclut la borne `n`.
Parce que `range(n)` produit les valeurs stockées dans `S` dans leur ordre.
Parce que `len(S)` renvoie l’indice du dernier élément de `S`.

Parce que les indices vont de 0 à `n - 1`, et `range(n)` exclut `n`.

Explication

Les indices d’une séquence de longueur `n` vont de 0 à `n - 1`, ce qui correspond aux entiers produits par `range(n)`. L’idée que `range(n)` inclut `n` est incorrecte, car sa borne de fin est exclue.

Révisez avec les flashcards

Mémorisez les réponses avec 10 flashcards sur Briques séquentielles en algorithmique.

Que fait un parcours direct écrit `for e in Seq` ?

Il examine successivement chaque élément sans modifier la structure.

Quelle valeur initialise l’accumulateur utilisé pour calculer une somme ?

Zéro.

Quelles bornes la fonction `range` inclut-elle et exclut-elle ?

La borne de début est incluse et la borne de fin est exclue.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Briques séquentielles en algorithmique.

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