英语语法 学英语,练听力,上听力课堂! 注册 登录
> 英语语法 > 英语语法大全 > 张道真实用英语语法 >  内容

第8章 时 态 8.5 现在完成时和现在完成进行时

所属教程:张道真实用英语语法

浏览:

2019年04月29日

手机版
扫描二维码方便学习和分享

8.5 现在完成时和现在完成进行时

8.5.1 现在完成时的基本用法

1) 现在完成时表示一件已发生的事,这事往往与现在情况有联系:

I've lost my key. 我的钥匙丢了。(因此无法进屋)

She's gone to town. 她进城去了。(现在在城里)

I've got a letter from my aunt. 我收到姨母一封信。(因此知道她的近况)

The lift has broken down. 电梯坏了。(因此我们得爬楼梯)

Peter has had a bad car crash. 彼得出了严重车祸。(可能送医院了)

I've washed my car. 我洗过车了。(因此很干净)

He hasn't come back yet. 他还没回来。(我们还在等他)

Have you had your supper yet?——Yes, I have. 你吃晚饭了吗?——吃过了。(不饿了)

2) 常可和just, already, yet, recently, over这类副词连用:

He's just left. 他刚走。

Has he phoned you yet?——No, not yet. 他给你打电话了吗?——还没有。

Jane has rung me up three times this morning already. 简今天早上已给我打过三次电话。

The rain has already stopped. 雨已经停了。

Have you ever talked to him about it? 你曾和他谈过这事吗?

Have you seen Lewes recently? 你最近见到过路易斯吗?

I have never broken my word. 我从未违背过自己的诺言。

He still hasn't finished his work. 他的工作还没干完。

There have been some changes lately. 近来有些变化。

3) 也可和表示从过去某时到现在这段时间的状语连用:

I haven't seen him today. 今天我没见过他。

How many letters have you received this week? 这星期你收到多少封信?

They have turned out over 1,000 cars this month. 这个月他们生产了一千多辆汽车。

He has made several trips to Paris this year. 今年他去过几趟巴黎。

I've seen little of her in the past few years. 过去几年中我很少见到她。

So far he has done very well at school. 到现在为止他在学校表现很好。

Up to now, the work has been easy. 到现在为止,这工作还算容易。

4) 还常和for及since引导的状语或与how long连用:

I haven't seen you for ages. 我好久没见到你了。

He hasn't cleaned his room for months. 他有好几个月没打扫这房间了。

We've lived here for over ten years. 我们在这里住了十多年了。

I haven't seen her since June. 六月以来我就没见过她。

He has worn glasses since his childhood. 他从小就戴眼镜。

Has he written since he left home? 他离家之后来过信吗?

How long have you known her? 你认识她多久了?

5) 也常常单独使用不需任何状语:

She has found a new job. 她找到了一份新工作。

We've sent some people to help them. 我们已派了几个人去帮助他们。

We've put up thousands of tall buildings. 我们盖起了数以千计的高楼。

Which side has won? 哪边赢了?

They have taken the injured people to hospital. 他们把伤者送进了医院。

I'm sorry, I've broken your cup. 对不起,我把你的杯子打破了。

I wonder if she's got well. 我不知道她是否已经痊愈。

Who has taken my dictionary away? 谁把我的字典拿走了?

6) 这个时态还可表示持续到现在的状态:

How long has he been ill? 他病了多久了?

The strike has continued for several weeks. 罢工已持续了几个星期。

He has lived here all his life. 他一辈子都住在这里。

We've been good friends since we were children. 我们从小就要好。

They have loved each other all these years. 这些年他们一直很恩爱。

I have never believed those theories. 我从不相信这些理论。

I have known them for many years. 我认识他们很多年了。

8.5.2 现在完成时和一般过去时的比较

1) 这两个时态都谈已发生的事,主要差别是现在完成时表示的动作与现在有关系,或是对现在有影响,或谈现在以前这一段时间里发生的事,而一般过去时单纯谈过去的事,与现在没有联系。因此凡是有过去时间状语时,只能用过去时:

She was here a minute ago. 一分钟之前她还在这里。

They gave it to me just now. 这是他们刚才给我的。

When did you come in? 你什么时候进来的?

I woke up at six. 我六点醒的。

