有一读者问如何做这道题:
(1)— How long_________each other before they_________married?
— For about a year.
A. have they known; get
B. did they know; were going to get
C. do they know; are going to get
D. had they known; got
A 不可选,因为how long have they known each other的意思是:他们到现在为止已经相识了多久,而before they get married是指将来,其意是:在他们(将要)结婚之前。将这两种意思连在一起显然是讲不通的。
B 不但讲不通,而且有用法错误。之所以讲不通是因为did they know与were going to get所指的时间前后不对头。前者指过去,后者指过去将来,将此二者连在一起有什么意义呢? 用法有误乃指的是did they know。在英语里,动词know用于表示认识多久时,需用其完成时态,不可用其一般时态,如:
(2)Have you known him long?
(3)When she had known me for a year, she invited me to tea.
所以,在这里说how long did they know each other是错误的。
C 也是错误的。其错误的性质与B完全一样。只不过其所指的时间不同于B罢了。
只有D 是正确答案。这项选择,不论在语法上还是在意义上都没有错。had known是一过去完成式,表示过去的过去,即发生在过去一般时got之前。这样,时间的前后顺序清楚了,全句的意思自然明了,与其下面的答话也就贯通了。
