QUESTIONS CHAPITRES 15
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.
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 ?
Réponses :
A- for i in range(n,1,p):
B- for i in range(n,p):
C- for i in range(n,p+1):
D- for i in range(n-1,p):
Q2 - Quel est le seul langage de programmation parmi les propositions suivantes ?
Réponses :
A- HTML
B- CSS
C- C++
D- WEB
Q3 - On exécute le script suivant.
n = 6
s = 0
while n >= 0:
s = s + n
n = n -1
Que contient la variable s à la fin de cette exécution ?
Réponses :
A- 0
B- 6
C- 15
D- 21
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 :
Réponses :
A- random.randint(0,8)/2
B- random.randint(0,8)/2 - 4
C- random.randint(0,4)*2 - 2
D- (random.randint(0,4) - 2) * 2
Q5 - On définit la fonction :
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) ?
Réponses :
A- une erreur ZeroDivisionError: division by zero et l'arrêt de l'exécution
B- une erreur NameError: name 'b' is not defined et l'arrêt de l'exécution
C- une erreur AssertionError: le deuxième argument est nul et la variable r prend la valeur 0
D- une erreur AssertionError: le deuxième argument est nul et l'arrêt de l'exécution
Q6 - On définit la fonction :
def f(x,y):
x = x + y
y = x - y
x = x - y
return (x,y)
Quel est la valeur renvoyée par l'appel f(2019,2020) ?
Réponses :
A- (2019,2019)
B- (2019,2020)
C- (2020,2019)
D- (2020,2020)
Q7 - 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
Réponses :
A- la somme des valeurs du tableau T
B- la somme des valeurs positives du tableau T
C- la somme des valeurs impaires du tableau T
D- la somme des valeurs paires du tableau T
Q8 - On exécute le script suivant :
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 :
Réponses :
A- a vaut 3, b vaut 5 et c vaut 15
B- a vaut 3, b vaut 5 et c n'est pas défini
C- a vaut 5, b vaut 10 et c vaut 15
D- a vaut 5, b vaut 10 et c n'est pas défini
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 ?
def ranger(a, b, c):
if a > b :
a, b = b, a
if b > c:
b, c = c, b
return a, b, c
Réponses :
A- ranger(1,2,3)
B- ranger(3,4,1)
C- ranger(1,3,2)
D- ranger(4,2,3)
Q10 - On considère le code suivant :
if x < 4:
x = x + 3
else:
x = x - 3
Quelle construction élémentaire peut-on identifier ?
Réponses :
A- une boucle non bornée
B- une structure conditionnelle
C- une boucle bornée
D- un appel de fonction
Q11 - Quelle est la valeur de la variable n à la fin de l'exécution du script ci-dessous ?
n = 1
while n != 20:
n = n + 2
Réponses :
A- 1
B- 20
C- 22
D- le programme ne termine pas, la boucle tourne indéfiniment
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) ?
Réponses :
A- – 2
B- – 3
C- on obtient une erreur, car –2.2 n'est pas un entier
D- 2.2
Q13 - 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) ?
Réponses :
A- un booléen (vrai/faux)
B- un nombre entier
C- un nombre flottant
D- une chaîne de caractères
Q14 - Lequel des langages suivants n'est pas un langage de programmation :
Réponses :
A- PHP
B- Javascript
C- HTML
D- Python
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 ?
m = L[0]
for j in range(len(L)):
if m < L[j]:
m = L[j]
Réponses :
A- la moyenne de la liste L
B- le minimum de la liste L
C- le maximum de la liste L
D- la longueur de la liste L
Q16 - On exécute le script suivant :
a = 4
b = 4
c = 4
while a < 5:
a = a - 1
b = b + 1
c = c * b
Que peut-on dire ?
Réponses :
A- ce programme ne termine pas
B- à la fin de l'exécution, la variable a vaut 5
C- à la fin de l'exécution, la variable b vaut 34
D- à la fin de l'exécution, la variable c vaut 42
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 ?
Réponses :
A-
def factorielle(n):
i = 0
fact = 1
while i <= n:
fact = fact * i
i = i + 1
return fact
B-
def factorielle(n):
i = 1
fact = 1
while i < n:
fact = fact * i
i = i + 1
return fact
C-
def factorielle(n):
i = 0
fact = 1
while i < n:
i = i + 1
fact = fact * i
return fact
D-
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
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 ?
Réponses :
A- somme = somme + notes[cpt]
B- somme = notes[cpt]
C- somme = cpt
D- somme = somme + cpt
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 ?
def factorielle(n):
f = 1
.........
f = f * i
return f
Réponses :
A- for i in range(1,n):
B- for i in range(n+1):
C- for i in range(0,n):
D- for i in range(1,n+1):
Q20 - On exécute le code suivant :
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 ?
Réponses :
A- [4, -7, 8, 0, 1]
B- [-7, 0, 1, 4, 8]
C- [4, 8, -7, 0, 1]
D- [4, -7, 0, 1, 8]
Q21 - La fonction suivante calcule la racine carrée du double d’un nombre flottant.
from math import sqrt
def racine_du_double(x):
return sqrt(2*x)
Quelle est la précondition sur l'argument de cette fonction ?
Réponses :
A- x < 0
B- x >= 0
C- 2 * x > 0
D- sqrt(x) >= 0
Q22 - On exécute le code suivant :
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 ?
Réponses :
A- 2
B- 3
C- 4
D- (2,3,4)
Q23 - On considère l'instruction suivante :
resultat = [0] * 7
Que contient la variable resultat après son exécution ?
Réponses :
A- 0
B- [0]
C- [[0], [0], [0], [0], [0], [0], [0]]
D- [0, 0, 0, 0, 0, 0, 0]
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 :
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 ?
Réponses :
A- a < b
B- a < longueur(T) et b < longueur(T)
C- a <= b < longueur(T)
D- a <= b < longueur(T) et T est un tableau trié
Q25 - 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 ?
Réponses :
A- i > m
B- L[i] > m
C- L[i] > L[i-1]
D- L[i] > L[i+1]
Q26 - Un programme Python commence par la ligne :
import os
À quoi sert cette ligne ?
Réponses :
A- c'est le début du squelette de tout programme Python
B- c'est la déclaration du système d'exploitation (operating system)
C- Python 3.6 exige cette ligne au début de tout programme
D- c'est la déclaration d'une bibliothèque (ou module) que le programme compte utiliser
Q27 - 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 ?
Réponses :
A- les entiers
B- les chaînes de caractères
C- les flottants
D- les tableaux
Q28 - 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) ?
Réponses :
A- 12
B- 15
C- 19
D- 20
Q29 - On définit la fonction suivante :
def f(n):
c = 0
while n > 0:
c = c + 1
n = n // 2
return c
Quel est la valeur renvoyée par l'appel f(35) ?
Réponses :
A- 1
B- 5
C- 6
D- 7
Q30 - 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
Réponses :
A- puissance(2,0)
B- puissance(2,1)
C- puissance(2,2)
D- puissance(2,10)
Q31 - On exécute le script suivant :
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 ?
Réponses :
A- 1
B- 3
C- 6
D- rien, car le code engendre une erreur
Q32 - 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 ?
Réponses :
A- a - b
B- a + b
C- b - a
D- - a - b
Q33 - 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 ?
Réponses :
A- [[2,3], [3,4], [4,5], [2,3]]
B- [[2,2], [3,4], [4,5], [2,3]]
C- [[2,3], [3,2], [4,5], [5,4]]
D- [[3,3], [4,4], [5,5], [6,6]]
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.
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 ?
Réponses :
A- len(tableau) - 1
B- 1,len(tableau) - 1
C- 1,len(tableau)
D- 1,len(tableau) + 1
Q35 - Quelle est la valeur de la variable b à la fin de l'exécution du script suivant ?
a = 3
b = 6
if a > 5 or b != 3:
b = 4
else:
b = 2
Réponses :
A- 2
B- 4
C- 5
D- 6
Q36 - 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
Réponses :
A- 3
B- 5
C- 6
D- 10
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 ?
Réponses :
A- deux tests : pour une liste à un élément et pour une liste à deux éléments ou plus
B- 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
C- trois tests : pour une liste vide, pour une liste à un élément, et pour une liste à deux éléments ou plus
D- il faudrait écrire une infinité de tests : on ne peut pas prouver que cette fonction est correcte, simplement en la testant
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 ?
i = 0
while 2**i < A :
i = i + 1
Que vaut la variable i à la fin de l'exécution ?
Réponses :
A- A + 1
B- l'exposant de la plus grande puissance de 2 inférieure à A
C- l'exposant de la plus petite puissance de 2 supérieure à A
D- A - 1
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 ?
i = 0
while (i < 10) {
alert(i)
i = i + 1
}
alert("Fin")
Réponses :
A- le fait que les instructions soient encadrées entre { et }
B- le fait que les instructions soient indentées de 4 caractères comme en Python
C- le fait que les instructions suivent le mot clé while
D- le fait que les instructions suivent la parenthèse )
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.
def maxi(x,y) :
m = (x-y+abs(x+y))/2
return m
Parmi les tests suivants, lequel va détecter l'erreur ?
Réponses :
A- maxi(3,-2)
B- maxi(2,2)
C- maxi(3,2)
D- maxi(2,3)
Q41 - 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) ?
Réponses :
A- [0, 1, 1, 2, 3]
B- [0, 1, 1, 2, 3, 5]
C- [0, 1, 1, 2, 3, 5, 8]
D- [0, 1, 2, 3, 5, 8]
Q42 - 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 ?
Réponses :
A- 1
B- 10
C- 20
D- 500
Q43 - On considère le code suivant :
def puiss(y,x):
res = y
for i in range(x):
res = res*y
return res
Quelles sont les préconditions sur les arguments ?
Réponses :
A- les arguments doivent être obligatoirement de type entier
B- les arguments peuvent être de type entier ou flottant
C- le type des arguments n’a pas d’importance
D- il n’y a pas de préconditions dans ce cas
Q44 - 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 ?
Réponses :
A- random.randint(6)
B- random.randint(1,6)
C- random.randint(1,7)
D- random.randint(0,6)
Q45 - 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
Réponses :
A- 1
B- 8
C- 9
D- 18
Q46 - On définit la fonction suivante :
def rey(n):
i = 0
while i <= n:
i = 2*i
return i
Quelle valeur renvoie l'appel rey(100) ?
ATTENTION : ne renvoie rien car boucle infinie !Réponses :
A- 0
B- 64
C- 100
D- 128
Q47 - 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 ?
Réponses :
A- i = 0 en ligne 1, et i = i + 1 en ligne 2
B- i = 0 en ligne 1, et i = i + 2 en ligne 2
C- i = 1 en ligne 1, et i = i + 1 en ligne 2
D- i = 1 en ligne 1, et i = i + 2 en ligne 2
Q48 - On exécute le script Python suivant :
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 ?
Réponses :
A- (8, 8)
B- (8, 2)
C- (2, 2)
D- (2, 8)
Q49 - 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 ?
ATTENTION : aucune réponse correcte (selon moi le return n’est pas correctement indenté)
Réponses :
A- ([2,5], [8,125])
B- ([8,125], [8,125])
C- ([8,125], [2,5])
D- ([2,5], [2,5])
Q50 - Avec la définition de fonction capital_double suivante, que peut-on toujours affirmer à propos du résultat n retourné par la fonction ?
def capital_double (capital, interet):
montant = capital
n = 0
while montant <= 2 * capital:
montant = montant + interet
n = n + 1
return n
ATTENTION : boucle infinie si interet=0 ; aucune réponse correct pour interet = 0,1 ; capital = 1
Réponses :
A- n == capital / interet
B- capital * n * interet > 2 * capital
C- capital + n * interet > 2 * capital
D- n == 2 * capital / interet
Q51 - On définit deux fonctions :
def f(x):
y = 2*x + 1
return y
def calcul(x):
y = x - 1
return f(y)
Quelle est la valeur renvoyée par l'appel calcul(5) ?
Réponses :
A- 4
B- 9
C- 11
D- 19
Q52 - 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
Réponses :
A- l'exécution ne termine pas !
B- la valeur de x est 0, celle de y est 0
C- la valeur de x est 0, celle de y est 1
D- la valeur de x est -1, celle de y est 0
Q53 - En Python, quelle est la méthode pour charger la fonction sqrt du module math ?
Réponses :
A- using math.sqrt
B- #include math.sqrt
C- from math include sqrt
D- from math import sqrt
Q54 - 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
ATTENTION : erreur appel de fonction pas calcul(30,100) mais calculPourcentage(30,100) ; réponse attendue B
Quelle est la valeur renvoyée par l'appel calcul(30,100) ?
Réponses :
A- AssertionError: la réduction doit être un nombre positif
B- AssertionError: la réduction doit être inférieure à 100
C- AssertionError: le prix doit être un nombre strictement positif
D- 70
Q55 - En voulant programmer une fonction qui calcule la valeur minimale d'une liste d'entiers, on a écrit :
def minimum(L):
mini = 0
for e in L:
if e < mini:
mini = e
return mini
Cette fonction a été mal programmée. Pour quelle liste ne donnera-t-elle pas le résultat attendu, c'est-à-dire son minimum ?
Réponses :
A- [-1,-8,12,2,23]
B- [0,18,12,2,3]
C- [-1,-1,12,12,23]
D- [1,8,12,2,23]
Q56 - 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 ?
Réponses :
A- somme([0,0,0,0])
B- somme([0,1,2,3])
C- somme([0,3,2,1])
D- somme([3,2,1,0])
Q57 - 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) ?
Réponses :
A- [0, 7, 0, 0, 8, 0, 0, 0, 5]
B- [0, 0, 0, 5]
C- [7, 8, 5]
D- []
Q58 - On exécute le script suivant.
a = 11
for i in range(3):
a = a * 2
a = a - 10
Que contient la variable a à la fin de cette exécution ?
Réponses :
A- 0
B- 14
C- 18
D- 26
Q59 - 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 ?
Réponses :
A- 3
B- 12
C- 13
D- 15
Q60 - Parmi ces langages, lequel n'est pas un langage de programmation ?
Réponses :
A- HTML
B- JavaScript
C- PHP
D- Python
Q61 - 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 ?
Réponses :
A-
if m < L[i]:
L[i] = m
B-
if L[i-1] < L[i]:
m = L[i]
C-
if L[i] < L[0]:
L[i],L[0] = L[0],L[i]
D-
if L[i] > m:
m = L[i]
Q62 - 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 ?
ATTENTION : erreur dans le programme « liste » à la place de « L » ; réponse attendue A
Réponses :
A- maxi([1, 2, 3, 4])
B- maxi([4, 3, 2, 1])
C- maxi([1, 3, 3, 2])
D- maxi([1, 1, 1, 1])
Q63 - Karine écrit une bibliothèque Python, nommée GeomPlan, de géométrie plane dont voici un extrait :
import math
def aireDisque(R):
return math.pi * R**2
Gilles utilise cette bibliothèque pour calculer l'aire d'un disque de rayon 8.
Laquelle des instructions suivantes renvoie un message d'erreur ?
Réponses :
A-
import GeomPlan
GeomPlan.aireDisque(8)
B-
import GeomPlan
aireDisque(8)
C-
from GeomPlan import *
aireDisque(8)
D-
from GeomPlan import aireDisque
aireDisque(8)
Q64 - On définit :
def f(a,m):
i = 1
n = 0
while n <= m:
i = i * a
n = n + 1
return i
Quelle est la valeur renvoyée par l'appel f(2,4) ?
Réponses :
A- 8
B- 16
C- 32
D- 64