Bases de la programmation (trace de pseudo-code)

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 ?

Counter: c1 ← new Counter()
Counter: c2 ← c1
c1.inc()
c2.inc()
c2 ← new Counter()
c2.inc()
integer: x ← c1.count × 10 + c2.count
  1. A11
  2. B21
  3. C33
Afficher la réponse et l'explication

Réponse : B. 21

c2 ← c1 ne copie que la référence : c1 et c2 désignent la même instance. c1.inc() et c2.inc() incrémentent donc le même count, et c1.count passe à 2. L'affectation suivante c2 ← new Counter() fait désigner à c2 une nouvelle instance, et le c2.inc() qui suit ne met à 1 que le count de la nouvelle instance. x = 2 × 10 + 1 = 21.

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

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

  1. 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 ?
  2. Le programme suivant fait circuler des valeurs entre trois variables. Quelles sont les valeurs de a, b et c après son exécution ?
  3. Le programme suivant multiplie x par 3 de façon répétée. Quelle est la valeur de n après son exécution ?
  4. La boucle for suivante augmente i de 2 à chaque passage. Quelle est la valeur de s après son exécution ?
  5. Dans les boucles imbriquées suivantes, la boucle intérieure part de la variable i de la boucle extérieure. Quelle est la valeur de c après l'exécution ?