NSI · Première

QCM : langages de programmation

Évaluez vos compétences sur la programmation Python, les variables, les conditions, les fonctions et la complexité à travers 40 questions interactives.

QCM : Langages de programmation

Ce questionnaire interactif regroupe 40 questions à choix multiples (QCM) portant sur Python, les structures algorithmiques de base (conditions, boucles, fonctions), le typage et les concepts généraux de programmation.

Q1 - La fonction ajoute(n,p) codée ci-dessous en Python doit calculer la somme de tous les entiers compris entre n et p (n et p compris).

Par exemple, ajoute(2,4) doit renvoyer 2+3+4 = 9.

Python
1
2
3
4
5
def ajoute(n,p):
somme = 0
for i in range(.........): # ligne à modifier
somme = somme + i
return somme

Quelle est la bonne écriture de la ligne marquée à modifier ?

Q2 - Quel est le seul langage de programmation parmi les propositions suivantes ?

Q3 - On exécute le script suivant :

Python
1
2
3
4
5
n = 6
s = 0
while n >= 0:
s = s + n
n = n - 1

Que contient la variable s à la fin de cette exécution ?

Q4 - La documentation de la bibliothèque random de Python précise que random.randint(a,b) renvoie un entier aléatoire tel que a <= N <= b.

Afin d’obtenir un entier choisi aléatoirement dans l’ensemble \{-4 ; -2 ; 0 ; 2 ; 4\}, après avoir importé la librairie random de Python, on peut utiliser l’instruction :

Q5 - On définit la fonction :

Python
1
2
3
4
def f(a,b):
assert b!=0,'le deuxième argument est nul'
result = a/b
return result

Qu'obtient-on en exécutant la commande r = f(4,0) ?

Q6 - On définit la fonction :

Python
1
2
3
4
5
def f(x,y):
x = x + y
y = x - y
x = x - y
return (x,y)

Quelle est la valeur renvoyée par l'appel f(2019,2020) ?

Q7 - T est un tableau de nombres entiers non vide. Que représente la valeur de s renvoyée par cette fonction ?

Python
1
2
3
4
5
6
def mystere(T):
s = 0
for k in T:
if k % 2 == 0:
s = s+k
return s

Q8 - On exécute le script suivant :

Python
1
2
3
4
5
6
7
8
def calcul(a,b):
a = a + 2
b = b + 5
c = a + b
return c
a,b = 3,5
calcul(a,b)

À la fin de cette exécution :

Q9 - Ce programme ne renvoie pas toujours ses trois arguments dans l’ordre croissant. Parmi les tests suivants, lequel va permettre de détecter l’erreur ?

Python
1
2
3
4
5
6
def ranger(a, b, c):
if a > b :
a, b = b, a
if b > c:
b, c = c, b
return a, b, c

Q10 - On considère le code suivant :

Python
1
2
3
4
if x < 4:
x = x + 3
else:
x = x - 3

Quelle construction élémentaire peut-on identifier ?

Q11 - Quelle est la valeur de la variable n à la fin de l'exécution du script ci-dessous ?

Python
1
2
3
n = 1
while n != 20:
n = n + 2

Q12 - La documentation de la fonction floor de la bibliothèque math est :

floor(x) : Return the floor of x as an Integral. This is the largest integer <= x.

Que vaut floor(-2.2) ?

Q13 - On considère la fonction suivante :

Python
1
2
3
4
5
def comparaison(a,b):
if a < b:
return a
else:
return b

Quel est le type de la valeur renvoyée par l'appel comparaison(6,5) ?

Q14 - Lequel des langages suivants n'est pas un langage de programmation :

Q15 - On a défini une liste L de nombres entiers.

Quelle est la valeur de la variable m à la fin de l'exécution du script suivant ?

Python
1
2
3
4
m = L[0]
for j in range(len(L)):
if m < L[j]:
m = L[j]

Q16 - On exécute le script suivant :

Python
1
2
3
4
5
6
7
a = 4
b = 4
c = 4
while a < 5:
a = a - 1
b = b + 1
c = c * b

Que peut-on dire ?

Q17 - Soit n un entier naturel. Sa factorielle est le produit des nombres entiers strictement positifs qui sont plus petits ou égaux à n. Par exemple la factorielle de 4 vaut 1 x 2 x 3 x 4 = 24.

Quelle est la fonction correcte parmi les suivantes ?

Python
1
2
3
4
5
6
7
def factorielle(n):
i = 0
fact = 1
while i <= n:
fact = fact * i
i = i + 1
return fact
Python
1
2
3
4
5
6
7
def factorielle(n):
i = 1
fact = 1
while i < n:
fact = fact * i
i = i + 1
return fact
Python
1
2
3
4
5
6
7
def factorielle(n):
i = 0
fact = 1
while i < n:
i = i + 1
fact = fact * i
return fact
Python
1
2
3
4
5
6
7
def factorielle(n):
i = 0
fact = 1
while i <= n:
i = i + 1
fact = fact * i
return fact

Q18 - On considère le code suivant :

Python
1
2
3
4
5
6
def moyenne(notes):
somme = 0
for cpt in range(len(notes)):
....
m = somme/len(notes)
return m

Par quoi remplacer la ligne en pointillée pour que cette fonction calcule la moyenne d'une liste de nombres ?

Q19 - n étant un entier strictement positif, la fonction suivante calcule sa factorielle, c'est-à-dire le produit 1 x 2 x 3 x...x (n-1) x n. Comment faut-il écrire la ligne en pointillée ci-dessous pour ce faire ?

Python
1
2
3
4
5
def factorielle(n):
f = 1
.........
f = f * i
return f

