Correct Answer:
B. were having
This question asks for the correct tense to describe an action that was in progress at a specific point in the past. The phrase "When I reached" sets a specific past moment.
The past continuous tense (was/were + verb-ing) is used to describe an action that was ongoing at a particular time in the past. It often appears with the past simple to show that one action was happening when another, shorter action occurred.
- B: were having is the correct answer. "When I reached, they were having dinner" means that at the exact moment I arrived (past simple), the action of them eating dinner was already in progress (past continuous).
- A: had is incorrect. This is the past simple. While grammatically possible, "they had dinner" implies a completed action, suggesting they finished dinner or simply ate dinner, not that they were in the middle of it when I arrived.
- C: have is incorrect. This is the present simple, which is not appropriate for describing a past event.
- D: had had is incorrect. This is the past perfect. "They had had dinner" would mean they finished dinner *before* I reached, which changes the meaning significantly from the intended ongoing action.