现在完成时练习题及答案解析
一、单项选择(30 题)
I ______ my keys. I can't find them anywhere.
A. lose
B. lost
C. have lost
D. will lose
She ______ in this school since 2018.
A. teaches
B. taught
C. has taught
D. had taught
—______ you ______ your homework yet
—Not yet.
A. Do; finish
B. Are; finishing
C. Did; finish
D. Have; finished
My father ______ to Beijing on business twice this year.
A. has been
B. has gone
C. went
D. will go
They ______ the museum and are on the way back to school now.
A. visit
B. visited
C. have visited
D. had visited
I ______ this book for a month. I must return it to the library.
A. borrowed
B. have borrowed
C. kept
D. have kept
The old man ______ in the small village all his life.
A. lives
B. lived
C. has lived
D. had lived
—Where is Tom
—He ______ to the playground. He'll be back in a few minutes.
A. has been
B. has gone
C. goes
D. went
She ______ a lot of new friends since she came to this school.
A. makes
B. made
C. has made
D. had made
We ______ each other since we graduated from university.
A. don't see
B. didn't see
C. haven't seen
D. won't see
My sister ______ the piano for three years and she can play it very well now.
A. learns
B. learned
C. has learned
D. had learned
—______ you ever ______ to the Great Wall
—Yes, I have.
A. Do; go
B. Did; go
C. Have; been
D. Have; gone
The film ______ for ten minutes when we arrived at the cinema.
A. has begun
B. had begun
C. has been on
D. had been on
I ______ my bike. I'm looking for it everywhere.
A. lose
B. lost
C. have lost
D. will lose
They ______ in Beijing for five years before they moved to Shanghai.
A. live
B. lived
C. have lived
D. had lived
—______ you ______ the English exam yet
—Yes, I have. I passed it yesterday.
A. Have; taken
B. Do; take
C. Did; take
D. Are; taking
The students ______ trees if it ______ tomorrow.
A. will plant; won't rain
B. will plant; doesn't rain
C. plant; won't rain
D. plant; doesn't rain
My mother ______ the housework yet.
A. didn't finish
B. doesn't finish
C. haven't finished
D. hasn't finished
He ______ the club since last month.
A. joined
B. has joined
C. has been in
D. had joined
We ______ about 2000 English words so far.
A. learn
B. learned
C. have learned
D. had learned
—How long ______ you ______ here
—For two years.
A. do; live
B. did; live
C. have; lived
D. had; lived
The train ______ already. You have to wait for the next one.
A. left
B. has left
C. had left
D. will leave
She ______ her homework and is watching TV now.
A. finishes
B. finished
C. has finished
D. had finished
My parents ______ to Canada. They will come back in two weeks.
A. have been
B. have gone
C. went
D. will go
I ______ this storybook several times. It's very interesting.
A. read
B. have read
C. am reading
D. will read
The meeting ______ for half an hour when I got there.
A. has started
B. had started
C. has been on
D. had been on
—______ you ______ the film before
—Yes, I saw it last week.
A. Have; seen
B. Do; see
C. Did; see
D. Are; seeing
He ______ in the factory since he left school.
A. works
B. worked
C. has worked
D. had worked
I ______ my lost watch yet.
A. didn't find
B. haven't found
C. don't find
D. won't find
She ______ a teacher for ten years.
A. becomes
B. became
C. has become
D. has been
二、用所给动词的适当形式填空(20 题)
I ______ (see) this movie twice. It's really interesting.
My parents ______ (be) to Beijing three times.
They ______ (not finish) their work yet.
She ______ (live) in this city since she was born.
The children ______ (clean) the classroom. It's very tidy now.
He ______ (join) the army two years ago. He ______ (be) in the army for two years.
I ______ (not hear) from my friend for a long time.
The rain ______ (stop). We can go out now.
She ______ (write) five books so far.
My brother ______ (study) English for six years.
They ______ (go) to the park. They'll be back in an hour.
The film ______ (begin) when we got to the cinema.
I ______ (lose) my pen. I can't find it anywhere.
He ______ (not come) to school yet.
We ______ (know) each other since we were children.
She ______ (visit) many places of interest in China.
The old man ______ (die) last year. He ______ (be) ill for a long time before his death.
I ______ (read) this book. I can return it to the library.
They ______ (build) a new bridge in this area recently.
She ______ (not see) her grandparents for a long time.
三、句型转换(10 题)
I have already finished my homework.(改为否定句)
I ______ finished my homework ______.
He has been to Shanghai twice.(对划线部分提问)
______ ______ ______ has he been to Shanghai
They have lived in Beijing for ten years.(对划线部分提问)
______ ______ have they lived in Beijing
She has gone to the library.(改为一般疑问句)
______ she ______ to the library
The students have cleaned the classroom.(改为被动语态)
The classroom ______ ______ ______ by the students.
I bought the book two weeks ago.(改为同义句)
I ______ ______ the book ______ two weeks.
He began to teach English in this school five years ago.(改为同义句)
He ______ ______ English in this school ______ five years.
They have visited the museum.(用 just 改写句子)
They ______ ______ ______ the museum.
The film has been on for half an hour.(对划线部分提问)
______ ______ has the film been on
I haven't seen him since last month.(对划线部分提问)
______ ______ haven't you seen him
答案解析
一、单项选择
C。“丢钥匙” 这个动作发生在过去,对现在造成的影响是找不到钥匙了,用现在完成时,结构为 have/has + 过去分词,主语 I 用 have,lose 的过去分词是 lost,所以选 C。
C。since 2018 是现在完成时的标志,强调从过去一直持续到现在的动作,主语 She 是第三人称单数,用 has taught,选 C。
D。yet 是现在完成时的标志词,用于一般疑问句,结构为 Have/Has + 主语 + 过去分词,所以选 D。
A。has been to 表示 “曾经去过某地”,现在已经回来;has gone to 表示 “去了某地”,还没回来。根据 “twice this year” 可知是去过两次,现在已经回来,选 A。
C。根据 “and are on the way back to school now” 可知他们已经参观完博物馆,对现在的影响是在回学校的路上,用现在完成时,选 C。
D。for a month 表示一段时间,borrow 是非延续性动词,不能与一段时间连用,要转换为 keep,其过去分词是 kept,现在完成时结构是 have/has + 过去分词,选 D。
C。all his life 表示从过去一直到现在,用现在完成时,主语 The old man 是第三人称单数,用 has lived,选 C。
B。根据 “He'll be back in a few minutes.” 可知他去了操场还没回来,用 have/has gone to,主语 He 是第三人称单数,选 B。
C。since she came to this school 是现在完成时的标志,主语 She 是第三人称单数,用 has made,选 C。
C。since we graduated from university 是现在完成时的标志,用 haven't seen,选 C。
C。for three years 是现在完成时的标志,主语 My sister 是第三人称单数,用 has learned,选 C。
C。ever 是现在完成时的标志词,“去过某地” 用 have/has been to,选 C。
D。when 引导的时间状语从句中,arrived 是过去式,“电影开始” 在 “我们到达电影院” 之前,是过去的过去,用过去完成时。begin 是非延续性动词,不能与 for ten minutes 连用,要转换为 be on,过去完成时结构是 had + 过去分词,be 的过去分词是 been,选 D。
C。“丢自行车” 这个动作发生在过去,对现在造成的影响是到处找,用现在完成时,选 C。
D。“在他们搬到上海之前” 是过去的时间,“在北京居住五年” 发生在 “搬到上海” 之前,是过去的过去,用过去完成时,选 D。
A。yet 是现在完成时的标志词,现在完成时的一般疑问句结构是 “Have/Has + 主语 + 过去分词”,take 的过去分词是 taken,选 A。
B。这是 if 引导的条件状语从句,遵循 “主将从现” 原则,主句用一般将来时 will plant,从句用一般现在时 doesn't rain,选 B。
D。yet 是现在完成时的标志词,用于否定句,现在完成时的否定结构是 haven't/hasn't + 过去分词,主语 My mother 是第三人称单数,用 hasn't finished,选 D。
C。since last month 是现在完成时的标志,join 是非延续性动词,不能与一段时间连用,要转换为 be in,现在完成时结构是 have/has + 过去分词,主语 He 是第三人称单数,用 has been in,选 C。
C。so far 是现在完成时的标志词,现在完成时结构是 have/has + 过去分词,learn 的过去分词是 learned,选 C。
C。For two years 是现在完成时的标志,现在完成时的特殊疑问句结构是 “特殊疑问词 + have/has + 主语 + 过去分词”,选 C。
B。already 是现在完成时的标志词,用 has left,选 B。
C。根据 “and is watching TV now” 可知她已经完成作业,对现在的影响是在看电视,用现在完成时,选 C。
B。根据 “They will come back in two weeks.” 可知父母去了加拿大还没回来,用 have/has gone to,主语 My parents 是复数,用 have gone,选 B。
B。several times 表示 “几次”,强调过去的动作对现在有影响,用现在完成时,选 B。
D。when 引导的时间状语从句中,got 是过去式,“会议开始” 在 “我到达” 之前,是过去的过去,用过去完成时。begin 是非延续性动词,不能与 for half an hour 连用,要转换为 be on,过去完成时结构是 had + 过去分词,be 的过去分词是 been,选 D。
A。before 是现在完成时的标志词,现在完成时的一般疑问句结构是 “Have/Has + 主语 + 过去分词”,see 的过去分词是 seen,选 A。
C。since he left school 是现在完成时的标志,主语 He 是第三人称单数,用 has worked,选 C。
B。yet 是现在完成时的标志词,用于否定句,现在完成时的否定结构是 haven't/hasn't + 过去分词,find 的过去分词是 found,选 B。
D。for ten years 是现在完成时的标志,become 是非延续性动词,不能与一段时间连用,要转换为 be,现在完成时结构是 have/has + 过去分词,be 的过去分词是 been,选 D。
二、用所给动词的适当形式填空
have seen。twice 是现在完成时的标志词,现在完成时结构是 have/has + 过去分词,see 的过去分词是 seen,主语 I 用 have,所以填 have seen。
have been。“去过某地几次” 用 have/has been to,主语 My parents 是复数,用 have been。
haven't finished。yet 是现在完成时的标志词,用于否定句,现在完成时的否定结构是 haven't/hasn't + 过去分词,finish 的过去分词是 finished,主语 They 用 haven't,所以填 haven't finished。
has lived。since she was born 是现在完成时的标志,主语 She 是第三人称单数,用 has lived。
have cleaned。根据 “It's very tidy now.” 可知孩子们已经打扫了教室,对现在有影响,用现在完成时,所以填 have cleaned。
joined; has been。two years ago 是一般过去时的标志,第一空用 join 的过去式 joined;for two years 是现在完成时的标志,第二空主语 He 是第三人称单数,用 has been。
haven't heard。for a long time 是现在完成时的标志词,现在完成时的否定结构是 haven't/hasn't + 过去分词,hear 的过去分词是 heard,主语 I 用 haven't,所以填 haven't heard。
has stopped。根据 “We can go out now.” 可知雨已经停了,对现在有影响,用现在完成时,所以填 has stopped。
has written。so far 是现在完成时的标志词,现在完成时结构是 have/has + 过去分词,write 的过去分词是 written,主语 She 是第三人称单数,用 has written。
has studied。for six years 是现在完成时的标志,主语 My brother 是第三人称单数,用 has studied。
have gone。根据 “They'll be back in an hour.” 可知他们去了公园还没回来,用 have/has gone to,主语 They 是复数,用 have gone。
had begun。got 是过去式,“电影开始” 在 “我们到达电影院” 之前,是过去的过去,用过去完成时,结构是 had + 过去分词,begin 的过去分词是 begun,所以填 had begun。
have lost。“丢笔” 这个动作发生在过去,对现在造成的影响是找不到笔,用现在完成时,所以填 have lost。
hasn't come。yet 是现在完成时的标志词,用于否定句,现在完成时的否定结构是 haven't/hasn't + 过去分词,come 的过去分词是 come,主语 He 是第三人称单数,用 hasn't come。
have known。since we were children 是现在完成时的标志,用 have known。
has visited。“去过很多地方” 强调过去的动作对现在有影响,用现在完成时,主语 She 是第三人称单数,用 has visited。
died; had been。last year 是一般过去时的标志,第一空用 die 的过去式 died;“在他去世之前生病很长时间” 是过去的过去,用过去完成时,第二空填 had been。
have read。根据 “I can return it to the library.” 可知已经读过这本书,对现在有影响,用现在完成时,所以填 have read。
have built。recently 是现在完成时的标志词,现在完成时结构是 have/has + 过去分词,build 的过去分词是 built,主语 They 是复数,用 have built。
hasn't seen。for a long time 是现在完成时的标志词,用于否定句,现在完成时的否定结构是 haven't/hasn't + 过去分词,see 的过去分词是 seen,主语 She 是第三人称单数,用
三、句型转换(10 题)
1. I **haven't** finished my homework **yet**. - 解析:现在完成时的否定句是在助动词have/has后加not,already常用于肯定句,否定句中常用yet,且放在句末。
2. **How many times** has he been to Shanghai - 解析:对次数“twice”提问,用how many times,表示“多少次”。
3. **How long** have they lived in Beijing - 解析:对“for ten years”这样表示一段时间的状语提问,用how long,询问“多长时间”。
4. **Has** she **gone** to the library - 解析:现在完成时的一般疑问句把助动词have/has提到句首,句中has是助动词,所以把Has提前,其他部分照抄。
5. The classroom **has been cleaned** by the students. - 解析:现在完成时的被动语态结构是have/has been +过去分词,原句主语是the students,动作是clean,变为被动语态后,原宾语the classroom作主语,谓语变为has been cleaned。
6. I **have had** the book **for** two weeks. - 解析:“bought”是非延续性动词,不能与“for two weeks”这样的时间段连用,要转换为延续性动词“have”,其过去分词是“had”,所以用have had。
7. He **has taught** English in this school **for** five years. - 解析:“began”是非延续性动词,“for five years”表示一段时间,要转换为延续性动词短语“teach English”,用现在完成时has taught。
8. They **have just visited** the museum. - 解析:just意为“刚刚”,用于现在完成时,放在助动词have/has之后,过去分词之前。
9. **How long** has the film been on - 解析:对“for half an hour”这样表示一段时间的状语提问,用how long。
10. **How long** haven't you seen him - 解析:对“since last month”这样表示从过去某一时间点到现在的时间段提问,用how long。现在完成时(Present Perfect Tense)讲义
一、基本概念
现在完成时主要用来表示过去发生的动作对现在造成的影响或结果,或者过去已经开始,持续到现在并且有可能继续持续下去的动作或状态。它强调的是过去与现在的联系。
独特记忆点 :像一个"时间桥梁",连接过去和现在。
二、四大核心用法(配生活化案例)
1 已完成的影响(Recent Impact)
强调动作已完成,但对现在有直接影响
I've lost my keys. (现在没钥匙进不了门)
She has published three novels. (现在是有成就的作家)
2 未完成持续(Unfinished Duration)
动作从过去持续到现在(常接since/for)
We have lived here since 2010. (现在还住这里)
He has worked as a teacher for 10 years. (现在仍是教师)
3 人生经历卡(Life Experience)
表达"曾经有过..."的经历(常接ever/never)
Have you ever eaten durian (询问人生体验)
I've never been to Africa. (截至现在的经历空白)
4 重复动作统计(Repetition Count)
过去重复多次的动作,可能继续发生
This phone has crashed five times today! (今天内反复发生)
I've watched this movie three times. (强调累计次数)
三、构成形式
现在完成时由 “助动词 have/has + 过去分词” 构成。其中,have 用于第一人称单数(I)、第一人称复数(we)、第二人称(you)和第三人称复数(they);has 用于第三人称单数(he、she、it)。过去分词的构成分为规则变化和不规则变化。
句型 公式 速记口诀
肯定句 主语 + have/has + 过去分词 "有have,有has,后面带过去分词"
否定句 主语 + have/has not + 过去分词 "否定中间夹not"
疑问句 Have/Has + 主语 + 过去分词? "疑问倒装看主语"
四、规则变化
一般情况下,在动词原形后直接加 -ed。例如:work - worked,play - played。
以不发音的 -e 结尾的动词,直接加 -d。例如:live - lived,hope - hoped。
以 “辅音字母 + y” 结尾的动词,先将 y 改为 i,再加 -ed。例如:study - studied,carry - carried。
以重读闭音节结尾,末尾只有一个辅音字母的动词,先双写这个辅音字母,再加 -ed。例如:stop - stopped,drop - dropped。
五、不规则变化
不规则动词的过去分词需要特殊记忆,没有固定的变化规则。例如:go - gone,do - done,see - seen,eat - eaten 等。常见不规则动词的过去式和过去分词变化表可单独整理记忆。
原形 过去式 过去分词 小贴士
be(是) am/is - was,are - were been be 动词的变化形式最特殊,需要牢记不同人称对应的过去式以及通用的过去分词形式
begin(开始) began begun -
break(打破) broke broken -
bring(带来) brought brought 类似 “ought” 结尾的还有 buy(bought,bought),think(thought,thought) ,可一起记忆
build(建造) built built “ild” 结尾的 build,过去式和过去分词形式一致,还有 spill(spilt,spilt)等
buy(买) bought bought -
catch(抓住) caught caught “aught” 结尾的 catch,teach(taught,taught)变化相同
come(来) came come -
do(做) did done -
draw(画) drew drawn -
drink(喝) drank drunk -
drive(驾驶) drove driven -
eat(吃) ate eaten -
fall(落下) fell fallen -
find(找到) found found -
fly(飞) flew flown -
forget(忘记) forgot forgotten -
get(得到) got got/gotten(美式英语常用 gotten) -
give(给) gave given -
go(去) went gone -
grow(生长) grew grown -
have(有) had had -
hear(听见) heard heard -
keep(保持) kept kept -
know(知道) knew known -
learn(学习) learnt/learned learnt/learned learn 的两种变化形式都正确,英式英语中 “learnt” 更常见,美式英语中 “learned” 更常用
leave(离开) left left -
let(让) let let -
lie(躺;位于) lay lain 躺(lie - lay - lain)和撒谎(lie - lied - lied)拼写一样但变化形式不同,可通过 “躺” 是不规则变化,“撒谎” 是规则变化来记忆
make(制作) made made -
meet(遇见) met met -
pay(支付) paid paid -
put(放) put put -
read(读) read(发音变化,/red/) read(发音变化,/red/) read 的原形、过去式和过去分词拼写一样,但读音不同,原形读 /ri d/ ,过去式和过去分词读 /red/
ride(骑) rode ridden -
run(跑) ran run -
say(说) said said -
see(看见) saw seen -
sell(卖) sold sold -
send(送;寄) sent sent -
show(展示) showed shown/showed show 的过去分词有两种形式,“shown” 更常见,在被动语态中常用 shown
sing(唱) sang sung -
sit(坐) sat sat -
sleep(睡觉) slept slept -
speak(说;讲) spoke spoken -
spend(花费) spent spent -
stand(站) stood stood -
swim(游泳) swam swum -
take(拿;取) took taken -
teach(教) taught taught -
tell(告诉) told told -
think(想;认为) thought thought -
throw(扔) threw thrown -
understand(理解) understood understood -
wake(醒来) woke woken -
wear(穿) wore worn -
write(写) wrote written -
六、常用时间状语
already(已经):常用于肯定句,通常位于助动词 have/has 之后,过去分词之前。例如:I have already finished my homework.(我已经完成了我的作业。)
yet(已经,还):常用于否定句和疑问句,位于句末。在否定句中表示 “还没有”,在疑问句中表示 “已经”。例如:
He hasn't come back yet.(他还没有回来。)
Have you seen the movie yet (你已经看过这部电影了吗?)
just(刚刚):表示刚刚完成的动作,常位于助动词 have/has 之后,过去分词之前。例如:She has just left.(她刚刚离开。)
ever(曾经):用于疑问句,表示 “曾经”,通常位于助动词 have/has 之后,过去分词之前。例如:Have you ever been to Beijing (你曾经去过北京吗?)
never(从不):表示从未发生过的动作,位于助动词 have/has 之后,过去分词之前。例如:I have never eaten sushi.(我从未吃过寿司。)
for + 时间段:表示动作持续的时间长度。例如:We have studied English for five years.(我们已经学习英语五年了。)
since + 时间点:表示从过去某一时间点开始一直持续到现在。例如:He has worked in this company since 2010.(他从 2010 年开始就在这家公司工作。)
七、现在完成时与一般过去时的区别
1、侧重点不同
现在完成时:强调过去发生的动作对现在的影响或结果,或过去开始并持续到现在的动作,与现在有联系。
一般过去时:单纯描述过去发生的动作或存在的状态,与现在没有联系,只强调过去的事实。
2、时间状语不同
现在完成时:常与 already、yet、just、ever、never、for + 时间段、since + 时间点等时间状语连用。
一般过去时:常与 yesterday、last week、in 2008、two days ago 等明确表示过去时间的状语连用。
3、例句对比
现在完成时:I have seen the film.(我已经看过这部电影了,现在对电影内容有了解,强调对现在的影响。)
一般过去时:I saw the film yesterday.(我昨天看了这部电影,只陈述昨天发生的看电影这个事实,与现在无关。)