Basis van programmeren (pseudocode traceren)

Een stack wordt voorgesteld door de integer-array st met 5 elementen en de variabele top van het type integer. Alle elementen van st zijn aanvankelijk 0, en top begint bij 0. push(v) telt 1 op bij top en voert dan st[top] ← v uit; pop() geeft de waarde van st[top] terug en trekt dan 1 af van top (de elementen van st veranderen niet). Wat zijn top en st nadat het volgende programma is uitgevoerd?

push(5)
push(8)
pop()
push(3)
push(9)
pop()
push(7)
pop()
  1. Atop = 2, st = {5, 3, 0, 0, 0}
  2. Btop = 2, st = {5, 3, 7, 0, 0}
  3. Ctop = 5, st = {5, 8, 3, 9, 7}
Antwoord en toelichting tonen

Antwoord: B. top = 2, st = {5, 3, 7, 0, 0}

push(5) en push(8) geven st[1] = 5, st[2] = 8 en top = 2, en pop() geeft 8 terug, zodat top = 1 overblijft. push(3) overschrijft st[2] met 3, push(9) zet st[3] = 9, en pop() brengt top terug naar 2. push(7) overschrijft st[3] met 7, en de laatste pop() maakt top = 2. pop() verlaagt alleen top, dus de verwijderde 7 blijft in st[3] staan: st = {5, 3, 7, 0, 0}. De geldige inhoud van de stack is st[1] tot st[top], dus 5 en 3.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van programmeren (pseudocode traceren)

  1. Een wachtrij gebruikt de array q (4 elementen van het type string) als ring. head en tail beginnen bij 1. enq(v) voert q[tail] ← v uit en daarna tail ← tail mod 4 + 1; deq() geeft de waarde van q[head] terug en voert daarna head ← head mod 4 + 1 uit. In welk element van q wordt „E” opgeslagen als het volgende programma wordt uitgevoerd?
  2. 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?
  3. 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?
  4. De volgende for-lus verhoogt de lusvariabele telkens met 5. Wat is de waarde van c nadat de lus is uitgevoerd?
  5. 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?