On exécute le script suivant.
a,b = 10,3 if a < 10: a,b = a+2,b+a
Quelle est la valeur de b à la fin de son exécution ?
On définit une fonction f de la façon suivante :
def f(L,m): R = [] for i in range(len(L)): if L[i] > m: R.append(L[i]) return R
On définit L = [1, 7, 3, 4, 8, 2, 0, 3, 5].
Que vaut f(L,4) ?
On exécute le script Python suivant :
def cube(L): for i in range(len(L)): L[i] = L[i] * L[i] * L[i] return L L = [2, 5] b = cube(L)
Que vaut le couple (L,b) à la fin de l'exécution ?
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 :
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 ?
Lequel des langages suivants n'est pas un langage de programmation :
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 ?
m = L[0] for j in range(len(L)): if m < L[j]: m = L[j]
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.
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 ?
On définit la fonction f suivante qui prend en argument une liste t d'entiers :
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 ?
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.
def maxi(x,y) : m = (x-y+abs(x+y))/2 return m
Parmi les tests suivants, lequel va détecter l'erreur ?
Quelle est la valeur de la variable n à la fin de l'exécution du script ci-dessous ?
n = 1 for i in range(4): n = n + 2
On considère le code incomplet suivant, où la fonction maximum renvoie le plus grand élément d’une liste de nombres :
def maximum(L): m = L[0] for i in range(1,len(L)): .............. .............. return m
Que faut-il écrire à la place des lignes pointillées ?
if m < L[i]: L[i] = m
if L[i-1] < L[i]: m = L[i]
if L[i] < L[0]: L[i],L[0] = L[0],L[i]
if L[i] > m: m = L[i]
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 ?
i = 0 while 2**i < A : i = i + 1
Que vaut la variable i à la fin de l'exécution ?
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) ?
T est un tableau de nombres entiers non vide. Que représente la valeur de s renvoyée par cette fonction ?
def mystere(T): s = 0 for k in T: if k % 2 == 0: s = s+k return s
On exécute le script suivant :
a = 10 if a < 5: a = 20 elif a < 100: a = 500 elif a < 1000: a = 1 else: a = 0
Quelle est la valeur de la variable a à la fin de cette exécution ?
Quelle est la valeur de la variable b à la fin de l'exécution du script suivant ?
a = 2 b = 5 if a > 8: b = 10 elif a > 6: b = 3
Quelles sont les valeurs des variables x et y à la fin de l'exécution du script suivant :
x = 4 while x > 0: y = 1 while y < x: y = y + 1 x = x - 1
La fonction Python suivante ne calcule pas toujours correctement le résultat de xy pour des arguments entiers. Parmi les tests suivants, lequel va permettre de détecter l’erreur ?
def puissance (x,y): p = x for i in range (y - 1): p = p * x return p
a = 4 b = 4 c = 4 while a < 5: a = a - 1 b = b + 1 c = c * b
Que peut-on dire ?
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 ?
def factorielle(n): i = 0 fact = 1 while i <= n: fact = fact * i i = i + 1 return fact
def factorielle(n): i = 1 fact = 1 while i < n: fact = fact * i i = i + 1 return fact
def factorielle(n): i = 0 fact = 1 while i < n: i = i + 1 fact = fact * i return fact
def factorielle(n): i = 0 fact = 1 while i <= n: i = i + 1 fact = fact * i return fact
n = 1 while n != 20: n = n + 2
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 ?
On construit une liste L de la façon suivante :
L = [] for i in range(1,11,2) L.append(5*i)
et on obtient ainsi la liste [5, 15, 25, 35, 45].
On pourrait aussi procéder de la façon suivante :
L = [] # ligne 1 ....... while i < 11: L.append(5*i) # ligne 2 .......
Que faudrait-il écrire en ligne 1 et en ligne 2 pour obtenir le même résultat ?
On souhaite échanger les contenus de deux variables entières a et b sans utiliser de variable auxiliaire en écrivant le code suivant :
a = a - b b = a + b a = ......
Que peut-on écrire à la place des pointillés pour réaliser cet échange ?
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 ?
def factorielle(n): f = 1 ......... f = f * i return f
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 :
On considère la fonction suivante :
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) ?
Dans le programme JavaScript suivant, quelle est la notation qui délimite le bloc d’instructions exécuté à chaque passage dans la boucle while ?
i = 0 while (i < 10) { alert(i) i = i + 1 } alert("Fin")
On définit la fonction suivante :
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 ?
On exécute le code suivant
def calculPourcentage (prix,reduction): assert reduction >= 0, 'la réduction doit être un nombre positif' assert reduction < 100, 'la réduction doit être inférieure à 100' assert prix > 0, 'le prix doit être un nombre strictement positif' remise = (reduction*prix)/100 prix_remise = prix - remise return prix_remise
Quelle est la valeur renvoyée par l'appel calculPourcentage(30,100) ?
On considère la fonction ci-dessous :
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) ?
def cube(a): a = a*a*a return a a = 2 b = cube(a)
Que vaut le couple (a,b) à la fin de l'exécution ?
a = 11 for i in range(3): a = a * 2 a = a - 10
Que contient la variable a à la fin de cette exécution ?
La fonction maxi ci-dessous a pour but de renvoyer la valeur maximale présente dans la liste qui lui est passée en argument.
def maxi(L): dernier_indice = len(L) - 1 valeur_max = L[0] for i in range(1,dernier_indice): if L[i] > valeur_max: valeur_max = liste[i] return valeur_max
Cette fonction a été mal programmée. On souhaite réaliser un test pour le démontrer.
Parmi les propositions suivantes, laquelle mettra la fonction maxi en défaut ?
On considère l'instruction suivante :
resultat = [0] * 7
Que contient la variable resultat après son exécution ?
On définit la fonction :
def fib(n): t = [0] * n t[1] = 1 for i in range(2,n): t[i] = t[i-1] + t[i-2] return t
Quelle est la valeur renvoyée par l'appel fib(6) ?
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 :
On a défini une fonction somme qui doit calculer la somme des éléments de la liste passée en argument de la façon suivante :
def somme(L): s = L[0] for i in range(len(L)): s = s + L[i] return s
Cette fonction a été mal programmée. Quel appel parmi les suivants permet de mettre en évidence son incorrection ?
Quel est le seul langage de programmation parmi les propositions suivantes ?
On souhaite écrire une fonction qui renvoie le maximum d'une liste d'entiers :
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 ?