Lycée · 2ⁿᵈᵉ · Mathématiques
Algorithmique et programmation
Variables, instructions conditionnelles, boucles et fonctions : les bases de l'algorithmique au programme de 2nde générale
À propos de cette page
Choisis ton niveau. Questions et réponses mélangées à chaque partie. Bonne chance !
Les 37 questions du QCM en version texte
Pour réviser sans écran ou imprimer : chaque question avec ses propositions ; la bonne réponse et son explication se déplient.
Niveau facile — 12 questions
Que fait l'instruction print(x) en Python ?
- A. Lit la valeur de x au clavier
- B. Affiche la valeur de x à l'écran
- C. Supprime la variable x
- D. Calcule x
Réponse
B. Affiche la valeur de x à l'écran — print() est la fonction d'affichage en Python.
Quelle instruction Python affecte la valeur 10 à la variable n ?
- A. n == 10
- B. 10 = n
- C. n = 10
- D. var n = 10
Réponse
C. n = 10 — L'affectation s'écrit n = 10 en Python (signe = simple).
Que renvoie range(4) en Python ?
- A. 0, 1, 2, 3, 4
- B. 1, 2, 3, 4
- C. 0, 1, 2, 3
- D. 1, 2, 3
Réponse
C. 0, 1, 2, 3 — range(4) génère les entiers de 0 à 3, soit 4 valeurs.
Quel opérateur teste l'égalité entre deux valeurs en Python ?
- A. =
- B. !=
- C. ==
- D. >=
Réponse
C. == — == est l'opérateur de comparaison ; = est l'affectation.
Quel mot-clé introduit une fonction en Python ?
- A. function
- B. func
- C. fun
- D. def
Réponse
D. def — En Python, on définit une fonction avec le mot-clé def.
Que vaut 17 % 5 en Python ?
- A. 3
- B. 2
- C. 1
- D. 0
Réponse
B. 2 — 17 = 3×5 + 2, donc le reste (modulo) est 2.
Quelle instruction lit une valeur entière saisie par l'utilisateur ?
- A. n = input(int)
- B. n = int(input())
- C. n = read()
- D. n = scan()
Réponse
B. n = int(input()) — int(input()) lit la saisie clavier et la convertit en entier.
Quelle boucle Python répète un bloc un nombre précis de fois ?
- A. while
- B. for
- C. repeat
- D. loop
Réponse
B. for — La boucle for (notamment avec range) répète un bloc un nombre fixé de fois.
Que signifie l'indentation en Python ?
- A. C'est décoratif
- B. Elle délimite les blocs d'instructions
- C. Elle indique les commentaires
- D. Elle accélère le programme
Réponse
B. Elle délimite les blocs d'instructions — En Python, l'indentation (espaces ou tabulation) est obligatoire pour délimiter les blocs (if, for, while, def…).
Quel est le résultat de 2**8 en Python ?
- A. 16
- B. 256
- C. 64
- D. 128
Réponse
B. 256 — 2**8 = 2⁸ = 256.
Qu'est-ce qu'un algorithme ?
- A. Un langage de programmation
- B. Une suite ordonnée d'instructions pour résoudre un problème
- C. Un logiciel de calcul
- D. Un type de variable
Réponse
B. Une suite ordonnée d'instructions pour résoudre un problème — Un algorithme est une procédure finie et ordonnée permettant de résoudre un problème.
Combien de fois la boucle 'for i in range(7):' s'exécute-t-elle ?
- A. 6
- B. 8
- C. 7
- D. 5
Réponse
C. 7 — range(7) génère 7 valeurs (de 0 à 6), donc le corps est exécuté 7 fois.
Niveau moyen — 12 questions
Quelle valeur affiche ce code ? a = 3 for i in range(4): a += 2 print(a)
- A. 9
- B. 11
- C. 3
- D. 8
Réponse
B. 11 — a part de 3 et on lui ajoute 2 quatre fois : 3+2+2+2+2 = 11.
n = 2 while n < 20: n = n * 2 Quelle est la valeur de n après la boucle ?
- A. 16
- B. 32
- C. 20
- D. 8
Réponse
B. 32 — n vaut 2, 4, 8, 16, 32. À 32, la condition 32 < 20 est fausse → n = 32.
def f(x): return x**2 - 1 print(f(4)) Que s'affiche-t-il ?
- A. 15
- B. 17
- C. 16
- D. 7
Réponse
A. 15 — f(4) = 4² − 1 = 16 − 1 = 15.
Quelle instruction compte le nombre de multiples de 7 entre 1 et 70 (inclus) ?
- A. for i in range(7, 71, 7)
- B. for i in range(1, 70)
- C. for i in range(0, 7)
- D. for i in range(7, 77, 7)
Réponse
A. for i in range(7, 71, 7) — range(7, 71, 7) génère 7, 14, 21, …, 70 (les multiples de 7 de 1 à 70).
On exécute : x = 5 if x > 3 and x < 10: print("A") else: print("B") Que s'affiche-t-il ?
- A. A
- B. B
- C. AB
- D. Erreur
Réponse
A. A — 5 > 3 est vrai ET 5 < 10 est vrai → condition vraie → on affiche A.
s = 0 for k in range(1, 5): s += k print(s) Que s'affiche-t-il ?
- A. 10
- B. 14
- C. 15
- D. 9
Réponse
A. 10 — 1+2+3+4 = 10.
Que fait l'instruction return dans une fonction ?
- A. Affiche une valeur
- B. Termine la fonction et renvoie une valeur
- C. Commence la fonction
- D. Lit une valeur clavier
Réponse
B. Termine la fonction et renvoie une valeur — return termine la fonction et renvoie la valeur spécifiée à l'appelant.
Que vaut 5 // 2 en Python ?
- A. 2.5
- B. 3
- C. 2
- D. 1
Réponse
C. 2 — // est la division entière ; 5 // 2 = 2 (quotient de la division de 5 par 2).
Une boucle while se termine lorsque :
- A. Le corps a été exécuté au moins une fois
- B. La condition devient fausse
- C. Un return est rencontré
- D. range() est épuisé
Réponse
B. La condition devient fausse — La boucle while s'arrête dès que sa condition est évaluée à False.
def carre(n): return n*n print(carre(3) + carre(4)) Que s'affiche-t-il ?
- A. 25
- B. 7
- C. 49
- D. 24
Réponse
A. 25 — carre(3) = 9, carre(4) = 16, 9 + 16 = 25.
Quel code affiche les entiers pairs de 2 à 10 inclus ?
- A. for i in range(2, 11, 2): print(i)
- B. for i in range(0, 10): print(i)
- C. for i in range(1, 11): print(i)
- D. for i in range(2, 10): print(i)
Réponse
A. for i in range(2, 11, 2): print(i) — range(2, 11, 2) génère 2, 4, 6, 8, 10 — les entiers pairs de 2 à 10.
Quelle boucle doit-on préférer quand le nombre d'itérations est inconnu à l'avance ?
- A. for avec range
- B. while
- C. for avec liste
- D. repeat...until
Réponse
B. while — On utilise while quand la condition d'arrêt n'est pas liée à un décompte prédéfini.
Niveau difficile — 13 questions
def mystere(n): c = 0 while n > 1: if n % 2 == 0: n = n // 2 else: n = 3*n + 1 c += 1 return c print(mystere(6)) Que s'affiche-t-il ?
- A. 6
- B. 8
- C. 5
- D. 7
Réponse
B. 8 — Suite de Collatz à partir de 6 : 6→3→10→5→16→8→4→2→1 : 8 étapes.
p = 1 for i in range(1, 6): p *= i print(p) Que s'affiche-t-il ?
- A. 15
- B. 120
- C. 24
- D. 60
Réponse
B. 120 — p = 1×2×3×4×5 = 120 (factorielle 5).
Que fait ce code ? def f(lst): return sum(lst) / len(lst) print(f([10, 20, 30]))
- A. Calcule le maximum
- B. Calcule la moyenne
- C. Calcule la somme
- D. Calcule l'écart-type
Réponse
B. Calcule la moyenne — sum(lst)/len(lst) = (10+20+30)/3 = 20 → calcule la moyenne.
n = 0 s = 0 while s < 100: n += 1 s += n print(n) Quelle est la plus petite valeur de n telle que la somme 1+2+…+n ≥ 100 ?
- A. 13
- B. 14
- C. 12
- D. 15
Réponse
B. 14 — 1+2+…+13 = 91 < 100, 1+2+…+14 = 105 ≥ 100 → n = 14.
Quelle est la valeur retournée par : def f(a, b): while b != 0: a, b = b, a % b return a f(48, 18)
- A. 6
- B. 12
- C. 3
- D. 9
Réponse
A. 6 — C'est l'algorithme d'Euclide : PGCD(48, 18) = PGCD(18, 12) = PGCD(12, 6) = PGCD(6, 0) = 6.
On exécute : def compte(n): c = 0 for i in range(2, n+1): if n % i == 0: c += 1 return c print(compte(7) == 1) Que s'affiche-t-il ?
- A. True
- B. False
- C. 7
- D. 0
Réponse
A. True — 7 est premier : seul diviseur entre 2 et 7 est 7 lui-même → c = 1 → compte(7) == 1 est True.
Combien d'itérations effectue la boucle while suivante ? n = 64 compteur = 0 while n > 1: n = n // 2 compteur += 1 print(compteur)
- A. 5
- B. 6
- C. 7
- D. 8
Réponse
B. 6 — 64→32→16→8→4→2→1 : 6 divisions par 2, soit 6 itérations.
def f(n): if n <= 1: return n return f(n-1) + f(n-2) print(f(6)) Que s'affiche-t-il ?
- A. 8
- B. 13
- C. 5
- D. 21
Réponse
A. 8 — C'est la suite de Fibonacci : f(0)=0, f(1)=1, f(2)=1, f(3)=2, f(4)=3, f(5)=5, f(6)=8.
import random resultat = sum(random.randint(1,6) for _ in range(2)) Cette instruction simule :
- A. Le lancer d'un seul dé
- B. La somme de deux dés à 6 faces
- C. Le produit de deux dés
- D. Un lancer de pièce
Réponse
B. La somme de deux dés à 6 faces — On tire deux entiers indépendants entre 1 et 6 et on les additionne → somme de deux dés.
Quel est le rôle de l'instruction break dans une boucle ?
- A. Passer à l'itération suivante
- B. Arrêter immédiatement la boucle
- C. Relancer la boucle depuis le début
- D. Retourner une valeur
Réponse
B. Arrêter immédiatement la boucle — break interrompt immédiatement la boucle dans laquelle il se trouve.
lst = [3, 1, 4, 1, 5, 9, 2] print(len([x for x in lst if x > 3])) Que s'affiche-t-il ?
- A. 2
- B. 3
- C. 4
- D. 5
Réponse
B. 3 — Les éléments > 3 sont 4, 5, 9 → 3 éléments.
Que renvoie la fonction suivante pour n = 0 ? def fact(n): if n == 0: return 1 return n * fact(n-1)
- A. 0
- B. 1
- C. Erreur
- D. None
Réponse
B. 1 — fact(0) = 1 par définition (cas de base). C'est la définition de la factorielle 0! = 1.
Quelle est la complexité (nombre d'opérations) de la recherche du maximum dans une liste de n éléments par l'algorithme naïf ?
- A. O(1)
- B. O(log n)
- C. O(n)
- D. O(n²)
Réponse
C. O(n) — On parcourt chaque élément exactement une fois → n comparaisons → complexité linéaire O(n).
Cours particuliers de mathématiques à Marseille, en présentiel ou à distance — un prof qui s'adapte à ton rythme et reprend ce qui coince.
Prof de maths à Marseille · Cours particuliers au lycée · Aide aux devoirs