凡是单纯谈过去的事,与现在毫无联系时也多用过去时,试比较下面几组句子:

2) 有时同一个动作,根据具体情况,可能需用不同的时态,例如:

3) 有些动作(显然是过去的动作),尽管没有时间状语,仍需用过去时:

Did you know that he was going to be married? 你知道他要结婚了吗?

I didn't know you were in London too. 我不知道你也在伦敦。

When did you get back? 你什么时候回来的?

I heard you were coming to China this autumn. 我听说你今年秋天要到中国来。

Why did you buy this? 你为什么买这个?

Did you see anything interesting at the exhibition? 在展览会上你看到什么有趣的东西吗?

Why did you get up so early? 你为什么起得这么早?

How did you like the show? 你觉得演出如何?

这时不宜用现在完成时。

8.5.3 有关现在完成时的几个问题

1) have gone to和have been to的差别:

have gone to表示“到某地去了”,因此人还在那里:

She has gone to live abroad. 她到国外居住了。(她现在国外)

The kids have gone to the zoo. 孩子们到动物园去了。(他们在动物园)

Where has Mary gone? 玛丽到哪里去了?(她在哪里?)

have been(to)表示“到(来)过某地”:

Where have you been?——I've been to the cinema. 你到哪儿去了?——我去看电影了。

Have you ever been to Hong Kong? 你到过香港吗?

I've been to Europe several times. 我到欧洲去过几次。

Who's been here? 谁来过这里?(人已不在)

Has she ever been in China? 她到过中国吗?

后面还可跟不定式:

I've been to see my grandmother. 我去看我奶奶了。(现已回来)

She's been to do some shopping. 她出去买东西了。

2) 由since引导的从句中的时态:

由since引导的从句一般用过去时(主句谓语用现在完成时):

We've been friends ever since we met at school. 自在学校相遇以来,我们一直是朋友。

Much has changed since I was there last time. 自我上次到那里之后发生了许多变化。

当表示“有多少时间”时,主句谓语可用一般现在时:

It's two years since I left home. 我离家已经两年了。

How long is it since you came here last time? 自你上次来这里之后已经多久了?

在从句中有时可用现在完成时,特别是动词为be时:

I have been terribly busy since I've been back. 我回来之后一直忙得要命。

She has seldom been out since she has been ill. 她生病以来很少出去。

It's some time since I've wirtten to her. 有相当时间我没给她写信了。

3) 在时间及条件从句中需用现在完成时代替将来完成时:

I'll wirte a preface when I've finished the book. 书写完后我将写一篇序。

Don't go away until I have finished speaking to your father. 在我和你父亲谈完话之前不要走开。

I'll tell them after you have left. 你走后我将告诉他们。

If he hasn't got up, don't wake him. 如果他还没起床,不要叫醒他。

Don't rush him unless he's already got everything ready. 除非他把一切都准备好了,否则不要催促他。

4) 和time一道用的情况:

This (It) is the first time I have seen a pagoda. 这是我首次看到宝塔。

It is only the second time he's been in a palace. 这只是他第二次进皇宫。

That's the third time he's quarrelled with her in a week. 这是一星期中他第三次和她吵架。

This is the fourth time she's been out with him. 这是她第四次和他一起外出。

在下面句型中也可用现在完成时:

This is the best tea I have ever drunk. 这是我喝过的最好的茶了。

This is the most interesting book I have ever read. 这是我看过的最有意思的书。

This is the easiest job I have ever had. 这是我干过的最容易的工作。

It's the first good meal I've had for ages. 这是好久以来我吃过的第一顿好饭。

5) have got的特殊用法:

have got在形式上是现在完成时,在意思上却和have相同:

Have you got (=Do you have) a timetable? 你有时刻表吗?

She hasn't got any relations. 她没有什么亲属。

I've got only another three minutes. 我只有三分钟了。

What have you got against me? 你对我有什么意见?

I've got a bad headache. 我头疼得很厉害。

I've got a cold. 我着凉了。

You've got a new dress on. 你穿新衣服了。

I've got a few things to see to. 我有几件事要办。

6) have got to和have to意思相同:

have got to和have to意思一样,表示“不得不”:

You've got to be careful. 你得当心。

That's what we've got to do. 这是我们不得不做的事。

You've got to keep this in mind. 你必须把这牢记在心上。

