各位网友好,一直弄不清楚,这个第8题为什么不用did进行提问,因为问问题的时候,他也不知道是完成时,然后,应该用did进行提问吧,后面正确答案又不是did,有点纠结,麻烦各位网友能够帮忙解答?!
您好,Where _____ John _____? To the library. He _____ there for an hour.
A)has ... been; has gone
B)has ... gone; has been
C)did ... go; went
D)did ... be; went
您好,您提到的问句使用 did,其实是可以的。这一句是可以使用 Where did John go? To the library. 但问题并不在于问句,而是在于答句。而且答案的配套导致了答案是 B,而不是 C 或是 D。
之所以是这样的是因为(一般过去时)通常强调的是过去的一个时间点,通常和一个表过去(时间点)的时间状语共同使用,比如 last week,an hour ago;而不能和表(时间段)的共同使用。比如答句可以是 He went there an hour ago. 没有问题,但却不能用 He went there for an hour. 而(完成时态)是可以和表(时间点)和(时间段)的时间状语共同使用,比如 He has been there for an hour;He has been there since an hour ago. 这两种用法都没有问题。因为答句限制了必须使用(完成式),所以答案 C 和 D 就变得不恰当了。
而至于 has been 和 has gone 的区别,其他网友已经提到了,大部分情况下,has gone 是(尚未回来),而 has been 是(已经回来),但这个不是绝对的,因为 has been 也可以表示(尚未回来)【实际上在句中,He has been there for an hour. 表示他待在那里已经一个小时了,尚未离开,也就还没回来。】,但 has gone 基本上就是(尚未回来,在路上)。所以相比较:
A)Where has John been? To the library. He has gone there for an hour.
B)Where has John gone? To the library. He has been there for an hour.
假如比较这两个句子,汉语翻译是不一样的:
A)John 到哪里去了?图书馆。他已经去了一个小时了。
B)John 去哪里了?图书馆。他在那里已经一个小时了。
has gone 通常用在去某地尚未回来,或是正在去某地的路程中,尚未到达某地。所以很明显, He has gone there for an hour. 的语义是不对的,这个句子表示花了1个小时到图书馆。所以通常会说 He has gone to the library. 表示正在去图书馆的路上。
所以把句子重写:
A)John has been to the library. He has gone there for an hour.
(约翰已经去了图书馆。他去了1个小时了。)
B)John has gone to the library. He has been there for an hour.
(约翰去了图书馆。他在那里呆了1个小时了。)
语义来说,B是正确的,而A不正确。
但用 did 是没有问题的,但答句需要改成:
Where did John go? To the library. He went there an hour ago.
1.选择时态关键看时间。
2. 句子的时间是for an hour,这是表示延续的时间,只和完成时连用,所以不选CD(一般过去时只和具体的过去的时间连用)。
3. has been意思到过某地或者在哪里?has gone意思是去了某地,所以选A,不选B。
如果用了过去时,就表示过去去过的含义,和现在是没有关系的,不表示现在有没有回来,所以,如果是表示死者的动作,就不可能用到现在完成时,只可能用到一般过去时。而这里表示“去而没有回来”,当然用go的现在完成时形式。如果表示“去了多久”,就不能用go的现在完成时形式,而要用be动词的现在完成时形式。如果曾经去过某个地方,已经回来了,也要用be动词的现在完成时形式,即has been to。并且,go的现在完成时形式只能用于第三人称。
希望我能帮助你解疑释惑。
等到了图书馆,你发现他已经在那儿一个小时了。所以他不是说发生在过去时候的事情,所以你不能用过去的助动词did。然后第一句一开始不知道选择什么样的时态,但是从第二句的答语来看,就是说到图书馆,他已经在那儿一个小时了,也就是是说是一个完成的时态持续的,所以用has been,然后再往前推,那问的就是约翰去哪儿了?你问的时候他已经不在了,所以可以完成时态,他去了哪儿?
拓展:
has/have been to 表示已去某地并且已回
has/has gone to 表示已去某地但是未回