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
- A1
- B2
- 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.
Weiter: 9 weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)