Basis van programmeren (pseudocode traceren)

Welke reeks waarden wordt afgedrukt als de volgende procedure p wordt aangeroepen als p(3)?

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

Antwoord: C. 1, 2, 1, 3, 1, 2, 1

p(1) voert p(0) uit, drukt 1 af en voert p(0) uit, dus het drukt alleen „1” af. p(2) voert p(1) uit, drukt 2 af en voert p(1) uit, wat „1, 2, 1” geeft. p(3) geeft „1, 2, 1” van p(2), dan 3, dan opnieuw „1, 2, 1” van p(2): 1, 2, 1, 3, 1, 2, 1. Er worden 2³ − 1 = 7 waarden afgedrukt, in dezelfde volgorde als de nummers van de schijven die worden verplaatst bij de torens van Hanoi met drie schijven.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van programmeren (pseudocode traceren)

  1. Wat is de retourwaarde als de volgende functie fib wordt aangeroepen als fib(10)?
  2. Hoe vaak wordt c aangeroepen, de eerste aanroep meegerekend, als de volgende functie c wordt aangeroepen als c(4, 2)?
  3. ⊕ is de bitsgewijze exclusieve OF. Welke waarden hebben x en y nadat het volgende programma is uitgevoerd?
  4. x en y zijn 8-bits gehele getallen zonder teken. << en >> zijn logische verschuivingen: vrijgekomen bits worden met 0 gevuld, en bits die buiten de 8 bits worden geschoven, vervallen. ∨ is de bitsgewijze OF. Wat is de waarde van y nadat het volgende programma is uitgevoerd?
  5. ∧ is de bitsgewijze EN. Wat is de waarde van c nadat het volgende programma is uitgevoerd?