QCM : Fonctions récursives en Python — 10 questions

Questions et réponses du QCM

1. Parmi les propositions suivantes concernant la fonction somme, la(les)quelle(s) est(sont) exacte(s) ?

La fonction somme traite des entiers compris entre a et b.
La version itérative de la fonction somme parcourt les valeurs avec une boucle while.
La fonction somme renvoie un total de type entier.
La version itérative de la fonction somme initialise total à 1.
La fonction somme exige que b soit inférieur à a.

La fonction somme traite des entiers compris entre a et b. · La fonction somme renvoie un total de type entier.

Explication

La fonction somme traite les entiers compris entre a et b lorsqu'a est inférieur ou égal à b, puis renvoie un total entier. Sa version itérative parcourt les valeurs de a à b inclus avec une boucle for, ajoute chaque valeur à total et initialise total à 0. Elle ne calcule donc pas un produit, n'utilise pas une boucle while dans cette version et n'exige pas que b soit inférieur à a.

2. Les éléments qui structurent une fonction récursive comprennent :

Un cas récursif empêche la fonction de poursuivre son exécution.
Un cas de base arrête les appels successifs de la fonction.
Un cas récursif appelle la fonction avec de nouveaux arguments.
Un cas de base relance les appels avec des arguments modifiés.
Un cas récursif met fin aux appels successifs de la fonction.

Un cas de base arrête les appels successifs de la fonction. · Un cas récursif appelle la fonction avec de nouveaux arguments.

Explication

Le cas récursif poursuit l’exécution en appelant la fonction avec de nouveaux arguments. Le cas de base arrête les appels successifs ; les autres formulations inversent ces rôles.

3. Une version itérative de la fonction somme peut être décrite ainsi :

Une boucle while parcourt les valeurs de a à b inclus.
Chaque valeur parcourue est ajoutée à total.
La fonction utilise des appels successifs à elle-même.
La variable total est initialisée à zéro avant le parcours.
La valeur finale de total est renvoyée après la boucle.

Chaque valeur parcourue est ajoutée à total. · La variable total est initialisée à zéro avant le parcours. · La valeur finale de total est renvoyée après la boucle.

Explication

La version itérative initialise total à zéro, parcourt les valeurs de a à b inclus avec une boucle for, ajoute chaque valeur à total et renvoie le total final. Elle n’est donc pas fondée sur des appels récursifs et la boucle indiquée n’est pas une boucle while.

4. Concernant le principe de la récursivité, cochez la (les) proposition(s) exacte(s) :

Une fonction récursive se définit par l’absence d’appels à elle-même.
Une fonction récursive identifie explicitement ses cas de base après les appels récursifs.
L’appel à soi-même constitue une caractéristique centrale d’une fonction récursive.
Une fonction récursive peut s’appeler elle-même pendant son exécution.
Une fonction récursive réalise ses appels internes au cours de son exécution.

L’appel à soi-même constitue une caractéristique centrale d’une fonction récursive. · Une fonction récursive peut s’appeler elle-même pendant son exécution. · Une fonction récursive réalise ses appels internes au cours de son exécution.

Explication

Une fonction récursive s'appelle elle-même pendant son exécution, ce qui constitue une caractéristique centrale. Elle réalise ainsi des appels internes et doit distinguer des cas récursifs de cas de base, ces derniers permettant d'arrêter les appels successifs. Il n'est pas requis qu'elle appelle une autre fonction.

5. Quelle est la définition correcte d'une fonction factorielle ?

Une fonction qui calcule le produit de tous les entiers compris entre 1 et n, où n est un entier strictement positif.
Une fonction qui calcule la somme de tous les entiers compris entre 1 et n, où n est un entier positif.
Une fonction qui élève un nombre x à la puissance n, avec n entier positif.
Une fonction qui détermine le nombre de permutations possibles pour n éléments.

Une fonction qui calcule le produit de tous les entiers compris entre 1 et n, où n est un entier strictement positif.

Explication

La fonction factorielle calcule le produit de tous les entiers de 1 à n, ce qui est sa définition fondamentale. La deuxième option décrit la somme des entiers, pas la factorielle.

