1) can / could + have done在肯定句中表示“本来可以做而实际上能做某事”,是虚拟语气;在疑问句或否定句中表示对过去行为的怀疑或不肯定, 表示推测。
1. You could have done better, but you didn’t try your best. (虚拟语气)
2. He can’t have been to that town.(推测)
3. Can he have got the book?(推测)
2) may / might +不定式完成式(have done)
表示对过去行为的推测。不能用于疑问句中,没有虚拟语气的用法。Might所表示的可能性比may小。
1. He may not have finished the work .
2. If we had taken the other road, we might have arrived earlier.
3)must +不定式完成式(have done)
用于肯定句中,表示对过去行为的推测。意为“一定、想必”。其疑问、否定形式用can,can’t代替。参看1) can / could + have done表示推测。
1. You must have seen the film Titanic.
2. He liuxuepaper.com