英语语法 — 练习

Englische Zeitformen üben:60 道英语时态练习,附答案

60 道英语时态练习,每题都有答案和一句话的理由 — 按照德语母语者真正会栽跟头的六组对立来编排。

FlexiLingo 团队
2026年9月25日
18 分钟阅读
在这里练

在真实视频里看一遍

FlexiLingo 视频库的每个视频都有可点击字幕和完整文稿。点任意单词即可查看释义、听发音,并留作复习。

打开视频库

1这 60 道练习该怎么做

这一页不再讲一遍英语时态体系,而是让你动手用它。六十个句子,每句都有答案和一句话的理由,而且全部对准德语和英语真正分岔的那些地方。

如果你缺的是总览 — 十二个时态的构成、信号词和例句 — 请先看我们的英语时态总览。本页假定你已经见过这些形式,只问一个问题:这句该用哪一个,为什么?

先把答案写在纸上或笔记里,再往下滚动。脑子里「知道」和把形式写出来是两回事。
做完一整组再看答案。不要一句一对 — 那样你是在改自己,而不是在做判断。
每做错一题,就把理由念出来。错误几乎从来不在形式上,而在你事先没问自己的那个问题上。
把每个做错的句子单独记一份清单,并抄一遍正确版本。这份清单才是你真正的学习材料。
三天后回来,只重做你错得最多的那一组。

一个晚上做完六十题,不如六个晚上每次十题。分组是特意这样切的:一组就是一次练习。

2为什么偏偏是这六组对立

德语母语者在英语里犯的时态错误并不随机。他们总是犯同样的六个,而每一个都有清楚的原因:在这个位置上,德语不做英语强制要求的区分 — 或者反过来。

德语只有一个现在时。「Ich arbeite」既是「I work」也是「I am working」。带「am」的进行形式(「Ich bin am Arbeiten」)属于地区性口语;德语语言研究所指出,它是一步步才进入语法书的。而英语在每一个句子里都逼你做选择。
德语 Perfekt 能带已结束的时间状语,英语 Present Perfect 不能。「Ich habe ihn gestern gesehen」是完全正确的德语 — 在口语里甚至是常规形式,而 Präteritum 主要用于书面,在南部几乎消失。正因如此,几乎每个德语母语者迟早都会写出「I have seen him yesterday」。
德语的「seit」配现在时:「Ich wohne seit 2020 hier.」英语则要换时态(「I have lived here since 2020」),而且把「seit」拆成两个词:「since」指起点,「for」指时长。
德语有过去完成时,但日常里常被省略,因为「dann」「danach」「vorher」已经交代了顺序。英语在德语靠一个副词应付的地方,要求用 Past Perfect。
说将来时,德语多半直接用现在时。德语语言研究所的说法是:与名称给人的印象相反,德语谈论将来时通常用现在时而不是将来时。英语却有三种彼此竞争的将来形式,而「I call you tomorrow」不在其中。
德语条件句里,「würde」形式也可以出现在 wenn 从句中 — 「wenn ich mehr Zeit haben würde」在口语中很常见,尽管语言指南更推荐「hätte」。在英语里,「If I would have」纯属错误,而且是考试中代价最高的那一个。

下面的六组完全按这份清单排列。每组先用两句话说清差别,然后是练习,然后是带理由的答案。

你在这里练的不是十二个时态,而是六个判断 — 每一个都是你的德语会在耳边低声给出错误提示的地方。

3Present Simple 还是 Present Continuous — 练习 1 到 10

德语有一个现在时,英语有两个。「Ich arbeite bei einer Spedition」和「Ich arbeite gerade」在德语里结构相同,在英语里却是「I work for a freight company」和「I am working right now」。所以问题从来不是「arbeiten 怎么说」,而是:这是一条规律,还是一个此刻的快照?

Present Simple 用于习惯、事实、时刻表和一切长期成立的内容。Present Continuous 用于此刻正在进行的事、临时状态,以及跟「always」连用时表达的不满。状态动词不在其列:know、want、believe、understand、belong、own 描述的不是过程,因此不加 -ing。

练习 1 到 10:把动词填成正确的现在时形式。

1. Right now she ____ (talk) to a client, so she cannot take your call.
2. Our office ____ (open) at eight every morning.
3. Look — it ____ (rain) again.
4. Water ____ (boil) at 100 degrees Celsius.
5. I ____ (not understand) this clause in the contract.
6. This month I ____ (work) at the Vancouver branch, but normally I am in Toronto.
7. He ____ (always / forget) his badge. (对某个习惯的不满)
8. I ____ (know) the answer.
9. She ____ (have) lunch at her desk at the moment.
10. My train ____ (leave) at 6:40 every evening.

