Grundlagen der Programmierung (Pseudocode nachverfolgen)

Was gibt die folgende Funktion s beim Aufruf s(7) zurück?

○integer: s(integer: n)
  if (n ≦ 0)
    return 0
  endif
  return n + s(n − 2)
  1. A15
  2. B16
  3. C28
Antwort und Erläuterung anzeigen

Antwort: B. 16

s(7) ruft s(5) auf, um 7 + s(5) zu berechnen, s(5) ruft s(3) für 5 + s(3) auf, s(3) ruft s(1) für 3 + s(1) auf, und s(1) ruft s(−1) für 1 + s(−1) auf; s(−1) gibt 0 zurück, weil n ≦ 0 gilt. Bei der Rückkehr der Aufrufe werden die Werte addiert: s(7) = 7 + 5 + 3 + 1 + 0 = 16. Das ist die Summe der positiven ungeraden Zahlen bis 7.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)

  1. Welche Folge von Werten wird ausgegeben, wenn die folgende Prozedur p als p(3) aufgerufen wird?
  2. Was gibt die folgende Funktion fib beim Aufruf fib(10) zurück?
  3. Wie oft wird c einschließlich des ersten Aufrufs aufgerufen, wenn die folgende Funktion c als c(4, 2) aufgerufen wird?
  4. ⊕ ist das bitweise exklusive ODER. Welche Werte haben x und y, nachdem das folgende Programm ausgeführt wurde?
  5. x und y sind vorzeichenlose 8-Bit-Ganzzahlen. << und >> sind logische Verschiebungen: Frei werdende Bits werden mit 0 gefüllt, und Bits, die aus den 8 Bit hinausgeschoben werden, werden verworfen. ∨ ist das bitweise ODER. Welchen Wert hat y, nachdem das folgende Programm ausgeführt wurde?