Basis van programmeren (pseudocode traceren)

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?

integer: cnt ← 0
○boolean: even(integer: k)
  cnt ← cnt + 1
  return k mod 2 = 0
for (i from 1 to 5 step 1)
  if (i > 3 and even(i))
    output i
  endif
endfor
  1. A1
  2. B2
  3. C5
Antwoord en toelichting tonen

Antwoord: B. 2

Voor i = 1 tot 3 is de linkerkant i > 3 false, dus even(i) aan de rechterkant wordt niet aangeroepen. Voor i = 4 en i = 5 is i > 3 true, dus even(i) wordt aangeroepen en cnt wordt 2. Alleen i = 4, waarvoor de hele voorwaarde true is, wordt afgedrukt. Als altijd beide kanten werden geëvalueerd, zou even 5 keer worden aangeroepen en zou cnt 5 zijn.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van programmeren (pseudocode traceren)

  1. 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?
  2. 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?
  3. De klasse Counter geeft elke instantie een eigen variabele count van het type integer (een lidvariabele, 0 bij het aanmaken), en haar methode inc() telt 1 op bij de eigen count. Wat is de waarde van x nadat het volgende programma is uitgevoerd?
  4. De klasse Counter geeft elke instantie een eigen variabele count van het type integer (een lidvariabele, 0 bij het aanmaken), en haar methode inc() telt 1 op bij de eigen count. Een variabele van het type Counter bevat een verwijzing naar een instantie, niet de instantie zelf. Wat is de waarde van x nadat het volgende programma is uitgevoerd?
  5. In het volgende programma zijn twee toekenningen geschreven met de bedoeling de waarden van x en y te verwisselen. Welke waarden hebben x en y nadat het is uitgevoerd?