答案 1 到 10

1. is talking — 「right now」要求进行体;德语这里用的present和第 2 句完全一样。
2. opens — 「every morning」表示习惯,所以用 Present Simple。
3. is raining — 事情正发生在此刻。
4. boils — 普遍成立的事实,不是正在进行的过程。
5. do not understand — 「understand」是状态动词,不加 -ing。
6. am working — 对常规的一次临时例外,而不是常规本身。
7. is always forgetting — 「always」加进行体表达的是不满,而不是中性的习惯。
8. know — 状态动词;英语里没有「I am knowing」。
9. is having — 这里「have」是「吃」的意思,属于动作,可以加 -ing。
10. leaves — 时刻表和固定时间用 Present Simple,即使指向将来。

最快的检验:把「此刻」塞进德语句子里还通顺吗?通顺的话,英语几乎一定要用 -ing 形式。

4Present Perfect 还是 Past Simple — 练习 11 到 22

这是最大的一关。在口语德语里,Perfekt 是常规的过去形式,而且毫无障碍地带上已结束的时间状语:「Ich habe ihn gestern gesehen.」照着译,就会写出「I have seen him yesterday」 — 错了。英语禁止 Present Perfect 与已结束时间同现。

要问的不是「什么时候发生的」,而是:发生的那段时间结束了吗?「Yesterday」「last Monday」「in 2019」「two weeks ago」都已结束 — Past Simple。「Today」「this year」「since March」「ever」「yet」「already」「so far」仍然开放或延伸到现在 — Present Perfect。

练习 11 到 22:Present Perfect 还是 Past Simple?

11. I ____ (see) him yesterday.
12. I ____ (already / send) the invoice, so you can pay it now.
13. She ____ (move) to Calgary in 2019.
14. ____ you ever ____ (be) to Vancouver?
15. We ____ (not finish) the report yet.
16. When ____ you ____ (start) this job?
17. He ____ (lose) his keys, so he cannot get into the flat.
18. Last Monday the client ____ (call) three times.
19. I ____ (live) in this city since March.
20. My grandfather ____ (work) as a carpenter for forty years. (祖父已经去世)
21. The price of coffee ____ (rise) twice this year. (这一年还没过完)
22. They ____ (sign) the contract two weeks ago.

答案 11 到 22

11. saw — 「yesterday」是已结束的时间。德语 Perfekt 可以这样用(「Ich habe ihn gestern gesehen」),英语 Present Perfect 不行。
12. have already sent — 没有指明时间点,重要的是此刻仍然成立的结果。
13. moved — 「in 2019」是已结束的时间点。
14. Have ... been — 没有时间标记的人生经历;「ever」是信号词。
15. have not finished — 「yet」的意思是:到现在还没有,这段时间仍在继续。
16. did ... start — 「When」问的是时间点,而时间点必须用 Past Simple。
17. has lost — 后果此刻可见:他进不了门。
18. called — 「last Monday」已经结束。
19. have lived — 「since March」一直延伸到现在。德语这里用现在时:「Ich wohne seit März in dieser Stadt.」
20. worked — 这段时间已经结束,因为祖父已经去世。
21. has risen — 「this year」还在进行,时间段仍然开放。
22. signed — 「ago」永远搭配 Past Simple。

只要句中有一个词指明了已结束的时间段,Present Perfect 就被排除 — 无论事情多近。「I have seen him five minutes ago」和用「yesterday」一样错。

5Present Perfect、Present Perfect Continuous 与 since/for — 练习 23 到 32

德语的「seit」在这里一次制造两个问题。第一,它配现在时:「Ich warte seit Dienstag」 — 英语是「I have been waiting since Tuesday」。第二,一个德语词覆盖了英语的两个:「since」用于起点(since Tuesday、since 2014、since breakfast),「for」用于时长(for three years、for six months、for an hour)。

此外还要在两种完成形式之间选择。Present Perfect 强调结果或数量:「She has written six emails.」Present Perfect Continuous 强调活动仍在进行,或刚刚停下并留有痕迹:「She has been writing emails all morning.」状态动词在这里同样用简单形式。

练习 23 到 32:填入动词形式;出现第二个空时,还要选 since 或 for。

