完成时态has和had的用法什么时候用has什么时候用had-查字典问答网
分类选择

来自孙树栋的问题

  完成时态has和had的用法什么时候用has什么时候用had

  完成时态has和had的用法

  什么时候用has什么时候用had

1回答
2020-06-07 23:37
我要回答
请先登录
杜先进

  去完成时过去完成时的基本概念和形式

  过去完成时(pastperfecttense)表示在过去某一时间或动作以前已经完成了的动作.简言之,过去完成时所表示的时间就是“过去的过去”.过去完成时由助动词had+过去分词构成.

  过去完成时的用法

  1)过去完成时表示在过去某一时间或动作以前业已完成的动作.这个过去的时间可以用by,before等介词短语或一个时间状语从句来表示.如:

  Bytheendoflastweekwehadlearnedtenlessons.到上周末为止,我们已经学了十课书.

  HehadlearnedsomeEnglishbeforehecametotheinstitute.他来学院之前学过一些英语.

  Ididn’tgotothefilmbecauseIhadseenittwice.我没去看电影,因为这片子我已看过两次了.

  WhenIhadgoneovermylessonsItookarest.我复习完功课之后,休息了一会儿.

  IgavemylittlesistertheflowersthatIhadboughtforher.我把给妹妹买的花送给她.

  Intheexhibitionhesawmanyoilpaintingsthathehadneverseenbefore.他在展览厅里见到许多过去从未见过的油画.

  2)过去完成时可以表示由过去某一时间开始,一直延续到过去另一时间的动作,常和for(有时可以省去)或since构成的短语或since引导的从句连用.如:

  Itrainedyesterdayafterithadbeendryformanymonths.在天旱了好几个月之后,昨天下雨了.

  BytheIreadhisnewbook,Ihadknownhimforalongtime.到我读他的新书时,我早就知道他了.

  HesaidthatgreatChangeshadtakenplaceinhishometownsince,1980.他说7980年以来他的家乡大变样了.

  [注]当一个由when,before,after,assoonas等连词引导的从句所表示的动作和主句的动作紧接时,两个动作均可用“一般过去时”来表示.如:

  Wehadbreakfastafterwedidmorningexercises.做完早操后,我们吃早饭.

  WhenIfinishedsupper,Itookawalk.我晚饭后就去散步.

  Thetrainstartedtomovejustbeforehereachedtheplatform.他到月台时火车刚开走.

  Theystartedploughingassoonastheygottothefields.他们一到地里就开始耕地.

  将来完成时的基本概念和形式

  将来完成时(futureperfecttense)表示在将来某一时间之前所完成的动作.它的形式由shall(第一人称)或will(第二、三人称)加have再加过去分词所构成.美国英语一律用will.

  将来完成时的用法

  将来完成时表示在将来某一时间以前已经完成的动作.如:

  Bytheendofthisweek,Ishallhavefinishedthebook.到本周末,我将读完这本书.

  Bythistimetomorrowtheywillhaverepairedthemachine.明天这时候,他们将修好这台机器.

  ThechildrenwillhavegonetosleepbythetimeWegethome.到我们回家时,孩子们将已睡了.

  Whenyoucometonightateighto'clock,Ishallhavewrittenmypaper.你今晚八点钟来时,我将会写完文章了.

  BynextyearourteacherwillhavetaughtEnglishfortwentyyears.到明年我们的老师将已教二十年英语了.

  [英语语法手册]完成进行时态

  过去将来完成时

  过去将来完成时(pastfutureperfecttense)表示在过去将来某一时间以前已经完成的动作.它的形式由should(第一人称)或Would(第二、三人称)加have再加过去分词构成.美国英语一律用Would.

  用法举例:

  Hesaidhewouldhavepaidmebackthemoneybytheendoftheweek.他说将在周末前还我钱.

  Wetoldhimthatweshouldhavereturnedtothecampbyfouro'clock.我们告诉他我们将于四点前回营地.

  IhopedshewouldhavefinishedtheworkbeforeIgotback.我希望她在我回来之前做完那活儿.

  种类

  完成进行时有现在完成进行时、过去完成进行时、将来完成进行时和过去将来完成进行时四种.

  现在完成进行时的用法

  1)表示动作从过去某一时间开始一直延续到现在.现在这个动作可能已经终止,也可能仍然在进行着.如:

  Ihavebeenwaitingforyoufortwohours.我等了你两个小刊(动作不再延续下去)

  Ithasbeenrainingforthreehours.雨已经下了三小时了.(动作可能延续)

  Hehasbeenworkingonthepaperallday.他整天都在写论文(动作是否延续下去,由上下文决定.)

  HowlonghaveyoubeenlearningEnglish?——IhavebeenlearningEnglishfortwoyears.你英语学多久了?——我们学了两年了.(动作可能延续)

  Whyareyousodirty-I'vebeenplayingfootball.你身上怎么这样脏?——我刚才踢足球了.(动作不再延续下去)

  2)有些不能用现在进行时态的动词,如be,havelike,love,know,see,hesr等,同样也不能用现在完成进行时,而只能用现在完成时.如:

  Shehasbeenillforalongtime.她已经病了好久了.

  Ihavenotseenyouforages.我好久没有见到你了.

   

2020-06-07 23:41:34

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •