Grundlagen der Programmierung (Pseudocode nachverfolgen)

Die Klasse Counter gibt jeder Instanz eine eigene ganzzahlige Membervariable count (beim Erzeugen 0), und ihre Methode inc() addiert 1 zum eigenen count. Eine Variable vom Typ Counter enthält eine Referenz auf eine Instanz, nicht die Instanz selbst. Welchen Wert hat x, nachdem das folgende Programm ausgeführt wurde?

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
Antwort und Erläuterung anzeigen

Antwort: B. 21

c2 ← c1 kopiert nur die Referenz, daher verweisen c1 und c2 auf dieselbe Instanz. c1.inc() und c2.inc() erhöhen deshalb dasselbe count, und c1.count wird 2. Das folgende c2 ← new Counter() lässt c2 auf eine neue Instanz verweisen, und das anschließende c2.inc() setzt nur das neue count auf 1. x = 2 × 10 + 1 = 21.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)

  1. Mit den beiden Zuweisungen im folgenden Programm sollten die Werte von x und y vertauscht werden. Welche Werte haben x und y nach der Ausführung?
  2. Das folgende Programm reicht Werte über drei Variablen weiter. Welche Werte haben a, b und c nach der Ausführung?
  3. Das folgende Programm multipliziert x wiederholt mit 3. Welchen Wert hat n nach der Ausführung?
  4. Die folgende for-Schleife erhöht i jeweils um 2. Welchen Wert hat s nach der Ausführung?
  5. In der folgenden verschachtelten Schleife beginnt die innere Schleife bei der äußeren Variablen i. Welchen Wert hat c nach der Ausführung?