Q20 - On exécute le code suivant :

Python
1
2
3
4
5
6
7
8
def f(t):
n = len(t)
for i in range(n-1):
if t[i] > t[i+1]:
t[i],t[i+1] = t[i+1],t[i]
L = [4, 8, -7, 0, 1]
f(L)

Quelle est la valeur de L après l'exécution de ce code ?

Q21 - La fonction suivante calcule la racine carrée du double d’un nombre flottant :

Python
1
2
3
4
from math import sqrt
def racine_du_double(x):
return sqrt(2*x)

Quelle est la précondition sur l'argument de cette fonction ?

Q22 - On exécute le code suivant :

Python
1
2
3
4
5
6
7
8
9
def essai():
a = 2
b = 3
c = 4
return a
return b
return c
t = essai()

Quelle est la valeur de t après l'exécution de ce code ?

Q23 - On considère l'instruction suivante :

Python
1
resultat = [0] * 7

Que contient la variable resultat après son exécution ?

Q24 - Soit T un tableau de flottants, a et b deux entiers. On considère une fonction nommée somme renvoyant la somme des éléments du tableau d'indice compris entre a et b définie par :

Python
1
2
3
4
5
def somme(T, a, b):
S = 0
for i in range(a, b+1):
S = S + T[i]
return S

Quel ensemble de préconditions doit-on prévoir pour cette fonction ?

Q25 - On souhaite écrire une fonction qui renvoie le maximum d'une liste d'entiers :

Python
1
2
3
4
5
6
def maximum(L):
m = L[0]
for i in range(1,len(L)):
if .........:
m = L[i]
return m

Par quoi faut-il remplacer les pointillés pour que cette fonction produise bien le résultat attendu ?

Q26 - Un programme Python commence par la ligne :

Python
1
import os

À quoi sert cette ligne ?

Q27 - On définit la fonction suivante :

Python
1
2
3
4
5
def f(x,y,z):
if x+y == z:
return True
else:
return False

Quel type de paramètres est-il déconseillé d'utiliser avec cette fonction ?

Q28 - On considère la fonction ci-dessous :

Python
1
2
3
4
5
6
7
8
9
10
def maFonction(c):
if c <= 10:
p = 12
if c <= 18:
p = 15
if c <= 40:
p = 19
else:
p = 20
return p

Que renvoie maFonction(18) ?

Q29 - On définit la fonction suivante :

Python
1
2
3
4
5
6
def f(n):
c = 0
while n > 0:
c = c + 1
n = n // 2
return c

Quelle est la valeur renvoyée par l'appel f(35) ?

Q30 - La fonction Python suivante ne calcule pas toujours correctement le résultat de x^y pour des arguments entiers. Parmi les tests suivants, lequel va permettre de détecter l’erreur ?

Python
1
2
3
4
5
def puissance (x,y):
p = x
for i in range (y - 1):
p = p * x
return p

Q31 - On exécute le script suivant :

Python
1
2
3
tableau1 = [1, 2, 3]
tableau2 = [4, 5, 6]
long = len(tableau1 + tableau2)

Quelle est la valeur de la variable long à la fin de cette exécution ?

Q32 - On souhaite échanger les contenus de deux variables entières a et b sans utiliser de variable auxiliaire en écrivant le code suivant :

Python
1
2
3
a = a - b
b = a + b
a = ......

Que peut-on écrire à la place des pointillés pour réaliser cet échange ?

Q33 - On définit la fonction f suivante qui prend en argument une liste t d'entiers :

Python
1
2
3
4
5
6
7
def f(t):
n = len(t)
for i in range(n-1):
for j in range(i+1,n):
if t[i] == t[j]:
return True
return False

Pour quelle valeur de t, f(t) vaut-elle True ?

Q34 - La fonction maximum codée ci-dessous en Python doit renvoyer la plus grande valeur contenue dans le tableau d'entiers passé en argument.

Python
1
2
3
4
5
6
def maximum(tableau):
tmp = tableau[0]
for i in range(......): # à compléter
if tableau[i] > tmp:
tmp = tableau[i]
return tmp

Quelle expression faut-il écrire à la place des pointillés ?

Q35 - Quelle est la valeur de la variable b à la fin de l'exécution du script suivant ?

Python
1
2
3
4
5
6
a = 3
b = 6
if a > 5 or b != 3:
b = 4
else:
b = 2

Q36 - Quelle est la valeur de la variable b à la fin de l'exécution du script suivant ?

Python
1
2
3
4
5
6
a = 2
b = 5
if a > 8:
b = 10
elif a > 6:
b = 3

Q37 - 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 ?

Q38 - Dans le programme suivant, la variable A contient un entier strictement positif. Quelle est la valeur numérique de la variable i en fin de programme ?

Python
1
2
3
i = 0
while 2**i < A :
i = i + 1

Que vaut la variable i à la fin de l'exécution ?

Q39 - Dans le programme JavaScript suivant, quelle est la notation qui délimite le bloc d’instructions exécuté à chaque passage dans la boucle while ?

JavaScript
1
2
3
4
5
6
i = 0
while (i < 10) {
alert(i)
i = i + 1
}
alert("Fin")

Q40 - La fonction suivante ne calcule pas toujours correctement le maximum des deux nombres donnés en argument. On rappelle que abs(z) calcule la valeur absolue du nombre z.

Python
1
2
3
def maxi(x,y):
m = (x-y+abs(x+y))/2
return m

Parmi les tests suivants, lequel va détecter l'erreur ?

Avez-vous compris ce chapitre ?

Cochez-le pour l'enregistrer dans votre progression d'apprentissage.