Exercice 1 sur 8
QCMQuel est le rôle du cas de base dans une fonction récursive ?

Numérique et sciences informatiques (NSI) · Terminale
22 exercices avec correction détaillée, en 3 séries. Aucune inscription : ta progression reste sur ton appareil.

ULUMINE · Numérique et sciences informatiques (NSI) · Terminale
Feuille d’exercices
Prénom : ……………………………Date : ……………………Score : ……… / 8
Lis chaque programme attentivement et déroule les appels sur ton brouillon avant de répondre.
Exercice 1 — Coche la bonne réponse.
Quel est le rôle du cas de base dans une fonction récursive ?
Exercice 2
Que renvoie f(5) ?
def f(n):
if n == 0:
return 0
return n + f(n - 1)Écris tes calculs :
Réponse : ………………
Exercice 3
Avec la fonction fact du cours, combien d’appels à fact sont effectués au total lors de l’évaluation de fact(4) (y compris le premier) ?
Écris tes calculs :
Réponse : ………………
Exercice 4 — Coche « Vrai » ou « Faux ».
La fonction g ci-dessous termine pour tout entier naturel n.
def g(n):
if n == 0:
return 0
return g(n - 2)VraiFaux
Exercice 5
Avec la fonction puissance du cours, que renvoie puissance(2, 10) ?
Écris tes calculs :
Réponse : ………………
Exercice 6
Que renvoie mystere("nsi") ? Écris la chaîne sans guillemets.
def mystere(s):
if s == "":
return ""
return mystere(s[1:]) + s[0]Exercice 7 — Complète les trous.
Complète ces phrases sur la récursivité.
Une fonction récursive doit comporter au moins un . Chaque appel est stocké dans la . Si la profondeur maximale est dépassée, Python lève l’erreur .
Exercice 8
Écris une fonction récursive somme_chiffres(n) qui renvoie la somme des chiffres d’un entier naturel n (par exemple somme_chiffres(2026) renvoie 10). Justifie sa terminaison.
ulumine.com — exercices corrigés gratuits

ULUMINE · Numérique et sciences informatiques (NSI) · Terminale
Corrigé détaillé — pour les parents et les enseignants
Exercice 1
Réponse : Arrêter la suite des appels récursifs en renvoyant un résultat directement
Le cas de base renvoie un résultat sans nouvel appel récursif : c’est lui qui permet à la chaîne d’appels de s’arrêter, puis à la pile de se vider.
Exercice 2
Réponse : 15
f(n) calcule la somme 0 + 1 + … + n.
Exercice 3
Réponse : 5
Les appels sont fact(4), fact(3), fact(2), fact(1) et fact(0), qui est le cas de base : 5 appels.
Exercice 4
Réponse : Faux
Pour n impair, n prend les valeurs n, n − 2, …, 1, −1, −3… sans jamais valoir 0 : le cas de base n’est jamais atteint et Python lève une RecursionError. Il faudrait par exemple tester n <= 0.
Exercice 5
Réponse : 1024
puissance(2, 10) = 2 × puissance(2, 9) = … = 2¹⁰ × puissance(2, 0) = 1 024 × 1.
Exercice 6
Réponse : isn
La fonction renvoie la chaîne à l’envers : le premier caractère est ajouté après le résultat de l’appel sur le reste de la chaîne.
Exercice 7
Réponse : cas de base · pile d’appels · RecursionError
Le cas de base arrête la récursion ; les appels en attente sont mémorisés dans la pile d’appels, dont la taille est limitée (environ 1 000 niveaux par défaut en Python).
Exercice 8
Exemple de réponse : Si n < 10, n n’a qu’un chiffre : on renvoie n (cas de base). Sinon, on renvoie le dernier chiffre n % 10 plus la somme des chiffres de n // 10.
Terminaison : pour n ≥ 10, n // 10 est un entier naturel strictement inférieur à n ; la suite des paramètres décroît strictement et finit par être inférieure à 10.
On sépare le dernier chiffre (n % 10) du reste du nombre (n // 10), qui a un chiffre de moins.
def somme_chiffres(n):
if n < 10:
return n
return n % 10 + somme_chiffres(n // 10)Lis chaque programme attentivement et déroule les appels sur ton brouillon avant de répondre.
Quel est le rôle du cas de base dans une fonction récursive ?
Que renvoie f(5) ?
def f(n):
if n == 0:
return 0
return n + f(n - 1)Avec la fonction fact du cours, combien d’appels à fact sont effectués au total lors de l’évaluation de fact(4) (y compris le premier) ?
La fonction g ci-dessous termine pour tout entier naturel n.
def g(n):
if n == 0:
return 0
return g(n - 2)Avec la fonction puissance du cours, que renvoie puissance(2, 10) ?
Que renvoie mystere("nsi") ? Écris la chaîne sans guillemets.
def mystere(s):
if s == "":
return ""
return mystere(s[1:]) + s[0]Complète ces phrases sur la récursivité.
Écris une fonction récursive somme_chiffres(n) qui renvoie la somme des chiffres d’un entier naturel n (par exemple somme_chiffres(2026) renvoie 10). Justifie sa terminaison.
Terminale · Numérique et sciences informatiques (NSI)
Classes, objets, attributs et méthodes en Python : constructeur __init__, self, interface et références. Cours et exercices de programmation objet en NSI Terminale.
Terminale · Numérique et sciences informatiques (NSI)
Interface et implémentation des structures linéaires : listes chaînées, piles (LIFO), files (FIFO) et dictionnaires en Python. Cours et exercices de NSI Terminale.
Terminale · Numérique et sciences informatiques (NSI)
Modules et API, paradigmes impératif, fonctionnel et objet, tests, erreurs et débogage, problème de l’arrêt : cours et exercices de NSI Terminale.