Step 1: Split the statements into two groups.
Read each statement and ask one question: does it tell me what data or rule to build with, or does it tell me why the project exists? The first kind is specification. The second kind is context.
Step 2: Group 1: data and rules.
Statement (A) fixes a data rule: Book has two possible types and its id carries the prefix 'B'. Statement (C) names the exact data to gather: total, male and female population of ages 10 to 24. Both of these are things a programmer needs to build or fill the dataset.
Step 3: Group 2: background story.
Statement (B) describes how teenagers behave online. Statement (D) describes a club that runs a donation camp after learning about the 3 Rs. A programmer cannot build a table or a rule from these lines. They only explain the setting. So they are context.
Step 4: Test the options.
Option 1 contains (D), which is context, so it fails. Option 2 contains (B) and (D), both context, so it fails. Option 4 is only (B) and (D), so it fails. Option 3 has (A) and (C), the two specification statements.
Step 5: Decide.
The correct choice is option 3.
Step 6: Extra check.
A quick memory aid helps here. If you can turn a statement into a column name, a field rule or a data list, it is specification. If it reads like a sentence from the introduction of a report, it is context. Statements (A) and (C) pass the first test, and (B) and (D) pass the second test. This confirms option 3 again.
Final Answer:
Only the data and rule statements (A) and (C) form the specification, option 3.
\[ \boxed{\text{Option 3: (A) and (C) only}} \]