Testez vos connaissances sur les fonctions récursives !
🧠 Quiz 10 questions 10 min
QUIZ INTERACTIFDiff. 5/10
Apprenez les fonctions récursives en informatique avec ce cours complet pour Terminale. Définitions, exemples et exercices pour maîtriser la récursivité.
Question 1 sur 10 10:00
[{"id":80422,"question":"Quelle est la condition d'arrêt dans une fonction récursive ?","option_a":"A. Un appel à une autre fonction","option_b":"B. Une condition qui met fin à la récursion","option_c":"C. Une boucle infinie","option_d":"D. Un appel à la fonction main","option_e":"","option_f":"","bonne_reponse":"B","explication":"La condition d'arrêt est essentielle pour éviter une récursion infinie. Elle doit être atteinte pour que la fonction retourne une valeur et termine son exécution.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":80423,"question":"La fonction suivante calcule-t-elle correctement la factorielle de n ? \u003Cbr\u003Edef factorielle(n): \u003Cbr\u003E return n * factorielle(n-1)","option_a":"Vrai","option_b":"Faux","option_c":"","option_d":"","option_e":"","option_f":"","bonne_reponse":"B","explication":"Cette fonction manque une condition d'arrêt. Elle provoquera une erreur de récursion infinie car elle ne s'arrête jamais.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":80424,"question":"Quel est l'ordre de complexité temporelle de la fonction récursive pour calculer la factorielle de n ?","option_a":"A. O(1)","option_b":"B. O(n)","option_c":"C. O(n²)","option_d":"D. O(2^n)","option_e":"","option_f":"","bonne_reponse":"B","explication":"Chaque appel récursif effectue une opération constante et il y a n appels au total, donc la complexité est linéaire O(n).","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":80425,"question":"Dans la récursivité, que représente la pile d'appels (stack) ?","option_a":"A. Une structure de données pour stocker les variables locales","option_b":"B. Une liste des fonctions appelées","option_c":"C. Une mémoire temporaire pour les appels de fonctions","option_d":"D. Toutes les réponses sont correctes","option_e":"","option_f":"","bonne_reponse":"D","explication":"La pile d'appels stocke les variables locales, les paramètres et l'adresse de retour pour chaque appel de fonction, permettant de revenir au contexte précédent après la fin de l'appel.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":80426,"question":"La récursivité est-elle toujours plus efficace que l'itération ?","option_a":"Vrai","option_b":"Faux","option_c":"","option_d":"","option_e":"","option_f":"","bonne_reponse":"B","explication":"Non, la récursivité peut être moins efficace en termes de temps et d'espace mémoire en raison de l'empilement des appels. Elle est souvent choisie pour sa clarté plutôt que pour son efficacité.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":80427,"question":"Quel problème classique est souvent résolu par récursivité ?","option_a":"A. Tri par sélection","option_b":"B. Tours de Hanoï","option_c":"C. Recherche linéaire","option_d":"D. Calcul de la moyenne","option_e":"","option_f":"","bonne_reponse":"B","explication":"Les Tours de Hanoï sont un problème emblématique de la récursivité, où la solution se décompose naturellement en sous-problèmes similaires.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":80428,"question":"Que se passe-t-il si une fonction récursive n'a pas de condition d'arrêt ?","option_a":"A. Le programme s'arrête immédiatement","option_b":"B. Une erreur de compilation est générée","option_c":"C. Une erreur d'exécution (stack overflow)","option_d":"D. La fonction retourne une valeur par défaut","option_e":"","option_f":"","bonne_reponse":"C","explication":"Sans condition d'arrêt, la fonction s'appelle indéfiniment jusqu'à ce que la pile d'appels soit pleine, provoquant une erreur d'exécution (stack overflow).","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":80429,"question":"La récursivité indirecte existe-t-elle ?","option_a":"Vrai","option_b":"Faux","option_c":"","option_d":"","option_e":"","option_f":"","bonne_reponse":"A","explication":"Oui, la récursivité indirecte (ou récursivité mutuelle) existe lorsque deux fonctions s'appellent mutuellement, comme f() appelant g() qui appelle f().","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":80430,"question":"Quel avantage offre la récursivité pour les structures de données arborescentes ?","option_a":"A. Une complexité réduite","option_b":"B. Un parcours plus naturel et intuitif","option_c":"C. Une exécution plus rapide","option_d":"D. Une mémoire optimisée","option_e":"","option_f":"","bonne_reponse":"B","explication":"La récursivité permet un parcours naturel des arbres (parcours préfixe, infixe, postfixe) en suivant la structure hiérarchique de l'arbre.","points":1,"type":"qcm","actif":1,"section_id":null,"ordre":0},{"id":80431,"question":"Peut-on transformer une fonction récursive en fonction itérative ?","option_a":"A. Non, c'est impossible","option_b":"B. Oui, mais cela complique souvent le code","option_c":"C. Oui, et cela améliore toujours l'efficacité","option_d":"D. Oui, mais uniquement pour les fonctions simples","option_e":"","option_f":"","bonne_reponse":"B","explication":"Oui, toute fonction récursive peut être transformée en itérative en utilisant une pile ou une boucle, mais cela peut rendre le code moins lisible.","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.