mustn't have done 与 couldn't have done

题目:He _____ at the meeting this morning. He was in hospital at the time.

A. couldn't have spoken

B. mustn't have spoken

C. shouldn't have spoken

D. needn't have spoken

我选择了mustn't have spoken,而正确答案是A。并且给出的解析是:

1.没有mustn't have done 这个结构。

2. couldn't have done 能够表示当时绝不可能。

就此我想请网站各位专家老师问题:

1. mustn't have done 没有此结构吗?但是我在 google 上搜到了(https://www.dailywritingtips.com/mustnt-have-done-and-couldnt-have-done/

确有此结构,并且常和 couldn't have done 替换使用,mustn't have done 多为英式。

2.为什么我在cps网站看到 couldn't have don e既可以表示不太可能...,但这里同时couldn't也可以表示绝不可能。

3.我想知道为什么不能选择 shouldn't?

谢谢各位老师专家的解答!

请先 登录 后评论

1 个回答

周贞雄   - 英语老师

关于 mustn't have done 的用法,许多人都做过研究和分析。下面引用上海外国语大学张月祥教授(章振邦主编《新编英语语法》的主要作者之一)在其《英语语法一点通》中的一个解释,供参考:

attachments-2025-06-1ZOsOFDG685f593ec479b.pngattachments-2025-06-qODfyqYk685f5949e0263.png

注意张月祥教授在解答中有一句特别重要的话,对于理解网友的问题很有帮助:也有人认为,推测性 must 有两个否定形式:can’t(不可能)和mustn’t(肯定不),前者 not 否定 can,后者 not 否定其后的主动词。这既适用于“ mustn’t +不定式一般式(即+动词原形),也适用于“ mustn’t +不定式完成式(即+ have +过去分词)

根据张月祥教授的分析,网友的问题选AB都可以:

A,即选 couldn't have spoken,表示不可能在今天早上的会上发了言(因为当时他还在住院)。

B,即选 mustn't have spoken,表示肯定没在今天上午的会上发言(因为当时他还在住院)。

至于为什么不能选 shouldn't,主要是因为填它,与后面 He was in hospital at the time 不是很吻合。关于 shouldn't have done 的用法,本站有很多讨论,你可以自己去查阅。

最后补充一句,张月祥教授在其解答的最后有一条建议,也需注意一下:由以上所述可知,mustn’ t(尤其在美国英语中)能用于表示推测。但对初学者来说,我们还是认为应首先学会使用推测性mustcan’t的对应关系,不要用mustn’t表示推测。这是基础。待到基础牢靠之后再进而考虑推测性用法的must能否用于否定形式的问题。

请先 登录 后评论
  • 3 关注
  • 1 收藏,44 浏览
  • Solomon   提出于 13小时前