Bases de la programmation (trace de pseudo-code)
÷ est la division ; quand le résultat est affecté à une variable entière (y compris un argument de fonction), la partie fractionnaire est supprimée. Quelle est la valeur de retour de la fonction f suivante appelée sous la forme f(9087) ?
○integer: f(integer: x)
integer: s ← 0
while (x > 0)
s ← s + x mod 10
x ← x ÷ 10
endwhile
return s
- A4
- B15
- C24
Afficher la réponse et l'explication
Réponse : C. 24
x mod 10 donne le chiffre des unités de x, et x ← x ÷ 10, qui devient une division entière puisque la partie fractionnaire est supprimée, retire ce chiffre. mod est prioritaire sur + : s ← s + x mod 10 signifie donc s ← s + (x mod 10). x prend les valeurs 9087, 908, 90, 9 et 0, et 7, 8, 0 et 9 sont ajoutés tour à tour à s, ce qui donne 7 + 8 + 0 + 9 = 24. La fonction calcule la somme des chiffres.
Continuer : 9 autres questions sur Bases de la programmation (trace de pseudo-code)