英语完成时态

先看看这题啊:
These shoes ___ before Peter came.
A.had sold out B.have been sold out C.had been sold out

再问下:
have been doing
have done
两个有些什么区别?短暂性和持续性动词的完成时态分别怎么用?

比如说:
I have been bought the book for five years.
这句话对了吗?要错了的话怎么改????

C,鞋子在PETER来之前已经售完。

首先,鞋子与销售是被动关系,是人把鞋子卖掉的,对鞋子来说是被动,排除A,
B和C只是现在完成时和过去完成时的区别。句子意思:鞋子被卖完这个动作在PETER来之前已经完成,PETER来已经是过去时,所以卖鞋一定是过去的过去,所以不能用现在完成时,只能选C

HAVE BEEN DOING持续正在做某事,这个状态已经持续叻一段时间
HAVE DONE已经完成,只是表示动作完成的一个状态,并没有持续

I HAVE BOUGHT THE BOOK FOR FIVE YEARS。 这本书我已经买叻5年叻。 I BUY THE BOOK, 我和买是主动关系,不用被动语态,书和买才是被动关系,而且买只是短暂动词,不能作为表示状态,所以买这个动作不能持续,不能与具体的一段时间连用。 本句也可以这样表达 THE BOOK WAS BOUGHT (BY ME) FOR FIVE YEARS AGO.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-06-18
1.选C.因为鞋是在peter到之前就售出了,而peter到用的是came一般过去时,过去的过去则是过去完成时,而鞋是被人售出,所以用被动语态had been。

2.have been doing是完成进行时,表示从过去到现在一直持续的动作,而have done 表示过去某个时段完成的动作,或状态。

3.I have been bought the book for five years错误,该句主语是I,是执行买书的主体,应用主动形态。正确的应为:i have bought the book for five times这本书我已经买了5次.
第2个回答  2007-06-18
选C用过去完成时,因为时间状语从句用的是过去时,所以主句应该用过去完成式
have been doing是现在完成进行时态,重点强调do这个动作的持续状态,have done是现在完成时,重点说明do这个动作已经完成.短暂性动词不能用完成进行时态,持续性动词可以
错了,正确的表达是I have bought the book for five years.或The book has been bought by me for five years.
第3个回答  2019-02-22
我说一下第二句为什么用形容词好了,感觉第一句没什么好说的
因为for
ten
years可以看出需要的是一个表示状态的,而不是动作瞬间的,
die是动作,而be
dead就是它对应的状态
第4个回答  2020-02-14
had
done
现在完成进行时:
have
done
过去完成时完成时,不要太纠结语法:
have
being
done
兄弟