23. I ____ (wait) for an answer since Tuesday.
24. She ____ (write) six emails this morning.
25. We ____ (know) each other ____ 2014.
26. He ____ (work) here ____ three years.
27. Your shoes are soaked — ____ you ____ (run)?
28. I ____ (read) that report three times.
29. They ____ (live) in Montreal ____ six months now.
30. How long ____ you ____ (study) English?
31. She ____ (not eat) anything ____ breakfast.
32. I ____ (try) to reach you all morning.

答案 23 到 32

23. have been waiting — 一个从星期二开始、至今仍在继续的活动。
24. has written — 「六封」数的是结果,不是持续。
25. have known ... since — 「know」是状态动词,而「2014」是起点,所以用「since」。
26. has worked / has been working ... for — 「three years」是时长,所以用「for」。「work」两种形式都对,进行体更强调持续。
27. have you been running — 湿透的鞋是这个活动留下的可见痕迹。
28. have read — 「three times」数的是已完成的次数。
29. have been living ... for — 「six months」是时长,所以用「for」,而「now」说明还在继续。
30. have you been studying — 「How long」问的是一个正在进行的活动持续了多久。
31. has not eaten ... since — 「breakfast」是起点,所以用「since」;否定句这里不用进行体。
32. have been trying — 「all morning」加上一次次仍未成功的尝试。

since 与 for 的口诀:德语的「seit」若能换成「从那个时间点起」,就是「since」;若是「持续了多长一段」,就是「for」。

6Past Simple 还是 Past Perfect — 练习 33 到 42

德语有过去完成时,但日常中常被省掉,因为「vorher」「schon」「danach」本来就把顺序说清楚了:人们说「Als wir ankamen, hatte die Sitzung schon angefangen」,也说「fing schon an」。英语在这一点上更严格。

规则很简单:两件事都在过去,而你要标出顺序时,较早的用 Past Perfect(had + 过去分词),较晚的用 Past Simple。如果只是依次叙述,全部保持 Past Simple — 一个不表达先后的 Past Perfect 是错误,不是文体手法。

练习 33 到 42:Past Simple 还是 Past Perfect?

33. When we arrived, the meeting ____ (already / begin).
34. I did not recognise him because he ____ (shave) off his beard.
35. After she ____ (send) the file, she went home.
36. He ____ (move) to Toronto in 2021 and bought a flat a year later.
37. By the time the doctor arrived, the patient ____ (stop) breathing.
38. Yesterday I ____ (finish) work at six and went straight home.
39. She told me she ____ (never / fly) before.
40. The street was wet because it ____ (rain) during the night.
41. We ____ (eat) dinner and then watched a film.
42. As soon as the train ____ (leave), I realised my bag was still on the platform.

答案 33 到 42

33. had already begun — 两件过去的事里,较早的那件用 Past Perfect。
34. had shaved — 刮胡子发生在没认出他之前。
35. had sent — 「After」已经点明顺序:先发送,再回家。
36. moved — 只有一个过去的时间点,没有先后要标记。
37. had stopped — 「By the time」要求这件事在那之前已经完成。
38. finished — 同一时间层面上的简单先后;这里用 Past Perfect 反而是错的。
39. had never flown — 这段经历发生在叙述的那一刻之前,而叙述本身已经是过去。
40. had rained — 下雨在先,路面湿是结果。
41. ate — 「and then」已经排好了顺序;英语这里不需要 Past Perfect。
42. had left — 意识到的时候,火车已经开走了。

几乎总会带出 Past Perfect 的信号词:by the time、before、after、as soon as、already、never ... before。一个都没有时,多半 Past Simple 就够了。

7will、going to 还是 Present Continuous — 练习 43 到 52

说将来,德语多数情况下直接用现在时:「Ich rufe dich morgen an」「Wir treffen uns am Freitag」「Mein Flug landet um 7:15」。带「werden」的将来时是例外而非常规。英语有三种不可互换的形式 — 而单纯的现在时只允许用于时刻表。

分工是这样的:「will」用于临时决定、承诺和纯粹的预测。「going to」用于对话前就定下的打算,以及有可见依据的预测。Present Continuous 用于有时间地点的既定安排。Present Simple 只用于航班、列车时刻表和固定节目。

练习 43 到 52:选择合适的将来形式。最后一题请改正句子。

43. I ____ (see) the dentist at four tomorrow — the appointment is booked.
44. Look at those clouds — it ____ (rain).
45. The phone is ringing. — Do not get up, I ____ (answer) it.
46. I have decided: I ____ (learn) Spanish next year.
47. My flight ____ (land) at 7:15 on Sunday.
48. In 2050 most cars ____ (be) electric, I think.
49. Do not worry — I ____ (not tell) anyone.
50. We ____ (have) dinner with the Bakers on Friday; they invited us last week.
51. I have bought the paint. I ____ (repaint) the kitchen this weekend.
52. "I call you tomorrow." (改正这个句子)

