06 29 33 79 32 Je réserve ici

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
Ce QCM sur « Algorithmique et programmation » en seconde teste tes connaissances en mathématiques de manière interactive. Les questions, classées par niveau (facile, moyen, difficile), respectent le programme officiel de seconde. Au programme : Qu'est-ce qu'un algorithme ?, Variables et affectation, Instructions d'entrée / sortie, Instructions conditionnelles. À chaque réponse, une explication détaillée t'aide à comprendre tes erreurs et à mémoriser l'essentiel. Idéal pour s'auto-évaluer rapidement, réviser avant un contrôle ou consolider ses acquis. Quiz gratuit conçu par un professeur particulier à Marseille pour progresser en mathématiques en seconde.

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
  1. 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.

  2. 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).

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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…).

  10. 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.

  11. 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.

  12. 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
  1. 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.

  2. 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.

  3. 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.

  4. 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).

  5. 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.

  6. 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.

  7. 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.

  8. 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).

  9. 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.

  10. 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.

  11. 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.

  12. 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
  1. 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.

  2. 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).

  3. 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.

  4. 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.

  5. 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.

  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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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.

  12. 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.

  13. 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).

Bloqué sur ce chapitre ?

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