情态动词加have+done的用法
情态动词+have done
could/would have done
can have done
must have done
may have done
might have done
should / ought to have done
should not / ought not have done
1. 过去本来能够做但未实现:He could/would have finished it on time, but he was ill that day. (虚拟,*could表达惋惜之情)
2. 肯定、否定、疑问句中表推测(可能性):Don't worry. They could have arrived home. / The guests would have arrived by that time.(对过去的推测,*would一般用于肯定句)
否定、疑问中表推测:He can't have slept with the noise. (把握性极大的推测)
Can he have gone to his office? (提出某种可能性)
想必 / 准是 / 一定: It must have rained last night, for the road is quite muddy. (把握性极大的推测)
注:否行形式为:can't / couldn't have done
也许 / 或许,一般用于肯定、否定句,不用于疑问句:It's too late. He may have gone to bed. (把握性不大的推测)
He may not have finished his work. (把握性不大的推测)
同上,比may语气更弱
本该做而实际上没做:You should / ought to have done this exercise more carefully. (表责备)
本不该做但是做了:You should't / oughtn't to have told her the truth. (表责备)