Software Engineering › How to answer › multiple-choice questions
How to answer multiple-choice questions
Multiple choice is 1 mark each: you pick one option. The risk is not knowledge, it is rushing and falling for a trap option. This page gives a fixed routine so you do the same thing every time. From course notes General advice
What it looks like in the real exam
From NESA material In the 2025 HSC online exam, Questions 1 to 8 are each worth 1 mark and the NESA marking criterion is simply “Identifies the correct answer” (2025 HSC exam, Q1, 2025 HSC exam, Q3, 2025 HSC exam, Q4, 2025 HSC exam, Q5, 2025 HSC exam, Q6, 2025 HSC exam, Q7, 2025 HSC exam, Q8). The answers are single items such as “Pilot”, “Supervised learning” or “Race conditions”. 2025 HSC exam, Q7 shows a CSS code fragment, so some questions need you to read code before choosing.
From NESA material The 2025 NESA sample paper has the same style: 2025 NESA sample exam, Q1, 2025 NESA sample exam, Q7 (complete pseudocode from Python) and 2025 NESA sample exam, Q16A (find the CSS fault).
Reasoned The exact wording of the 2025 exam questions is not published as text, so I cannot show you those stems. The sample-exam stems below are published. Try the interface yourself on NESA’s familiarisation site (fam.hsconline.nesa.nsw.edu.au), as your course notes suggest.
There are two flavours: knowledge (“which of these is …”) and code reading (“what is the output …”, “what is the cause …”).
Method (do this every time)
- Read the whole question and every option before you choose. Do not stop at the first option that sounds right. From course notes
- Mark the key words in the stem: “NOT”, “EXCEPT”, “cause”, “output”, “first”, “most appropriate”. Say to yourself what a correct answer must do. General advice
- Look at any stimulus (code, table, scenario). If the question says “referring to the code”, the answer is in the code, not in general knowledge. From course notes
- Code question? Work out your own answer first. Cover the options, trace the code on paper (a small table of variable values), write your answer, then look for it. The options are built from common slips, so reading them first can pull you onto a trap. General advice
- Eliminate. Cross out any option that is about a different idea, contradicts the stimulus, or only works with the opposite condition (for example AND instead of OR). Then compare the survivors against the stem. From course notes
- Choose the best fit, then re-read the stem with your choice filled in. It should answer exactly what was asked. From course notes
- Never leave it blank. The NESA criterion is 1 mark for the correct answer; nothing in the marking guidelines describes a penalty for a wrong one, so a guess after eliminating costs you nothing extra. Reasoned from the marking criteria
Worked example 1: a code-fault question (official sample)
This is a From NESA material NESA sample-exam question. Follow the method:
2025 NESA sample exam, Q16A · 1 mark
Official marking criteria
- 1 mark: Identifies the correct answer.
NESA answer
Notes
- Read: the stem says “Referring to the code, what is the cause of the problem?”, so compare the HTML and the CSS.
- Key words: “cause”. The CSS rule is
.qe_item {…}and the HTML is<span id="qe_item">. - Know the rule: a dot (
.) selects a class; a hash (#) selects an id (course specifications, CSS section). See CSS selectors (id v class). - Eliminate: the four options are “Font family is missing”, “Attribute of <span> has not been defined”, “main.css has not been correctly referenced” and “The id qe_item has not been correctly referenced”. The body rule already sets
font-family: Arial, so the first is wrong. The span does have an attribute (id), so the second is wrong. If main.css were not linked at all, the page would show no styling anywhere, but the question only complains about this one word, and nothing in the code shows a broken link. That leaves the id option, which matches the dot-versus-hash mismatch you spotted.
Reasoned Official note: the NESA marking guidelines print “se_item” in the answer while the question prints “qe_item”. That is NESA’s own inconsistency; the answer is still the id option. Fix: use class="qe_item" in the HTML, or #qe_item in the CSS.
Worked example 2: a tracing question (old syllabus, same skill)
sdd2022-q8
- 12
- 16
- 26
- 27
Answer: D (27)
Trace table (change only the variable assigned on each line):
| Line | A | B | C | D |
|---|---|---|---|---|
| A=3 | 3 | |||
| B=4 | 3 | 4 | ||
| C=5 | 3 | 4 | 5 | |
| A=B+C | 9 | 4 | 5 | |
| B=A | 9 | 9 | 5 | |
| C=B | 9 | 9 | 9 | |
| D=A+B+C | 9 | 9 | 9 | 27 |
Original practice The tempting wrong answer is 12, which is what you get by adding the starting values 3 + 4 + 5 and ignoring the re-assignments. That is exactly what you avoid by tracing before you look at the options. See Desk checking.
Common mistakes
- From NESA material NESA’s 2025 general marker feedback says better students read the question carefully so they do not miss important components and engage with any stimulus material.
- General advice Choosing the first option that “sounds right” without reading the rest.
- General advice Tracing in your head. Write a mini table; it takes 30 seconds and avoids order-of-operations slips.
- General advice Missing “NOT” or “EXCEPT”. Underline it.
- General advice Mixing up pre-test and post-test loops,
ANDandOR,<and<=, and indexes starting at 0 or 1.
Time per mark
Derived The exam has 2 hours 30 minutes including 10 minutes reading time (NESA quick reference guide), which leaves 140 minutes of writing time for 80 marks: about 1.75 minutes per mark.
General advice Aim for about 1 minute per 1-mark choice question and 2 minutes if you need a code trace. Bank the saved minutes for the 4 to 6 mark code and diagram questions.
Practice (5 items, with answers)
Open each item, answer it on paper, then open “Show the answer”.
Original practice item
Original practice
- 21
- 9
- 20
- 4
Show the answer
Answer: C (20)
Trace: total 0; 4 is above 3 so total 4; 7 so total 11; 1 is skipped; 9 so total 20.
Original practice item
Original practice
- 12
- 3
- 10
- 9
Show the answer
Answer: A (12)
Trace: count goes 0, 3, 6, 9 (9 < 10 so the loop runs again), 12. Now 12 < 10 is false, so 12 is printed. Beware the answer 10 or 9.
Original practice item
Original practice
- 8 4
- 5 4
- 1 4
- 8 3
Show the answer
Answer: A (8 4)
values becomes [3,8,5,1]; sorted [1,3,5,8]; values[-1] is the last item, 8; the length is 4.
sdd2022-q18
Original practice
- Get NumTick WHILE NumTick <1 AND NumTick >10 Display “Please enter a valid number of tickets” Get NumTick ENDWHILE ProcessPurchase
- Get NumTick REPEAT Display “Please enter a valid number of tickets” UNTIL NumTick > 0 AND NumTick < 10 ProcessPurchase
- Get NumTick IF NumTick <1 OR NumTick > 10 Display “Please enter a valid number of tickets” ENDIF ProcessPurchase
- Get NumTick WHILE NumTick <1 OR NumTick >10 Display “Please enter a valid number of tickets” Get NumTick ENDWHILE ProcessPurchase
Show the answer
Answer: D (Get NumTick WHILE NumTick <1 OR NumTick >10 Display “Please enter a valid number of tickets” Get NumTick ENDWHILE ProcessPurchase)
Option D: it must keep asking while the value is wrong (below 1 OR above 10) and re-read the value inside the loop. AND can never be true for the same number; the REPEAT option never reads a new value and its UNTIL test (> 0 AND < 10) wrongly rejects 10; the IF option asks once and does not loop.
sample-q7
Original practice
- 0 TO n
- 1 TO n
- 0 TO n-1
- 1 TO n-1
Show the answer
Answer: C (0 TO n-1)
range(n) gives 0, 1, … n−1, so the pseudocode loop is 0 TO n−1. Answer reasoned from Python’s range, since the NESA MG answer is an image.
Original practice The items marked “Original practice” were written for this site and their answers were checked by running the code. More: all multiple-choice questions.
Terms, flashcards and past questions
Key terms for this page: Multiple choice (MC) · Reading time · Desk checking · CSS selectors (id v class)
Flashcards · All key terms · Learn step by step · All past questions · Multiple-choice bank · Mock exam
Past questions used on this page:
How to answer multi-select questions (tick all that apply) →