Basis van programmeren (pseudocode traceren)

De klasse Counter geeft elke instantie een eigen variabele count van het type integer (een lidvariabele, 0 bij het aanmaken), en haar methode inc() telt 1 op bij de eigen count. Een variabele van het type Counter bevat een verwijzing naar een instantie, niet de instantie zelf. Wat is de waarde van x nadat het volgende programma is uitgevoerd?

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
Antwoord en toelichting tonen

Antwoord: B. 21

c2 ← c1 kopieert alleen de verwijzing, dus c1 en c2 wijzen naar dezelfde instantie. c1.inc() en c2.inc() verhogen daarom dezelfde count, en c1.count wordt 2. De volgende c2 ← new Counter() laat c2 naar een nieuwe instantie wijzen, en de daaropvolgende c2.inc() zet alleen de nieuwe count op 1. x = 2 × 10 + 1 = 21.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van programmeren (pseudocode traceren)

  1. In het volgende programma zijn twee toekenningen geschreven met de bedoeling de waarden van x en y te verwisselen. Welke waarden hebben x en y nadat het is uitgevoerd?
  2. Het volgende programma schuift waarden door over drie variabelen. Welke waarden hebben a, b en c nadat het is uitgevoerd?
  3. Het volgende programma vermenigvuldigt x herhaaldelijk met 3. Wat is de waarde van n nadat het is uitgevoerd?
  4. De volgende for-lus verhoogt i telkens met 2. Wat is de waarde van s nadat de lus is uitgevoerd?
  5. In de volgende geneste lus begint de binnenste lus bij de variabele i van de buitenste lus. Wat is de waarde van c nadat het programma is uitgevoerd?