Langages et programmation (NSI 1)NSI, Première NSI, QCM NSI / Par Olivier Elophe Langages et programmation 1. Dans le programme JavaScript suivant, quelle est la notation qui délimite un bloc d'instruction exécuté à chaque passage dans le boucle while ? [pastacode lang="javascript" manual="i%20%3D%200%3B%0Awhile%20(i%20%3C%2010)%20%7B%0A%20%20%20%20alert(i)%3B%0A%20%20%20%20i%20%3D%20i%20%2B%201%3B%0A%7D%0Aalert('Fin')%3B" message="" highlight="" provider="manual"/] Le fait que les instructions soient encadrées entre { et }.Le fait que les instructions soient indentées de 4 caractères comment en Python.Le fait que les instructions suivent le mot clé while.Le fait que les instructions suivent la parenthèse ). 2. La fonction suivante calcule la racine carrée du double d'un nombre flottant. [pastacode lang="python" manual="from%20math%20import%20sqrt%20%0A%0Adef%20racine_du_double(x)%3A%20%0A%20%20%20%20return%20sqrt(2*x)%20" message="" highlight="" provider="manual"/] Quelle est la précondition sur les arguments de cette fonction?x >= 02 * x > 0x < 0sqrt(x) >= 0 3. Avec la définition de fonction capital_double suivante, que peut-on toujours affirmer à propos du résultat n retourné par la fonction? [pastacode lang="python" manual="def%20capital_double%20(capital%2C%20interet)%3A%20%0A%20%20%20%20montant%20%3D%20capital%20%0A%20%20%20%20n%20%3D%200%20%0A%20%20%20%20while%20montant%20%3C%3D%202%20*%20capital%3A%20%0A%20%20%20%20%20%20%20%20montant%20%3D%20montant%20%2B%20interet%20%0A%20%20%20%20%20%20%20%20n%20%3D%20n%20%2B%201%20%0A%20%20%20%20return%20n%20" message="" highlight="" provider="manual"/] n = capital / interet capital + n * interet > 2 * capitalcapital * n * inter et > 2 * capital n = 2 * capital / interet 4. Le programme Python suivant ne calcule pas toujours correctement le résultat de [latexpage] $x^y$ . Parmi les tests suivants, lequel va permettre de détecter l'erreur ? [pastacode lang="python" manual="def%20puissance%20(x%2Cy)%3A%20%0A%20%20%20%20p%20%3D%20x%0A%20%20%20%20for%20i%20in%20range%20(y%20-%201)%3A%20%0A%20%20%20%20%20%20%20%20p%20%3D%20p%20*%20x%0A%20%20%20%20return%20p%20" message="" highlight="" provider="manual"/]puissance(2,1) puissance(2,2)puissance(2,0)puissance(2,10) 5. On a écrit une fonction qui prend en paramètre une liste non vide et qui renvoie son plus grand élément. Combien de tests faudrait-il écrire pour garantir que la fonction donne un résultat correct pour toute liste ?Deux tests : pour une liste à un élément et pour une liste à deux éléments ou plus. Il faudrait écrire une infinité de tests : on ne peut pas prouver que cette fonction est correcte, simplement en la testant. Trois tests : pour une liste vide, pour une liste à un élément, et pour une liste à deux éléments ou plus. Deux tests : pour le cas où le plus grand élément est en début de liste, et pour le cas où le plus grand élément n'est pas en début de liste. 6. La documentation de la bibliothèque random de Python précise : random.randint(a, b)Renvoie un entier aléatoire N tel que a<= N <= b. Quelle est l'expression Python permettant de simuler le tirage d'un dé à 6 faces après avoir exécuté import random?random.randint(0,6)random.randint(6)random.randint(1,7) random.randint(1,6) 7. Qu'affiche le programme suivant ? [pastacode lang="python" manual="for%20i%20in%20range(1000)%3A%0A%20%20%20%20for%20j%20in%20range(1000)%3A%0A%20%20%20%20%20%20%20%20for%20k%20in%20range(1000)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20l%20in%20range(1000)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20print(%22Mille%20sabords%20!%22)" message="" highlight="" provider="manual"/]Mille sabords ! qu'une seule fois parce que les variables ne sont pas utilisées.Mille milliards de fois la ligne : Mille sabords !Mille fois i, mille fois j, mille fois k et mille fois l.Mille fois la ligne : Mille sabords ! 8. Que faut il mettre à la place de ... pour que ce programme affiche dans l'ordre tous les nombres de 0 à 999 ? [pastacode lang="python" manual="for%20i%20in%20range(10)%3A%0A%20%20%20%20for%20j%20in%20range(10)%3A%0A%20%20%20%20%20%20%20%20for%20k%20in%20range(10)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20..." message="" highlight="" provider="manual"/]print( i + j + k)print(i * j * k)print(k)print(100 * i + 10 * j + k) 9. Que construit l'expression suivante : [pastacode lang="python" manual="%3E%3E%3E%5Bi%20%25%203%20for%20i%20in%20range(10)%5D" message="" highlight="" provider="manual"/][0, 1, 2, 3, 4, 5, 6, 7, 8, 9][0, 1, 2, 3, 0, 1, 2, 3][0, 1, 2, 0, 1, 2, 0, 1, 2, 0][0, 1, 2, 3, 0, 1, 2, 3, 0] 10. Soit la fonction suivante : [pastacode lang="python" manual="def%20division_euclidienne(a%2C%20b)%3A%0A%20%20%20%20%22%22%22%20cha%C3%AEne%20de%20documentation%20%22%22%22%0A%20%20%20%20q%20%3D%200%0A%20%20%20%20r%20%3D%20a%0A%20%20%20%20while%20r%20%3E%3D%20b%3A%0A%20%20%20%20%20%20%20%20q%20%2B%3D%201%0A%20%20%20%20%20%20%20%20r%20%2B%3D%20b%0A%20%20%20%20return%20q%2C%20r" message="" highlight="" provider="manual"/] Une chaîne de documentation satisfaisante pourrait être :""" Fonction qui fait une division""""""division euclidienne de a par b a est supposé positif ou nul, b strictement positif renvoie une paire (q, r), avec q le quotient et r le reste"""""" en cas de question, merci de contacter le développeur""" 11. Le langage Python a été crée en :1971199120012011 12. Combien de fois la fonction print est-elle appelé dans le code suivant : [pastacode lang="python" manual="n%20%3D%204%0Afor%20i%20in%20range(2%2C%20n)%3A%0A%20%20%20%20print(i)" message="" highlight="" provider="manual"/]jamais.Une foisDeux fois.Trois fois. 13. Quelle est la valeur affichée par le script suivant : [pastacode lang="python" manual="x%20%3D%201%0Afor%20i%20in%20range(4)%3A%0A%20%20%20%20x%20%3D%20x%20%2Bi%0Aprint(x)" message="" highlight="" provider="manual"/]671011 14. [pastacode lang="python" manual="def%20f(x)%3A%0A%20%20%20%20for%20d%20in%20range(2%2C%20x)%3A%0A%20%20%20%20%20%20%20%20if%20x%20%25%20d%20%3D%3D%200%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20d" message="" highlight="" provider="manual"/] Que retourne f(15) ?353 et 53, 5 et 15 15. Quelle sont les valeurs affichées par le code suivant ? [pastacode lang="python" manual="x%20%3D%204%0Awhile%20x%20%3E%200%3A%0A%20%20%20%20y%20%3D%200%0A%20%20%20%20while%20y%20%3C%20x%3A%0A%20%20%20%20%20%20%20%20y%20%3D%20y%20%2B%201%0A%20%20%20%20%20%20%20%20x%20%3D%20x%20-%201%0Aprint(y)%0Aprint(x)%0A" message="" highlight="" provider="manual"/]0 -10 01 0La boucle externe est une boucle infinie, le programme ne termine pas. 16. Voici une fonction écrite en Python, qui prend en paramètre un tableau T d’entiers positifs. [pastacode lang="python" manual="def%20fonctionMystere(T)%3A%0A%20%20%20%20%20%20%20n%20%3D%20len(T)%0A%20%20%20%20%20%20%20m%20%3D%200%0A%20%20%20%20%20%20%20for%20i%20in%20range(n)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20if%20T%5Bi%5D%20%3E%20m%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20m%20%3D%20T%5Bi%5D%0A%20%20%20%20%20%20%20return(m)" message="" highlight="" provider="manual"/] On appelle cette fonction avec l’instruction fonctionMystere([5, 1, 4, 7, 12, 6, 8]).Que retourne-t-elle ?12017 17. On considère un tableau T = [5, 1, 4, 7, 12, 6, 8] défini en Python.On exécute l’instruction : T == T[:3] + T[3:]Que retourne-t-elle ?False[5, 1, 4, 7, 12, 6, 8]Une erreurTrue 18. [latexpage] Voici un script écrit en Python, définissant une fonction puissance permettant de calculer $a^n$, où a est un réel, et n un entier positif ou nul.[pastacode lang="python" manual="def%20puissance(a%2C%20n)%3A%0A%20%20%20%20%20%20%20if%20n%20%3D%3D%200%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20return(1)%0A%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20return%20(a%20*%20puissance(a%2C%20n%20-%201))" message="" highlight="" provider="manual"/] Si on exécute puissance(5, 3), quel est le nombre total d’appels de la fonction puissance, appel initial compris ? 5342 19. Que contient la liste l définie de la manière suivante : [pastacode lang="python" manual="%3E%3E%3El%20%3D%20%5B%20i**2%20for%20i%20in%20range(9)%5D" message="" highlight="" provider="manual"/][1, 4, 9, 16, 25, 36, 49, 64, 81][0, 1, 2, 3, 4, 5, 6, 7, 8, 9][0, 1, 4, 9, 16, 25, 36, 49, 64][0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 20. Que contient la liste l définie de la façon suivante : [pastacode lang="python" manual="%3E%3E%3El%20%3D%20%5B%20i**2%20for%20i%20in%20range(9)%20if%20i%20%25%202%20%3D%3D%200%5D" message="" highlight="" provider="manual"/] [0, 4, 16, 36, 64][0, 1, 4, 9, 16, 25, 36, 49, 64]Une erreur42 Loading...