Basis van programmeren (pseudocode traceren)
Leer met meerkeuzevragen over het regel voor regel volgen van korte programma's in dezelfde pseudotaal als deel B van het Japanse examen Fundamental Information Technology Engineer: toekenning en variabelen, lussen en voorwaardelijke vertakkingen, arrays en strings, gehele deling en rest, recursieve aanroepen, bitsgewijze bewerkingen, stacks en wachtrijen, gelinkte lijsten, off-by-one-fouten, kortsluitevaluatie, afrondingsfouten bij reële getallen, en klassen en instanties.
Basis van programmeren (pseudocode traceren): kernpunten
Wie het gedrag van een programma nauwkeurig wil lezen, moet met de hand kunnen volgen (traceren) hoe de waarden van variabelen regel voor regel veranderen. Kleine vergissingen, zoals een lus één keer te veel of te weinig tellen, een waarde kwijtraken door de volgorde van toekenningen, of vergeten dat gehele deling het deel achter de komma weglaat, leiden tot verkeerde resultaten en bugs.
U leert vooral met vragen waarin u korte programma's traceert en het resultaat geeft. De programma's volgen de pseudotaal van deel B van het Japanse examen Fundamental Information Technology Engineer, met typedeclaraties, toekenning met ←, if, while en for, en array-indexen die bij 1 beginnen. De foute antwoorden zijn waarden die uit typische vergissingen voortkomen, zoals een verkeerd begrepen eindwaarde van een lus of een verkeerd gelezen operatorvoorrang, en de uitleg laat zien uit welke vergissing elk antwoord voortkomt.
Alle vragen over Basis van programmeren (pseudocode traceren) (40)
- 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?
- Het volgende programma schuift waarden door over drie variabelen. Welke waarden hebben a, b en c nadat het is uitgevoerd?
- Het volgende programma vermenigvuldigt x herhaaldelijk met 3. Wat is de waarde van n nadat het is uitgevoerd?
- De volgende for-lus verhoogt i telkens met 2. Wat is de waarde van s nadat de lus is uitgevoerd?
- In de volgende geneste lus begint de binnenste lus bij de variabele i van de buitenste lus. Wat is de waarde van c nadat het programma is uitgevoerd?
- Het volgende programma heeft een voorwaarde binnen een geneste lus. Wat is de waarde van c nadat het is uitgevoerd?
- Het volgende programma was bedoeld om de som van alle elementen van de array a te berekenen. Array-indexen beginnen bij 1. Wat is de waarde van s nadat het is uitgevoerd?
- Array-indexen beginnen bij 1. Het volgende programma zoekt het grootste element. Wat is de waarde van m nadat het is uitgevoerd?
- Het volgende programma was bedoeld om de elementen van de array a in omgekeerde volgorde te zetten. Array-indexen beginnen bij 1. Wat bevat a nadat het programma is uitgevoerd?
- Array-indexen beginnen bij 1. Wat bevat de array a nadat het volgende programma is uitgevoerd?
- Array-indexen beginnen bij 1. Het volgende programma vergelijkt naast elkaar liggende elementen. Wat is de waarde van c nadat het is uitgevoerd?
- m[i, j] is het element in rij i, kolom j van de tweedimensionale array m, en indexen beginnen bij 1. Wat is de waarde van s nadat het volgende programma is uitgevoerd?
- Het volgende programma kopieert de elementen van de tweedimensionale array m met 4 rijen en 5 kolommen naar de array b met 20 elementen. m[i, j] is het element in rij i, kolom j, en indexen beginnen bij 1. Op welke index van b komt m[3, 2] terecht?
- Array-indexen beginnen bij 1, en + plakt strings aan elkaar. Wat is de waarde van r nadat het volgende programma is uitgevoerd?
- De volgende functie isPal geeft true terug als de tekens in de stringarray s van voren en van achteren gelezen hetzelfde zijn (een palindroom). Array-indexen beginnen bij 1. Wat moet er op de plaats van 【a】 in het programma staan?
- ÷ staat voor deling; bij toekenning aan een variabele van het type integer (ook een argument) worden de cijfers achter de komma weggelaten. Wat is de retourwaarde als de volgende functie f wordt aangeroepen als f(9087)?
- ÷ staat voor deling; bij toekenning aan een variabele van het type integer (ook een argument) worden de cijfers achter de komma weggelaten. Wat is de retourwaarde als de volgende functie toBin wordt aangeroepen als toBin(12)?
- Het volgende programma trekt de twee gehele getallen a en b van elkaar af tot ze gelijk zijn. Wat is de waarde van k nadat het is uitgevoerd?
- De volgende functie isLeap geeft true terug als het jaar y een schrikkeljaar is. and wordt vóór or geëvalueerd. Voor welke y geeft isLeap(y) true terug?
- ÷ staat voor deling; bij toekenning aan een variabele van het type integer (ook een argument) worden de cijfers achter de komma weggelaten. Hoe vaak wordt pow aangeroepen, de eerste aanroep meegerekend, als de volgende functie pow wordt aangeroepen als pow(2, 10)?
- Wat is de retourwaarde als de volgende functie s wordt aangeroepen als s(7)?
- Welke reeks waarden wordt afgedrukt als de volgende procedure p wordt aangeroepen als p(3)?
- Wat is de retourwaarde als de volgende functie fib wordt aangeroepen als fib(10)?
- Hoe vaak wordt c aangeroepen, de eerste aanroep meegerekend, als de volgende functie c wordt aangeroepen als c(4, 2)?
- ⊕ is de bitsgewijze exclusieve OF. Welke waarden hebben x en y nadat het volgende programma is uitgevoerd?
- 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?
- ∧ is de bitsgewijze EN. Wat is de waarde van c nadat het volgende programma is uitgevoerd?
- 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 na de volgende toekenning, met x = 75?
- De volgende procedure bubble is een bubblesort die de integer-array data oplopend sorteert. swap(data, j, k) is een procedure die de waarden van data[j] en data[k] verwisselt. Array-indexen beginnen bij 1. Wat moet er op de plaats van 【a】 in het programma staan?
- ÷ staat voor deling; bij toekenning aan een variabele van het type integer (ook een argument) worden de cijfers achter de komma weggelaten. Het volgende programma zoekt in de oplopend gesorteerde integer-array data (indexen beginnen bij 1) de index van de eerste waarde die minstens x is, en zet die in lo. x is niet groter dan het laatste element van data. Wat moet er op de plaats van 【a】 in het programma staan?
- 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?
- 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?
- 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?
- 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?
- De volgende for-lus verhoogt de lusvariabele telkens met 5. Wat is de waarde van c nadat de lus is uitgevoerd?
- 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?
- 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?
- 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?
- 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?
- 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?
Andere onderwerpen in Computersystemen
- Computerarithmetiek IEEE 754, vaste komma, afrondingsfouten
- Kansrekening, statistiek en wachtrijen Tellen, kansverdelingen, schatten en toetsen, M/M/1
- Instructieset en assembly RISC-V, adresseringsmodi, aanroepconventies
- Compilers Parsing, SSA, optimalisatie, registertoewijzing
- Linker, loader en uitvoerbare formaten ELF, symbolen, relocatie, dynamisch linken
- Besturingssysteem en hardware Interrupts, systeemaanroepen, paginafouten
- Basis van Linux en de opdrachtregel Shell, bestandsrechten, pipes, scripts
- Geheugenhiërarchie en prestaties Cache, vervangingsbeleid, drie soorten misses
- Multicore en synchronisatie MESI, atomaire instructies, geheugenbarrières
- GPU-programmeren Warps, gedeeld geheugen, coalescing, occupancy
- AI-hardware en softwarestack Inferentie vs training, kwantisatie, roofline
- Basis van machine learning Leervormen, evaluatiematen, neurale netwerken
- Embedded systemen en firmware GPIO, UART/SPI/I2C, RTOS
- Hardwarebeschrijvingstalen en verificatie Verilog, latches, toestandsmachines, testbenches
- Interfaces en busstandaarden PCIe, USB, SerDes, CXL
- Basis van computernetwerken TCP/IP, subnetberekening, DNS, TLS
- Basis van webtechnologie HTTP, cookies, REST, CORS, caching
- Basis van draadloze communicatie Modulatie, OFDM, MIMO, RF-schakelingen
- Basis van informatiebeveiliging Cryptografie, authenticatie, webaanvallen
- Basis van databases SQL, normalisatie, transacties
- Datastructuren en algoritmen Complexiteit, zoeken, sorteren, grafen
- Basis van programmeren in C Pointers, geheugen, ongedefinieerd gedrag
- Softwareontwikkeling en projectmanagement Processen, testen, planning en kosten
- Basis van bedrijfsstrategie en boekhouding Boekhouding, break-even, strategie, marketing
- IT-servicemanagement en IT-audit SLA's, incidenten en problemen, audit en interne beheersing
- Systeemarchitectuur en betrouwbaarheid Redundantie, RAID, back-ups, cloud
- Prestatiemeting en profiling Wet van Amdahl, CPI, knelpunten
- Hardwarebeveiliging Side channels, secure boot, TEE, PUF
- Energiebeheer (softwaregestuurd) DVFS, power gating, slaaptoestanden