【正文】
22 情態(tài)動詞+have done用法例句must have done表示主觀上對過去已經(jīng)發(fā)生的行為進行推測,意為“想必,準是,一定做了某事”1. She must have gone through a lot.2. He must have visited the White House during his stay in the United States.may/might have done表示對過去已發(fā)生行為的推測,意為“也許/或許已經(jīng)(沒有)……“。一般用于肯定句或否定句中,不用于疑問句。用might則表示語氣更加不肯定。1. You may have learnt the news.2. He may not have heard his name called.3. Sorry I’m late. I might have turned off the alarm clock and gone back to sleep again.can…h(huán)ave donecannot have done表示對過去發(fā)生的行為的懷疑和不肯定,通常用在否定句和疑問句中。(can換成could時語氣委婉)1. Where can she have gone?2. Could he have done such a foolish thing?3. The boy can’t have finished reading the book so soon because it is difficult even to an adult.could have done可用于肯定句中,表示“可能已經(jīng)……”之意,此外,還可以表示過去能做而沒做的事,有一種對過去為付諸實施的事情的惋惜。1. He could have killed himself driving at a dangerous speed.2. You could have been more considerate.3. You could have done better, but you were too careless.might have done表示“本來可能……,但實際上沒有發(fā)生的事情”。另外,還可以表示“本來應(yīng)該或可以做某事”之意,含有輕微的責備語氣。1. You should not swim in that sea. You might have been eaten by a shark.2. He might have given him more help, thought he was busy.should/ought to have done用于肯定句時,表示本該做某事,而實際上未做;用于否定句時,則表示不該做的事反而做了。1. He should have known that the police would never allow this sort of thing.2. You shouldn’t have done it so carelessly.3. You ought to have returned the book earlier.4. You ought not to have refused his offer.needn’t have done表示做了本來不必去做的事。注意:didn’t need to do表示“沒必要做而實際上也沒有做某事”1. You needn’t have watered the plants, for it is going to rain.2. I didn’t need to buy the dictionary. I had a copy at home.had better have done用于事后的建議,含輕微責備的口吻,意為“當時最好做了某事”,其否定式had better not have done表示相反的含義。1. You had better have started earlier.2. You had better not have scolded her.would rather have done表示“當時寧愿做了某事”,其否定式would rather not have done表示相反的含義,兩者都表示“后悔”之意。1.I would rather have taken his advice.2.I would rather not have told him the truth.