Devoir NSIÂ : Sujet B
L'usage de la calculatrice n'est pas autorisé. Durée : 55min
Exercice 1: QCM
Pour chacune des 6 questions, entourer la réponse correcte (+1). Une mauvaise réponse enlève 0.5, l'absence de réponse n'enlève ni ne rapporte de points.
Question 1
Soit la liste lst
suivante lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Que va renvoyer le code suivant :
[lst[i][i] for i in [0, 1, 2]]
RĂ©ponses
A) [1, 5, 9]
B) [[1], [5], [9]]
C) [2, 5, 8]
D) [[2], [5], [8]]
Question 2
Quelle est la valeur de l'expression [[0] * 3 for i in range(2)]
?
RĂ©ponses :
A) [[0,0], [0,0], [0,0]]
B) [[0,0,0], [0,0,0]]
C) [[0.000], [0.000]]
D) [[0.00], [0.00], [0.00]]
Question 3
On définit la liste L ainsi :
L = [ [1], [1,2], [1,2,3] ]
Des égalités suivantes, une seule est fausse. Laquelle ?
RĂ©ponses :
A) len(L[0]) == 1
B) len(L) == 6
C) len(L[2]) == 3
D) L[2][2] == 3
Question 4
Dans la définition suivante de la fonction somme
en Python, quelle est l'instruction à ajouter pour que la valeur retournée par l'appel somme([1, 2, 3, 4, 5])
soit 15?
def somme(tab):
s = 0
for i in range(len(tab)):
...
return s
RĂ©ponses :
A) s=tab[i]
B) s+=s+tab[i]
C) tab[i]=tab[i]+s
D) s=s+tab[i]
Question 5
Quelle est la valeur de a[1]
à l'issue de l'exécution du programme suivant ?
a = [10, 20, 30]
b = a
b[1] = 2
a = a.copy()
RĂ©ponses :
A) 10
B) 20
C) 30
D) 2
Question 6
Un utilisateur a Ă©crit le code suivant :
liste = [1, 2, 3, 4, 5]
Que doit-il alors écrire pour enlever le 5 de la liste de façon à ce qu'elle devienne [1, 2, 3, 4] ?
RĂ©ponses :
A) pop(liste)
B) liste.pop(5)
C) liste.pop()
D) list.del(4)
Exercice 2
Lorsque des bâtiments sont alignés, ils se font de l'ombre les uns aux autres. Dans cet exercice, nous sommes au soleil couchant, les rayons du soleil sont donc supposés horizontaux.
Le schéma ci-dessus illustre un soleil couchant qui éclaire 9 bâtiments, les rayons du soleil sont représentés par des flèches horizontales.
- Les bâtiments aux indices
0
et2
reçoivent des rayons de soleil alors que le bâtiment à l'indice1
est masqué. - Les 4 bâtiments aux indices
[0, 2, 6, 9]
reçoivent des rayons de soleil sur au moins un étage et sont donc éclairés, alors que les autres ne le sont pas. - Il n'y a pas de bâtiment à l'indice
4
.
Écrire une fonction nb_batiments_eclaires
qui prend en argument la liste hauteurs
des bâtiments et qui renvoie le nombre de bâtiments éclairés.
-
La hauteur des bâtiments (en nombre d'étages) est donnée par une liste d'entiers positifs. Une hauteur de zéro étage signifie l'absence de bâtiment.
-
Pour l'exemple ci-dessus, cette liste est
[2, 1, 4, 2, 0, 4, 5, 3, 5, 6]
.
Exemples
>>> nb_batiments_eclaires([2, 1, 4, 2, 0, 4, 5, 3, 5, 6])
4
>>> nb_batiments_eclaires([0, 3, 1, 2])
1
Exercice 3
Un météorologue a relevé les températures au lever du jour dans sa rue.
Il souhaite déterminer la durée de la plus longue période de gelées consécutives durant ces relevés.
Vous devez Ă©crire une fonction gelees(temperatures)
qui renvoie la longueur de la plus longue séquence de nombres négatifs ou nuls consécutifs dans la liste.
Les températures sont données sous forme d'une liste de nombres :
temperatures = [2, -3, -2, 0, 1, -1]
Si la liste est vide, la fonction renverra la valeur 0. On rappelle que l'eau gèle à partir de 0°C inclus.
>>> gelees([2, -3, -2, 0, 1, -1])
3
>>> gelees([3, 2, 2])
0
>>> gelees([])
0