Maîtrisez la récursivité : QCM et défis algorithmiques
🧠 Quiz 10 questions 10 min
QUIZ INTERACTIFDiff. 5/10
Découvrez la récursivité en programmation avec ce cours détaillé pour Terminale. Exemples, exercices et explications claires pour maîtriser les algorithmes récursifs.
Question 1 sur 10 10:00
[{"id":68982,"question":"Quel est le cas de base pour calculer la factorielle d'un nombre n (n!) en récursivité ?","option_a":"n = 0","option_b":"n = 1","option_c":"n = 2","option_d":"n = -1","option_e":"","option_f":"","bonne_reponse":"A","explication":"Le cas de base pour la factorielle est n = 0, car 0! = 1. Cela permet d'arrêter la récursion et de retourner une valeur connue.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":68983,"question":"La récursivité est toujours plus efficace qu'une boucle itérative.","option_a":"Vrai","option_b":"Faux","option_c":"","option_d":"","option_e":"","option_f":"","bonne_reponse":"B","explication":"Faux. La récursivité peut être moins efficace en termes de consommation mémoire (pile d'appels) et de temps d'exécution pour certains problèmes, bien qu'elle soit souvent plus lisible.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":68984,"question":"Quel algorithme récursif est utilisé pour résoudre le problème des tours de Hanoï ?","option_a":"Diviser pour régner","option_b":"Force brute","option_c":"Backtracking","option_d":"Tri rapide","option_e":"","option_f":"","bonne_reponse":"A","explication":"Le problème des tours de Hanoï est résolu par l'algorithme 'Diviser pour régner', qui décompose le problème en sous-problèmes plus petits.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":68985,"question":"Que se passe-t-il si une fonction récursive n'a pas de cas de base ?","option_a":"La fonction s'exécute correctement","option_b":"Une erreur de compilation est générée","option_c":"Une boucle infinie se produit","option_d":"Le résultat est toujours 0","option_e":"","option_f":"","bonne_reponse":"C","explication":"Sans cas de base, la fonction s'appelle indéfiniment, ce qui entraîne une erreur de dépassement de pile (stack overflow).","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":68986,"question":"La récursivité terminale est une optimisation qui permet d'éviter la consommation excessive de mémoire.","option_a":"Vrai","option_b":"Faux","option_c":"","option_d":"","option_e":"","option_f":"","bonne_reponse":"A","explication":"Vrai. La récursivité terminale (où l'appel récursif est la dernière instruction) peut être optimisée par le compilateur pour réutiliser la même pile d'appels, réduisant ainsi la consommation mémoire.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":68987,"question":"Quel est le résultat de l'appel récursif suivant : fibonacci(4) ? (avec fibonacci(0)=0, fibonacci(1)=1)","option_a":"2","option_b":"3","option_c":"5","option_d":"8","option_e":"","option_f":"","bonne_reponse":"C","explication":"fibonacci(4) = fibonacci(3) + fibonacci(2) = (fibonacci(2)+fibonacci(1)) + (fibonacci(1)+fibonacci(0)) = (1+1) + (1+0) = 3. La suite de Fibonacci est : 0, 1, 1, 2, 3, 5, 8...","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":68988,"question":"La récursivité est adaptée pour résoudre des problèmes qui peuvent être décomposés en sous-problèmes identiques.","option_a":"Vrai","option_b":"Faux","option_c":"","option_d":"","option_e":"","option_f":"","bonne_reponse":"A","explication":"Vrai. La récursivité est particulièrement efficace pour les problèmes qui suivent une structure récursive naturelle, comme les arbres, les fractales ou les suites mathématiques.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":68989,"question":"Quel est l'avantage principal de la récursivité par rapport à l'itération ?","option_a":"Moins de lignes de code","option_b":"Une meilleure performance","option_c":"Une complexité algorithmique réduite","option_d":"Une lisibilité accrue","option_e":"","option_f":"","bonne_reponse":"D","explication":"L'avantage principal de la récursivité est souvent une meilleure lisibilité du code, surtout pour les problèmes naturellement récursifs (ex : parcours d'arbres). Cependant, elle peut être moins performante.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":68990,"question":"Dans une fonction récursive, l'appel récursif doit toujours être précédé d'une condition.","option_a":"Vrai","option_b":"Faux","option_c":"","option_d":"","option_e":"","option_f":"","bonne_reponse":"A","explication":"Vrai. L'appel récursif doit être précédé d'une condition (cas de base) pour éviter une boucle infinie et garantir la terminaison de la fonction.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":68991,"question":"Quel est le résultat de la fonction récursive suivante pour n=5 ? function somme(n) { return n + somme(n-1); } (avec somme(0)=0)","option_a":"5","option_b":"10","option_c":"15","option_d":"20","option_e":"","option_f":"","bonne_reponse":"C","explication":"somme(5) = 5 + somme(4) = 5 + (4 + somme(3)) = ... = 5 + 4 + 3 + 2 + 1 + 0 = 15. Cette fonction calcule la somme des entiers de 1 à n.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0}]
Chargement...
Cliquez sur une réponse pour valider
Les options de réponse ne sont pas disponibles pour cette question.