6. Combien d'appels récursifs sont effectués lors de l'exécution de la fonction puissance(2, 3) avant d'atteindre le cas terminal ?

3 appels
4 appels
1 appel
2 appels

3 appels

Explication

La fonction puissance(2, 3) appelle récursivement puissance(2, 2), puis puissance(2, 1), et enfin puissance(2, 0) avant d'atteindre le cas de base. Il y a donc 3 appels récursifs avant le cas terminal.

7. Quel est le rôle principal de la procédure solution_hanoi dans la résolution des tours de Hanoï ?

Afficher les mouvements nécessaires pour déplacer n disques selon les règles du jeu.
Calculer le nombre minimal de coups pour résoudre le problème.
Déterminer la taille maximale d'une tour pouvant être résolue par la méthode récursive.
Vérifier si une configuration donnée est une solution valide.

Afficher les mouvements nécessaires pour déplacer n disques selon les règles du jeu.

Explication

La procédure solution_hanoi affiche les mouvements nécessaires pour déplacer n disques en respectant les règles du jeu. Elle ne calcule pas directement le nombre de coups, ne vérifie pas une configuration spécifique, ni ne détermine la taille maximale résoluble.

8. En quoi la résolution récursive de Hanoï diffère-t-elle d'une approche itérative pour déplacer les disques ?

La résolution récursive ne peut pas gérer un nombre élevé de disques, contrairement à l'itération qui est plus efficace pour de grands nombres.
La résolution récursive ne respecte pas les règles du jeu, contrairement à l'approche itérative qui doit suivre strictement les règles.
La résolution récursive divise le problème en sous-problèmes plus petits, tandis que l'itération utilise une boucle pour déplacer tous les disques successivement.
La résolution récursive nécessite une fonction qui s'appelle elle-même, alors que l'itération ne fait appel à aucune fonction récursive.

La résolution récursive divise le problème en sous-problèmes plus petits, tandis que l'itération utilise une boucle pour déplacer tous les disques successivement.

Explication

La résolution récursive de Hanoï divise le problème en déplaçant d'abord n-1 disques, puis en déplaçant le plus grand, et enfin en déplaçant à nouveau n-1 disques. L'approche itérative, quant à elle, utilise une boucle pour effectuer tous les déplacements sans cette division.

9. Quelle est la principale cause qui explique pourquoi une fonction récursive doit identifier explicitement ses cas de base et ses cas récursifs ?

Pour simplifier la syntaxe de la fonction et réduire le nombre de lignes de code.
Pour assurer la terminaison correcte de la fonction et éviter une boucle infinie.
Pour augmenter la vitesse d'exécution de la fonction.
Pour permettre à la fonction de s'appeler elle-même sans limite.

Pour assurer la terminaison correcte de la fonction et éviter une boucle infinie.

Explication

La cause principale est d'assurer que la fonction récursive se termine, en évitant une boucle infinie. La distinction entre cas de base et cas récursifs est essentielle pour cette terminaison, contrairement aux autres options qui concernent la performance ou la simplicité.

10. Dans le contexte de la programmation, quel est le principe fondamental de la récursivité ?

Une fonction qui ne peut pas s'appeler elle-même.
Une fonction qui utilise uniquement des boucles pour répéter des actions.
Une fonction qui ne fait appel qu'à d'autres fonctions.
Une fonction qui s'appelle elle-même lors de son exécution.

Une fonction qui s'appelle elle-même lors de son exécution.

Explication

Le principe de la récursivité repose sur le fait qu'une fonction peut s'appeler elle-même pour résoudre un problème en le décomposant en sous-problèmes plus simples. La récursivité nécessite l'identification de cas de base pour arrêter la récursion.

Révisez avec les flashcards

Mémorisez les réponses avec 10 flashcards sur Fonctions récursives en Python.

Qu'est-ce qu'une fonction récursive ?

Une fonction qui s'appelle elle-même lors de son exécution.

Que distingue l'écriture d'une fonction récursive ?

Des cas récursifs et des cas de base.

Que calcule la fonction somme entre a et b ?

La somme des entiers entre a et b inclus.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Fonctions récursives 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