QCM : Principes et limites de la récursivité — 10 questions

Questions et réponses du QCM

1. Quel est le rôle de la pile d’exécution dans la récursivité ?

Remplacer la condition d’arrêt
Supprimer les appels avant leur exécution
Calculer directement le résultat final sans mémoire
Empiler les appels puis les dépiler au retour

Empiler les appels puis les dépiler au retour

Explication

À chaque appel récursif, un cadre est empilé, puis retiré lorsque l’appel se résout. Ce mécanisme permet de reconstituer le résultat final.

2. Quelle affirmation décrit correctement la récursivité mutuelle pair/impair ?

Le calcul s’arrête sans cas de base
Deux fonctions s’appellent l’une l’autre pour déterminer le résultat
Une seule fonction s’appelle deux fois avec le même argument
Une fonction utilise uniquement une boucle interne

Deux fonctions s’appellent l’une l’autre pour déterminer le résultat

Explication

La récursivité mutuelle repose sur deux fonctions distinctes qui s’appellent alternativement. Dans l’exemple pair/impair, elles se relaient jusqu’aux cas de base.

3. Quelle expression décrit la somme récursive des n premiers entiers ?

s(n) = s(n+1) + n avec s(0) = 1
s(n) = n × s(n-1) avec s(0) = 0
s(n) = s(n-1) - n avec s(0) = 0
s(n) = n + s(n-1) avec s(0) = 0

s(n) = n + s(n-1) avec s(0) = 0

Explication

La somme récursive est définie par s(n) = n + s(n-1) et renvoie 0 quand n = 0. L’idée est d’ajouter le terme courant à la somme précédente.

4. Qu’est-ce qu’une fonction récursive ?

Une fonction qui renvoie toujours une valeur constante
Une fonction qui s’appelle elle-même dans son propre corps
Une fonction qui ne contient aucune condition d’arrêt
Une fonction qui utilise uniquement une boucle for

Une fonction qui s’appelle elle-même dans son propre corps

Explication

Une fonction récursive se définit par un appel à elle-même à l’intérieur de son propre corps. Sans cet appel, il ne s’agit pas d’une récursivité.

5. Dans l’exemple de la puissance récursive, quelle relation permet de réduire l’exposant ?

a^n = a^(n+1) jusqu’à n = 0
a^n = a + a^(n-1) jusqu’à n = 1
a^n = n × a^(n-1) jusqu’à n = 0
a^n = a × a^(n-1) jusqu’à n = 0

a^n = a × a^(n-1) jusqu’à n = 0

Explication

La puissance récursive repose sur la relation a^n = a × a^(n-1) et s’arrête au cas n = 0. C’est ce qui permet de ramener progressivement le problème à un cas simple.

6. Quel exemple illustre une récursivité multiple par division selon la parité ?

Le calcul rapide de la puissance avec test de parité et division par 2
Une fonction qui s’appelle seulement au cas n = 0
Le calcul d’une constante sans appel récursif
La somme des entiers avec un seul appel sur n-1

Le calcul rapide de la puissance avec test de parité et division par 2

Explication

L’exemple de puissance rapide utilise n % 2 pour distinguer les cas et n // 2 pour réduire le problème. Cette structure correspond à une récursivité multiple.

7. Quel est le rôle principal de l’accumulateur dans une fonction récursive terminale ?

Stocker le résultat partiel jusqu’au cas d’arrêt
Transformer la récursion en double appel
Augmenter la profondeur de la pile
Remplacer la condition d’arrêt

Stocker le résultat partiel jusqu’au cas d’arrêt

Explication

L’accumulateur conserve le résultat partiel et permet de renvoyer directement la valeur finale lorsque le cas d’arrêt est atteint. Il ne remplace pas la condition d’arrêt.

8. Quel élément permet d’éviter une suite infinie d’appels récursifs ?

Une boucle de type while
Un cas de base qui met fin aux appels
Un calcul effectué avant toute instruction
Une variable globale partagée

Un cas de base qui met fin aux appels

Explication

La condition d’arrêt, ou cas de base, stoppe la récursion et permet de renvoyer un résultat. Sans elle, les appels peuvent devenir infinis.

9. Que se passe-t-il lorsque la profondeur maximale des appels récursifs est dépassée ?

Le résultat est toujours renvoyé sans problème
La pile d’exécution disparaît et redémarre
La fonction devient automatiquement itérative
Le langage peut signaler une erreur de type Stack Overflow

Le langage peut signaler une erreur de type Stack Overflow

Explication

Si la profondeur limite est dépassée, Python signale une erreur liée au dépassement de pile, souvent décrite comme Stack Overflow. Cela protège la pile d’exécution contre un excès d’appels imbriqués.

10. Quelle caractéristique distingue une récursivité terminale ?

Un calcul reste systématiquement à faire après le retour
La fonction appelle toujours deux fois sa propre version
Le cas de base ne renvoie jamais de valeur
Le résultat est porté par un accumulateur au fil des appels

Le résultat est porté par un accumulateur au fil des appels

Explication

La récursivité terminale utilise un accumulateur qui transporte le résultat pendant les appels, sans calcul différé à la remontée. En récursivité non terminale, un calcul reste à faire après le retour.

Révisez avec les flashcards

Mémorisez les réponses avec 10 flashcards sur Principes et limites de la récursivité.

Principe de la récursivité — définition ?

Fonction qui s'appelle elle-même pour résoudre un problème.

Condition d’arrêt — rôle ?

Met fin à la récursion en renvoyant un résultat simple.

Exemple de fonction récursive — puissance ?

Calcule a^n en réduisant n jusqu’au cas de base n=0.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Principes et limites de la récursivité.

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