题目
You ______ that letter to James. However, you didn't.A. ought to writeB. ought to have writtenC. should writeD. should be writing
You ______ that letter to James. However, you didn't.
A. ought to write
B. ought to have written
C. should write
D. should be writing
题目解答
答案
B. ought to have written
解析
本题考查情态动词的过去形式的用法,核心在于区分ought to和should在表示“本应做某事但实际未做”时的语境适用性。
- 关键点1:后半句“you didn’t”表明动作发生在过去,需用完成时态表达对过去的判断。
- 关键点2:ought to have done强调未履行的义务或责任,而should have done更偏向建议或期望未达成。本题中“未写信”更符合未尽责的语境,因此选择ought to have written。
选项分析
-
A. ought to write
- 现在时形式,表示当前的义务,但后文“you didn’t”是过去动作,时态不匹配。
-
B. ought to have written
- 过去完成时形式,表示过去本应履行但未履行的义务,符合“未写信”的语境。
-
C. should write
- 现在时形式,表示当前的建议,与后文过去动作矛盾。
-
D. should be writing
- 现在进行时形式,表示当前应持续进行的动作,与语境无关。
语法总结
- ought to have done用于责备或指出未履行的义务,强调“本应该做但没做”。
- should have done用于表达未实现的建议或期望,语气较柔和。