Grundlagen der Programmierung (Pseudocode nachverfolgen)

Das folgende Programm gibt eine verkettete Liste aus, deren Elemente über das Array next verbunden sind, indem es ihr ab dem Element mit Index 1 folgt. Die Array-Indizes beginnen bei 1. Der next-Wert 0 markiert das Ende der Liste. Welche Folge von Werten wird ausgegeben?

string array: val ← {"A", "B", "C", "D", "E"}
integer array: next ← {3, 0, 5, 2, 4}
integer: p ← 1
while (p ≠ 0)
  output val[p]
  p ← next[p]
endwhile
  1. AA, B, C, D, E
  2. BC, E, D, B
  3. CA, C, E, D, B
Antwort und Erläuterung anzeigen

Antwort: C. A, C, E, D, B

Mit p = 1 gibt das Programm val[1], also A, aus, und p ← next[1] setzt p auf 3. Danach gibt es C aus und geht zu next[3] = 5, gibt E aus und geht zu next[5] = 4, gibt D aus und geht zu next[4] = 2 und gibt B aus und geht zu next[2] = 0, womit die Schleife endet. Die Ausgabe ist A, C, E, D, B. Die Reihenfolge der Liste wird durch die Werte in next bestimmt, nicht durch die Reihenfolge im Array.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)

  1. Das folgende Programm fügt „F“ aus val[6] direkt hinter „C“ (Index 3) in die verkettete Liste A → C → E → D → B ein, die über das Array next verbunden ist, und gibt die Liste dann ab dem Element mit Index 1 aus. Die Array-Indizes beginnen bei 1. Der next-Wert 0 markiert das Ende der Liste. Was gehört an die Stelle von 【a】, damit die Ausgabe A, C, F, E, D, B lautet?
  2. Die folgende for-Schleife erhöht ihre Laufvariable jeweils um 5. Welchen Wert hat c nach der Ausführung?
  3. 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?
  4. 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?
  5. 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?