Have you got to leave so soon? 你一定要这么早走吗?

在口语中,have有时可以省略:

We got to make ends meet. 我们得收支相抵。

8.5.4 现在完成进行时的用法

1) 现在完成进行时表示一个持续到现在的动作(这动作可能刚停止,也可能还在进行):

I've been waiting (for) an hour and he still hasn't turned up. 我等了一个钟头,他还没来。

What have you been doing all these years? 这些年来你一直在干什么?

I'm very tired. I've been working all morning. 我很累,我干了一上午了。

I've been looking for my dog and still haven't found it. 我一直在找我的狗,还没有找到。

Your fingers are brown. You've been smoking too much. 你手指都黄了,你抽烟太多。

Tom has been digging in the garden. I've been helping him. 汤姆一直在花园里挖土,我在帮他。

2) 这个时态常和how long, long这类状语一起用:

How long have you been wearing glasses? 你戴眼镜有多少年头了?

How long has he been doing this work? 这工作他干多久了?

Have you been waiting long? 你等了很久吗?

This has been going on all day long. 这已进行了一整天了。

She's been expecting a long distance call all night long. 她等长途电话等了一夜了。

还可以和since及for引导的状语一起用:

We've been living in this city since 1980. 从1980年起我们一直住在这座城市。

They have been quarrelling ever since they got married. 自结婚以来他们一直争吵不休。

It has been raining for two hours now. 雨已经下了两个小时了。

Her phone has been ringing for ten minutes. Why doesn't she answer it? 她的电话铃响了十分钟了,她为什么不接呢?

3) 在不少情况下这动作和现在状态有联系:

I've been shopping all day and I haven't a penny left. 我买了一天的东西,身上一文钱都不剩了。

Her eyes are red. Has she been crying? 她眼睛红红的,是不是哭来着?

He is out of breath. He's been running. 他气喘吁吁,他一直在跑。

Aren't you tired? You've been standing for two hours. 你不累吗?你站了两个钟头了。

4) 有时表示动作的重复:

He hasn't been eating regularly recently. 近来他吃饭不规律。

He has been coughing a lot lately. He ought to give up smoking. 最近他一直咳嗽,他应当戒烟。

I've been using this typewriter for 6 years. 这台打字机我已用了六年。

You've often been making mistakes like this. 你老犯这样的错误。

8.5.5 现在完成时和现在完成进行时的比较

1) 这两个时态的主要差别是,现在完成时表示动作业已完成,而完成进行时却不一定如此:

2) 许多静态动词都只能用于完成时而不能用于完成进行时:

I've known that for a long time. 这事我已知道很久了。

The strike has lasted six months. 这次罢工已持续了六个月。

Nobody has seen him since last week. 从上周起就没人见到过他。

We've had terrible weather for nearly two weeks. 几乎有两星期天气都很恶劣。

They've owned the house for many years. 这房子他们已拥有许多年了。

I've always thought you're right. 我一向认为你是对的。

但当动词的意思发生转变时也可能用于完成进行时:

I've been thinking of doing so for a long time. 我好久以来一直想这样做。

Tom has been seeing about a work permit for you. 汤姆一直在设法帮你取得工作许可证。

Which judge has been hearing the case? 哪位法官在审这个案子?

She has been having a tooth out. 她在拔牙。

The children have been looking forward to this holiday for months. 孩子们好几个月来一直盼望着这个节日。

want这个动词有时可用于完成进行时,表示“一直想”

You're the very man I've been wanting to meet. 你正是我一直想见的人。

3) 有少数动词用两种时态都可以,意思差别不大,如:

强调时间长度时用完成进行时较好:

I've been coughing all night. 我咳了一整夜。(比I've coughed all night.更强调咳得久)

All the time she's been sitting there in silence. 她一直静坐在那里。

All these years we've been trying to get in touch with him. 这些年来我们一直在设法和他联系。

He's been hoping for a raise in salary all the time. 他一直盼望着加薪。


用户搜索

疯狂英语 英语语法 新概念英语 走遍美国 四级听力 英语音标 英语入门 发音 美语 四级 新东方 七年级 赖世雄 zero是什么意思宁波市泗洲家园英语学习交流群

  • 频道推荐
  • |
  • 全站推荐
  • 推荐下载
  • 网站推荐