7.A最佳 分析:用should have done来表示“过去本应该做某事,而实际上没有做。”
说明:情态动词十have done总结如下: ①表示猜测的情态动词十have done。
A.must have
done:只用在肯定句中,表示对过去事实的完全肯定的猜测。
could
have done用在否定句中,表示对过去事实的完全否定的推测,还可表示“本不能”之意;用在疑问句中表示对过去事实的没把握的推测;偶尔用在肯定句中表示对过去事实的没把握的猜测,相当于may have done,还可表示“本来能的意思。
C.may have
done用在肯定句中表示对过去的事实的不完全肯定的猜测;用在否定句中表示对过去事实的没把握的猜测。
D.might have
done用在肯定句中表示对过去的事实的把握性不大的猜测;用在否定句中表示对过去事实的把握性不大的猜测。
②should (not) have
done表示“本应该”或“本不应该”做某事,还有ought (not)to have
done。
③need't have done表示“本不必”做某事,且只有否定形式。
④在条件虚拟从句中,主句用would(should/could/might)have done表示与过去事实相反。