答案 43 到 52

43. am seeing — 日程表上定好的约会用 Present Continuous。
44. is going to rain — 此刻有看得见的迹象,所以用「going to」。
45. will answer — 决定是在说话的那一刻做出的,所以用「will」。
46. am going to learn — 在对话之前就定下的打算,所以用「going to」。
47. lands — 航班和列车时刻表用 Present Simple。
48. will be — 没有依据的预测,只是一种看法:「will」。
49. will not tell — 在说话当下做出的承诺。
50. are having — 已经约好的安排。
51. am going to repaint — 已经买好油漆说明:计划早就定了。
52. I will call you tomorrow. — 德语可以用现在时说「Ich rufe dich morgen an」。英语这里需要「will」或「am going to」。

约会已经在日程表上,用 Present Continuous;刚刚才决定,用「will」;前天就决定了,用「going to」。

8if 从句与「würde」式错误 — 练习 53 到 60

在德语里,「würde」形式可以出现在条件句的两半中。「Wenn ich mehr Zeit hätte, würde ich mehr lesen」是讲究的说法,但「wenn ich mehr Zeit haben würde」到处都听得到,语言指南也指出「würde」结构越用越多。正是这个习惯移植到了英语 — 而「If I would have more time」在英语里纯属错误。

你需要的四个模式:Zero Conditional(if + Present,Present)用于永远成立的事实;First Conditional(if + Present,will + 动词原形)用于真实条件;Second Conditional(if + Past Simple,would + 动词原形)用于不太可能的条件;Third Conditional(if + Past Perfect,would have + 过去分词)用于已无法改变的事。没有任何一个模式里「will」或「would」跟在「if」后面。

同样的错误也出现在「when」「as soon as」「before」「until」之后:德语说「Wenn du ankommst」时心里想的是将来,英语说「When you arrive」,并且禁止「will」。

练习 53 到 60:填入正确形式 — 引号里的句子请改正。

53. If I ____ (have) more time, I would read more.
54. If it rains tomorrow, we ____ (cancel) the barbecue.
55. If I ____ (be) you, I would take the job.
56. "If I would have known, I would have called you." (改正这个句子)
57. If she ____ (study) harder, she would have passed the exam.
58. Water freezes if the temperature ____ (fall) below zero.
59. "When you will arrive, call me." (改正这个句子)
60. If we ____ (leave) now, we would still catch the train.

答案 53 到 60

53. had — Second Conditional:if + Past Simple,would + 动词原形。
54. will cancel — First Conditional:真实条件,所以 if + Present Simple,will + 动词原形。
55. were — 「If I」之后,「were」是 Second Conditional 的固定形式。
56. If I had known, I would have called you. — 「would」绝不出现在 if 从句里。德语口语允许「würde」形式,英语不允许。
57. had studied — Third Conditional:if + Past Perfect,would have + 过去分词。
58. falls — Zero Conditional 用于永远成立的事实:if + Present,Present。
59. When you arrive, call me. — 在「when」「if」「as soon as」「until」之后,英语从不用「will」。
60. left — Second Conditional:条件不太可能,所以 if 从句用 Past Simple。

考试口诀:「if」之后不用「will」,「if」之后不用「would」。唯一的例外是礼貌请求 — 「If you would kindly sign here」 — 它绝不会出现在语法练习里。

9结果分析:你的错误说明了什么

按组数错题,而不是数总数。总数只说明今晚状态如何;分布才说明接下来该练什么。

错误主要在 1 到 10:你在逐字翻译德语现在时。接下来一周,每说一个英语句子都先想一想「此刻」能不能塞进去。
错误主要在 11 到 22:经典情形。你的口语德语什么都用 Perfekt,于是照搬。只练信号词,不必练形式 — 形式你早就会了。
错误主要在 23 到 32:你的问题是「seit」,不是 Present Perfect。先写二十个 since 的自造句和二十个 for 的,再练别的。
错误主要在 33 到 42:你要么从不用 Past Perfect,要么用得太多。两者的根源都是盯着形式,而不是盯着事件顺序。
错误主要在 43 到 52:你在用德语现在时思考将来。这是对话中最快被听出来的错误,因为它可能每两句就出现一次。
错误主要在 53 到 60:纯粹来自口语德语的迁移。一周就能改掉,因为只有一条规则要记。
错误分布均匀,总共不超过十个:你的时态站住了。下一步不再是语法书,而是大量的真实英语 — 见最后两节。

