Step 1: Use a decision test for each attribute instead of definitions alone.
Ask two yes or no questions for every attribute: can the values be ranked in order, and if yes, does a true, non arbitrary zero exist, making ratios meaningful? A No to the first question gives Nominal. A Yes to the first but no fixed unit of difference gives Ordinal. A Yes to the first with a fixed unit of difference but no true zero gives Interval. A Yes to both gives Ratio.
Step 2: Apply the test to (P) 23 $^\circ$C.
Ranking is possible, 25 $^\circ$C is hotter than 20 $^\circ$C, differences are fixed and measurable, one degree is the same size everywhere on the scale, but 0 $^\circ$C is only the freezing point of water, an arbitrary reference, not no heat. So this is Interval, code (2).
Step 3: Apply the test to (Q) Woodland.
Woodland cannot be meaningfully ranked against categories like grassland or wetland, it is just a label. So this is Nominal, code (1).
Step 4: Apply the test to (R) Kilogram.
Kilograms can be ranked, the difference between 1 kg and 2 kg is the same fixed unit as between 5 kg and 6 kg, and 0 kg genuinely means the absence of mass, so doubling a kilogram value doubles the physical mass. This satisfies both tests, so it is Ratio, code (4).
Step 5: Apply the test to (S) Small.
Small, medium and large can be ranked, but there is no fixed numeric unit separating small from medium, so only the first test passes. This is Ordinal, code (3).
Step 6: Match against the given options.
Only option (A), (P)-(2); (Q)-(1); (R)-(4); (S)-(3), reproduces all four codes obtained above. Every other option misassigns at least one attribute.
\[ \boxed{\text{Option (A) is correct}} \]