Exercice 1 sur 8
QCMQuelle structure suit le principe « dernier entré, premier sorti » ?

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
Dessine l’état de la structure après chaque opération : c’est la meilleure façon d’éviter les erreurs.
Exercice 1 — Coche la bonne réponse.
Quelle structure suit le principe « dernier entré, premier sorti » ?
Exercice 2
Que vaut x à la fin de ce programme ?
p = []
p.append(1)
p.append(2)
p.append(3)
p.pop()
p.append(4)
p.pop()
x = p.pop()Écris tes calculs :
Réponse : ………………
Exercice 3
Une file est vide. On enfile 5, puis 8, puis 2. On défile une fois, on enfile 7, puis on défile à nouveau. Quelle valeur est renvoyée par ce second défilement ?
Écris tes calculs :
Réponse : ………………
Exercice 4 — Relie chaque élément de gauche à celui de droite.
Associe chaque situation à la structure la plus adaptée.
Exercice 5 — Coche « Vrai » ou « Faux ».
Tester si une clé appartient à un dictionnaire Python (cle in d) a un coût constant en moyenne, quelle que soit la taille du dictionnaire.
VraiFaux
Exercice 6
Qu’affiche ce programme ?
d = {"pomme": 3, "kiwi": 5}
d["pomme"] = d["pomme"] + 2
d["poire"] = 1
print(len(d) + d["pomme"])Écris tes calculs :
Réponse : ………………
Exercice 7 — Coche la bonne réponse.
On vérifie le parenthésage avec une pile : on empile chaque « ( » et on dépile à chaque « ) » ; l’expression est correcte si on ne dépile jamais une pile vide et si la pile est vide à la fin. Quelle chaîne est bien parenthésée ?
Exercice 8
Écris une fonction inverser(p) qui reçoit une pile p (liste Python dont le sommet est le dernier élément) et renvoie une nouvelle pile contenant les mêmes éléments dans l’ordre inverse, en n’utilisant que append, pop et le test de pile vide.
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 : La pile
La pile est LIFO (Last In, First Out) : on retire toujours l’élément du sommet, le dernier ajouté.
Exercice 2
Réponse : 2
On suit le contenu de la pile (sommet à droite).
Exercice 3
Réponse : 8
Le premier défilement renvoie 5 (le plus ancien). La file contient alors 8, 2, puis 8, 2, 7. Le second défilement renvoie 8.
Exercice 4
Réponse : 1 → C · 2 → A · 3 → B
« Annuler » défait d’abord la dernière action (LIFO) ; l’imprimante traite les documents dans l’ordre d’arrivée (FIFO) ; l’annuaire associe une valeur à une clé.
Exercice 5
Réponse : Vrai
Un dictionnaire est une table de hachage : la clé est transformée en position de stockage. Pour une liste, le test x in L demande au contraire un parcours.
Exercice 6
Réponse : 8
d["pomme"] passe à 5 et la clé "poire" est ajoutée : le dictionnaire contient 3 couples. On affiche 3 + 5 = 8.
Exercice 7
Réponse : (()())
Pour (()()) : la pile contient successivement 1, 2, 1, 2, 1 puis 0 parenthèse ouvrante. Pour ())(() on dépile une pile vide au 3ᵉ caractère ; ((()) laisse une parenthèse dans la pile ; (()))( dépile une pile vide au 5ᵉ caractère.
Exercice 8
Exemple de réponse : On crée une pile auxiliaire vide. Tant que p n’est pas vide, on dépile un élément de p et on l’empile sur la pile auxiliaire. Le sommet de p devient ainsi le fond de la nouvelle pile. On renvoie la pile auxiliaire (p est vidée au passage).
Dépiler une pile pour en remplir une autre inverse l’ordre des éléments.
def inverser(p):
aux = []
while p != []:
aux.append(p.pop())
return auxDessine l’état de la structure après chaque opération : c’est la meilleure façon d’éviter les erreurs.
Quelle structure suit le principe « dernier entré, premier sorti » ?
Que vaut x à la fin de ce programme ?
p = []
p.append(1)
p.append(2)
p.append(3)
p.pop()
p.append(4)
p.pop()
x = p.pop()Une file est vide. On enfile 5, puis 8, puis 2. On défile une fois, on enfile 7, puis on défile à nouveau. Quelle valeur est renvoyée par ce second défilement ?
Associe chaque situation à la structure la plus adaptée.
Tester si une clé appartient à un dictionnaire Python (cle in d) a un coût constant en moyenne, quelle que soit la taille du dictionnaire.
Qu’affiche ce programme ?
d = {"pomme": 3, "kiwi": 5}
d["pomme"] = d["pomme"] + 2
d["poire"] = 1
print(len(d) + d["pomme"])On vérifie le parenthésage avec une pile : on empile chaque « ( » et on dépile à chaque « ) » ; l’expression est correcte si on ne dépile jamais une pile vide et si la pile est vide à la fin. Quelle chaîne est bien parenthésée ?
Écris une fonction inverser(p) qui reçoit une pile p (liste Python dont le sommet est le dernier élément) et renvoie une nouvelle pile contenant les mêmes éléments dans l’ordre inverse, en n’utilisant que append, pop et le test de pile vide.
Terminale · Numérique et sciences informatiques (NSI)
Fonctions récursives en Python : cas de base, appels récursifs, pile d’appels, terminaison et comparaison avec l’itératif. Cours et exercices de NSI Terminale.
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)
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.