Bases de la programmation (trace de pseudo-code)

Dans le programme suivant, and n'évalue pas son membre droit quand le membre gauche est faux (évaluation en court-circuit). cnt est une variable globale. Quelle est la valeur de cnt après l'exécution du programme ?

integer: cnt ← 0
○boolean: even(integer: k)
  cnt ← cnt + 1
  return k mod 2 = 0
for (i from 1 to 5 step 1)
  if (i > 3 and even(i))
    output i
  endif
endfor
  1. A1
  2. B2
  3. C5
Afficher la réponse et l'explication

Réponse : B. 2

Pour i = 1 à 3, le membre gauche i > 3 est faux : even(i), à droite, n'est pas appelée. Pour i = 4 et i = 5, i > 3 est vrai : even(i) est appelée et cnt passe à 2. Seul i = 4, pour lequel toute la condition est vraie, est affiché. Si les deux membres étaient toujours évalués, even serait appelée 5 fois et cnt vaudrait 5.

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

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

  1. Le programme suivant cherche la valeur x dans le tableau a de n éléments et place dans i l'indice où elle est trouvée. Les indices du tableau commencent à 1. and et or n'évaluent pas leur membre droit quand le membre gauche suffit à déterminer le résultat. Quelle condition en 【a】 lit a[n + 1], en dehors du tableau, quand x n'est pas dans a ?
  2. Les valeurs réelles sont représentées en double précision IEEE 754 (binary64), et chaque somme est arrondie à la valeur représentable la plus proche. Quelle est la valeur de c après l'exécution du programme suivant ?
  3. La classe Counter donne à chaque instance sa propre variable membre entière count (0 à la création), et sa méthode inc() ajoute 1 à son propre count. Quelle est la valeur de x après l'exécution du programme suivant ?
  4. La classe Counter donne à chaque instance sa propre variable membre entière count (0 à la création), et sa méthode inc() ajoute 1 à son propre count. Une variable de type Counter contient une référence à une instance, et non l'instance elle-même. Quelle est la valeur de x après l'exécution du programme suivant ?
  5. Les deux affectations du programme suivant devaient échanger les valeurs de x et y. Quelles sont les valeurs de x et y après son exécution ?