Basis van programmeren (pseudocode traceren)

Het volgende programma drukt een gelinkte lijst af, waarvan de elementen met de array next aan elkaar zijn gekoppeld, door die te volgen vanaf het element met index 1. Array-indexen beginnen bij 1. Een next-waarde van 0 markeert het einde van de lijst. Welke reeks waarden wordt afgedrukt?

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
Antwoord en toelichting tonen

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

Met p = 1 drukt het programma val[1], A, af, en p ← next[1] verplaatst p naar 3. Daarna drukt het C af en gaat naar next[3] = 5, drukt E af en gaat naar next[5] = 4, drukt D af en gaat naar next[4] = 2, en drukt B af en gaat naar next[2] = 0, waarmee de lus eindigt. De uitvoer is A, C, E, D, B. De volgorde van de lijst wordt bepaald door de waarden in next, niet door de volgorde in de array.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van programmeren (pseudocode traceren)

  1. Het volgende programma voegt „F”, in val[6], direct na „C” (index 3) in de gelinkte lijst A → C → E → D → B in, waarvan de elementen met de array next aan elkaar zijn gekoppeld, en drukt daarna de lijst af vanaf het element met index 1. Array-indexen beginnen bij 1. Een next-waarde van 0 markeert het einde van de lijst. Wat moet er op de plaats van 【a】 staan, zodat de uitvoer A, C, F, E, D, B is?
  2. De volgende for-lus verhoogt de lusvariabele telkens met 5. Wat is de waarde van c nadat de lus is uitgevoerd?
  3. In het volgende programma evalueert and de rechterkant niet als de linkerkant false is (kortsluitevaluatie). cnt is een globale variabele. Wat is de waarde van cnt nadat het programma is uitgevoerd?
  4. Het volgende programma zoekt de waarde x in de array a met n elementen en zet de index waar die wordt gevonden in i. Array-indexen beginnen bij 1. and en or evalueren hun rechterkant niet als de linkerkant alleen het resultaat al bepaalt. Welke voorwaarde op de plaats van 【a】 leest a[n + 1], buiten de array, als x niet in a voorkomt?
  5. Reële waarden worden voorgesteld in IEEE 754 dubbele precisie (binary64), en elke som wordt afgerond naar de dichtstbijzijnde voorstelbare waarde. Wat is de waarde van c nadat het volgende programma is uitgevoerd?