对于下面两道从英语语法网摘的两道填空题:
第9题:
You’ll never guess who I met today — myold teacher! We _____ for 20 years.
A.don’tmeet B. haven’t met
C.hadn’tmet D. couldn’t meet
答案: 选B。用现在完成时表示从过去持续到现在的一段时间。
(摘自语法连载中“高中英语-语法陷阱题800例-时态”)
英语时态考题专练(有详解)
第8题:
—Tom came back home yesterday.
—Really? Where ________ atall?
A. had he been B. has he been
C. had he gone D. has he gone
答案:选 A。因为问的是Tom回来之前到去过某地,故用过去完成时态。
(摘自语法练习全中“英语时态考题专练”)
我的看法:此两题很相似,都是对话,在对话当中,句中都有一个过去的动作和时间。第9题为 met 和 today,第8题为 came back home 和 yesterday.但第9题为现在完成时,第8题为过去完成时。我开始很困惑,第8题为过去完成时,理由是从came back home 发生的时间(yesterday)开始计算,所以用过去完成时。但第9题不也应该从met发生的时间(today)开始算吗?today在这里不也应该算过去的时间吗?也应该用过去完成时吗?后来,我想,问题也许出在 today上,动作虽然发生过了,但是却是发生在今天,是包括现在的时间,类似的如 thisweek、this year等。比如,第9题,假设说话人是在星期二遇见他的老师,在星期五他这样说:
You’ll never guess who I met this week — my old teacher! We _____ for 20 years. 在此语境下,我觉得此处空白处应该用现在完成时。
如果将第9题的today换成yesterday,就应选C(过去完成时)。
不知我的想法对否,请专家赐教,谢谢!
你的分析已经很详细了,再作任何补充都显得有点多余!——完全同意你的分析思路!
但严格说来,上面的第 9 题编得不够严谨。虽然句子中有 today,但这个 today 与下面这类 today 的用法是不同的:
I haven’t done anything today. 我今天什么也没做。
I’ve had hardly anything to eat today. 今天我简直没吃什么东西。
面这两句中的 today 指的是今天至“现在”(即说话的时候)为止的一段时间,故连用了现在完成时(符合现在完成时表示“从过去持续到现在”的用法)。但第9题中的 today 显然并没有持续到“现在”(当事人说话的时候),比如假若是上午 8 点见到老师,晚上 10 点才说这话,那么“20年没见到老师”就属于“过去的过去”,就应该用过去完成时。当然,如果说话人认为从上午8点至晚上10点这点时间与“20年”未见面这段时间来比,可以忽略不计,故他用了现在完成时,那是另外一回事。
个人看法,不一定对,仅供参考吧!
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!