É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:
returnTrue
else:
returnFalse
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]:
returnTrue
returnFalse
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.