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
  1. A4
  2. B15
  3. 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.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases de la programmation (trace de pseudo-code)

  1. ÷ 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 toBin suivante appelée sous la forme toBin(12) ?
  2. Le programme suivant soustrait l'un de l'autre les deux entiers a et b jusqu'à ce qu'ils soient égaux. Quelle est la valeur de k après son exécution ?
  3. La fonction isLeap suivante renvoie true si l'année y est bissextile. and est évalué avant or. Pour quelle valeur de y isLeap(y) renvoie-t-elle true ?
  4. ÷ 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. Lorsque la fonction pow suivante est appelée sous la forme pow(2, 10), combien de fois pow est-elle appelée, premier appel compris ?
  5. Quelle est la valeur de retour de la fonction s suivante appelée sous la forme s(7) ?