Oh, I’m not feeling well in the stomach. I _____ so much fried chicken just now.
A.shouldn’t eat
B.mustn’t have eaten
C.shouldn’t have eaten
D.mustn’t eat
答案:C
题目分析:考查情态动词+have done表示虚拟的用法,因为时间是just now.所以是情态动词+have done,must应该是肯定,shouldn’t have done本不该做…而做了,句意:--哦,
我的胃不舒服,我本不该刚刚吃那么多的炸鸡的。选C。
点评:情态动词+have done可以表示推测和虚拟:“must+have+done”表示对过去事情的肯定推测,译成“一定做过某事”,该结构只用于肯定句。“can't+have+done”表示对过去事情的否定推测,译成“不可能做过某事”。“may+have+done”表示对发生过的事情的推测,意思是“可能已经”或“也许已经”,用于肯定句中。“could+have+done”是虚拟语气,表示对过去事情的假设,意思是本来能够做某事而没有做。 “would+have+done”虚拟语气,表示对过去事情的假设,意思是“本来会做”。