总共错超过二十题,并不说明你不会时态。它说明你是一个一个学的,从来没有把它们放在一起对着练。

10怎样练一个时态,而不是勾一个选项

填空题检验的是你能否认出规则,检验不了在没人提示时你会不会用。从前者走到后者,要靠自己的句子和真实的英语。

第一步:把每个做错的句子正确地抄三遍 — 用手写,不要用键盘。
第二步:每一个错句都配一个关于你自己生活的句子。「I have worked in this team since January」会留下,课本例句不会。
第三步:两个句子都朗读出来。时态是口头习惯,「I've been」必须先能顺口说出,才会出现在对话里。
第四步:一周之内在真实英语里找到同样的结构 — 播客、新闻、视频。正是这次重逢把规则变成语感。
第五步:三天后、一周后、一个月后各复习一次。只有带间隔的重复才能把一种形式送进长期记忆。

十个自己说出口的句子,胜过再做一百个空。检验一个时态的标准不是你能认出它,而是它会不假思索地脱口而出。

11用 FlexiLingo 在真实英语里练时态

最后一步不再发生在练习里。在真实英语中,时态在同一段话里来回切换:Past Simple 讲故事,Present Perfect 说由此而来的结果,Present Continuous 说正在发生的事。这种切换要靠听,而不是靠学。

播客与视频的同步字幕

每一句话在被说出的同时滚动出现。「I've been working on it」在文字里一眼就能看到,纯靠听却常年漏掉 — 而漏掉的恰恰是这些形式。

连同时态一起保存句子

遇到体现本文六个判断之一的句子,你可以连同上下文一起保存 — 句子、音频、时间戳。你的例句集来自你真正听过的材料。

按 CEFR 等级标注难度

内容从 A1 到 C2 分级。A2 主要遇到 Present 和 Past Simple,B1 和 B2 加入 Present Perfect 与 Past Continuous,C1 出现将来完成类形式 — 你的听力材料随水平一起成长。

间隔复习

保存的句子会按合适的间隔回来。与其把一条规则读三遍,不如在三周里三次遇到同一个结构 — 这正是「认得」和「会用」之间的差别。

常见问题

所有练习真的都有答案吗?

是的。全部 60 道练习都有答案,每个答案还附一句话的理由 — 不只是正确形式,还有为什么另一种形式在这里不行。答案就放在每一组练习的正下方,方便你做完整组再看。

既然「Ich habe ihn gestern gesehen」是对的,为什么「I have seen him yesterday」是错的?

因为德语 Perfekt 和英语 Present Perfect 虽然构造相同,任务却不同。Perfekt 在口语德语里是常规的过去形式,可以带任何时间状语。英语 Present Perfect 把过去与现在连起来,因此与已结束的时间段互不相容。句中一旦出现「yesterday」「last week」「in 2019」或「two hours ago」,就得用 Past Simple:「I saw him yesterday.」

什么时候用 since,什么时候用 for?

「since」放在起点前:since Monday、since 2014、since breakfast、since I moved here。「for」放在时长前:for two days、for three years、for ten minutes。混淆的德语根源是「seit」两者通吃 — 「seit 2014」和「seit drei Jahren」在德语里看起来一样。而且德语在「seit」后保持现在时,于是英语里常常忘了换时态:应说「I have lived here since 2020」,不是「I live here since 2020」。

「would」可以出现在 if 从句里吗?

标准英语中不可以。「If I would have more time」和「If I would have known」都是错的;正确的是「If I had more time」和「If I had known」。唯一的例外是礼貌请求(「If you would follow me, please」),而它不会出现在练习里。这个错误之所以常见,是因为德语口语里「wenn ich mehr Zeit haben würde」完全说得通。

我时间不多 — 先练哪一组?

先练第 2 组,Present Perfect 对 Past Simple,然后是第 5 组,将来形式。这两类错误在对话和任何考试中都最容易被察觉,因为它们几乎每两句就可能出现。第 1 组的状态动词和第 6 组的 if 从句修起来更快,因为每一处只有一条规则要记。

2026年9月25日
FL
FlexiLingo 团队
我们用真实的母语内容 — 播客、新闻和视频 — 配合同步字幕、语境中的生词保存和间隔重复复习,帮助学习者走向流利。

准备好在真实英语里听见时态了吗?

FlexiLingo 视频库的每个视频都有可点击字幕和完整文稿。点任意单词即可查看释义、听发音,并留作复习。