虚拟语气could/should/would/might +have done 用法的差别?麻烦解答一下我的问题,谢谢!

1.It's a great pity that you _____ have done such a thing.
A. ought to B.should C.could D.might

2.As I have nothing to do now,I _____ as well go with you.
A.should B.would C.could D.might

3. _______ he could late ,give him the message.
A.Should B.Would C. Had D .Did

could have done本来能够做什么,事实上没做
should have done本来应该做
would have done将来可能做
might have done可能做了
1. 很可惜你没做那件事,事实上你能够做的,所以选C
2. might as well 做什么更好,既然我无事可做,还不如跟着你好了
3. B, 对将来时的虚拟,他可能会迟到,告诉他这个消息
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-26
could have done本来可以做而没有做
should have done本来应该做而没有做
would have done 表示将来,是过去看现在是将来,此时说的时候是过去
might have done 表示一种很弱的可能性
这三道题 :C,B,C
第2个回答  2011-05-24
1. The answer is (C.could)
(1)ought to/should have done sth, 表示过去应该做某事,但却没做,带有一种责怪的语气。
例如: You shouldn't have let her come to my office.
译为,你不应该让你给她进我的办公室。(实际上让她进了,表示责备)
(2)could have done sth, 表示过去能做某事,但却没做。
由于此句前面用了”It's a great pity “, 这就暗指了它不想表达责怪的想法, 故不用should而用could。
(3)might have done sth 表示可能作过某事。它是对过去动作,是否发生过,进行推测。故不适用。
2. might as well 做什么更好,既然我无事可做,还不如跟着你好了