请问现在完成时和一般过去时的区别

5个回答

  • 现在完成时和一般过去时的区别

    1.现在完成时和一般过去时都表示在过去完成的动作,但现在完成时强调这一动作与现在的关系,如对现在产生的结果、影响等,而一般过去时则表示动作发生在过去,一般不表示和现在的关系.试比较:

    ① Who has opened the door?谁把门开了?(现在门还开着)

    Who opened the door?谁开的门?(指过去,与现在无关.现在门是关着还是开着,没有说明.)

    ② — Have you had your lunch?你吃过午饭没有?(意即你现在不饿吗?)

    — Yes,I have.吃了.(意即我现在饱了,不要再吃了.)

    — When did you have it?你什么时候吃的?(说话人感兴趣的是“吃”这一动作发生在什么时候.)

    2.一般过去时常与具体的时间状语连用,而现在完成时通常与模糊的时间状语连用,或无时间状语.

    一般过去时的时间状语:

    yesterday,once,last week,...ago,in

    1980,in October,just now等具体的时间状语.

    现在完成时的时间状语:

    for,since,so far,ever,never,just,yet,

    till/ until,up to now,in past/last years,always等不确定的时间状语.

    共同的时间状语:

    this morning,tonight,this April,now,ever,before,already,recently,lately等.

    3.现在完成时表示持续到现在的动作或状态,动词一般是延续性的,如 live,teach,learn,work,study,know等.

    过去时常用的非延续性动词有come,go,leave,start,die,finish,become,get married等.eg.

    ① I saw this film yesterday.(强调看的动作发生过了.)

    I have seen this film.(强调对现在的影响,电影的内容已经知道了.)

    ② He has been in the League for three years.(在团内的状态可延续)

    He has been a League member for three years.(是团员的状态可持续)

    He joined the League three years ago.(三年前入团,joined为短暂行为.)

    句子中如有一般过去时的时间状语(如yesterday,last week,in 1960)时,不能使用现在完成时,要用过去时.

    (错) Tom has written a letter to his parents last night.

    (对) Tom wrote a letter to his parents last night.