核心问题
按照英语语法规则,ago 只能与一般过去时连用。但是下面的句子里的 ago 却与现在完成时连用,这是怎么回事呢? He's been there for over two years. He's been there since two years ago.
词典解答
应注意,上句中的 ago 与 two years 构成一个名词短语(two years ago)共同作介词 since 的宾语。上句之所以用现在完成时是受 since two years ago(自从两年前以来)的制约。
另外,还要注意,ago 还可以与情态动态 + 动词不定式完成时连用,表示现在对过去已发生的事件进行推测或表示现在认为某事本应该发生(含 ago 的短语并不是修饰情态动词,而
是修饰动词不定式完成式的):
-
He must have left a week ago. 他准是在一周前就离开了。
-
He ought to have been here long ago. 他早就应当到这里了。
-
I seem to have read the book two years ago. 我似乎两年前就读过这本书。请做下面的英语试题:
I've kept up a friendship with a girl whom I was at school ____ twenty years ago. A. about B. since C. till D. with(全国研考,98-8)