Grundlagen der Programmierung (Pseudocode nachverfolgen)

Welche Folge von Werten wird ausgegeben, wenn die folgende Prozedur p als p(3) aufgerufen wird?

○p(integer: n)
  if (n > 0)
    p(n − 1)
    output n
    p(n − 1)
  endif
  1. A1, 1, 2, 1, 1, 2, 3
  2. B3, 2, 1, 1, 2, 1, 1
  3. C1, 2, 1, 3, 1, 2, 1
Antwort und Erläuterung anzeigen

Antwort: C. 1, 2, 1, 3, 1, 2, 1

p(1) führt p(0) aus, gibt 1 aus und führt p(0) aus; es gibt also nur „1“ aus. p(2) führt p(1) aus, gibt 2 aus und führt p(1) aus, was „1, 2, 1“ ergibt. p(3) liefert „1, 2, 1“ aus p(2), dann 3 und dann noch einmal „1, 2, 1“ aus p(2): 1, 2, 1, 3, 1, 2, 1. Es gibt 2³ − 1 = 7 Ausgaben, in derselben Reihenfolge wie die Nummern der bewegten Scheiben beim Turm von Hanoi mit drei Scheiben.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)

  1. Was gibt die folgende Funktion fib beim Aufruf fib(10) zurück?
  2. Wie oft wird c einschließlich des ersten Aufrufs aufgerufen, wenn die folgende Funktion c als c(4, 2) aufgerufen wird?
  3. ⊕ ist das bitweise exklusive ODER. Welche Werte haben x und y, nachdem das folgende Programm ausgeführt wurde?
  4. 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?
  5. ∧ ist das bitweise UND. Welchen Wert hat c, nachdem das folgende Programm ausgeführt wurde?