Grundlagen der Programmierung (Pseudocode nachverfolgen)

Im folgenden Programm wertet and seine rechte Seite nicht aus, wenn die linke Seite false ist (Kurzschlussauswertung). cnt ist eine globale Variable. Welchen Wert hat cnt nach der Ausführung des Programms?

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

Antwort: B. 2

Für i = 1 bis 3 ist die linke Seite i > 3 false, daher wird even(i) auf der rechten Seite nicht aufgerufen. Für i = 4 und i = 5 ist i > 3 true, also wird even(i) aufgerufen, und cnt wird 2. Ausgegeben wird nur i = 4, für das die gesamte Bedingung true ist. Würden stets beide Seiten ausgewertet, würde even 5-mal aufgerufen, und cnt wäre 5.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)

  1. Das folgende Programm sucht im Array a mit n Elementen den Wert x und speichert den Index, an dem er gefunden wird, in i. Die Array-Indizes beginnen bei 1. and und or werten ihre rechte Seite nicht aus, wenn die linke Seite allein das Ergebnis festlegt. Welche Bedingung an der Stelle von 【a】 liest a[n + 1] außerhalb des Arrays, wenn x nicht in a enthalten ist?
  2. Reelle Werte werden im Format IEEE 754 mit doppelter Genauigkeit (binary64) dargestellt, und jede Summe wird auf den nächstgelegenen darstellbaren Wert gerundet. Welchen Wert hat c, nachdem das folgende Programm ausgeführt wurde?
  3. Die Klasse Counter gibt jeder Instanz eine eigene ganzzahlige Membervariable count (beim Erzeugen 0), und ihre Methode inc() addiert 1 zum eigenen count. Welchen Wert hat x, nachdem das folgende Programm ausgeführt wurde?
  4. 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?
  5. 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?