TOEIC 文法問題|時制・完了形の練習問題と解説

時を表す語句を手がかりに、現在完了・過去完了・未来完了・進行形などを選ぶ。単なる形の暗記ではなく、「いつの時点の話か」「その前後関係は何か」を判断する。

アプリで文法問題を解く文法カテゴリー一覧へ

G001. ニュージーランド旅行の話

I have ( ) to New Zealand once, so I can tell you about the trip.

私はニュージーランドへ一度行ったことがあるので、その旅行について具体的に話せます。

  1. A. go
  2. B. went
  3. C. going
  4. D. been

正解 D have been to

正解はD(been)。完成文は “I have been to New Zealand once, so I can tell you about the trip.”。have been to は「~へ行ったことがある」を表す現在完了の経験用法です。 完成文全体では「私はニュージーランドへ一度行ったことがあるので、その旅行について具体的に話せます。」という意味になります。ポイントは have been to です。時を表す語(once, since, for, by, yesterday など)を先に確認すると、時制を選びやすくなります。 他の選択肢は、時制・過去分詞・未来表現の条件が合わず、文中の時を表す語句と対応しません。

G002. 姉のフランス語学習

My sister has studied French ( ) she entered high school.

姉は高校に入って以来、フランス語を勉強しています。

  1. A. until
  2. B. during
  3. C. since
  4. D. for

正解 C since + 過去の時点

正解はC(since)。完成文は “My sister has studied French since she entered high school.”。起点を表す語句には since を使います。期間を表すときは for を使います。 完成文全体では「姉は高校に入って以来、フランス語を勉強しています。」という意味になります。ポイントは since + 過去の時点 です。時を表す語(once, since, for, by, yesterday など)を先に確認すると、時制を選びやすくなります。 他の選択肢は、時制・過去分詞・未来表現の条件が合わず、文中の時を表す語句と対応しません。

G003. 町での長い暮らし

They have lived in this town ( ) more than ten years.

彼らは10年以上この町に住んでいます。

  1. A. since
  2. B. by
  3. C. from
  4. D. for

正解 D for + 期間

正解はD(for)。完成文は “They have lived in this town for more than ten years.”。more than ten years は期間なので for を使います。 完成文全体では「彼らは10年以上この町に住んでいます。」という意味になります。ポイントは for + 期間 です。時を表す語(once, since, for, by, yesterday など)を先に確認すると、時制を選びやすくなります。 他の選択肢は、時制・過去分詞・未来表現の条件が合わず、文中の時を表す語句と対応しません。

G004. 箱の中のプレゼント

When I opened the box, I found that someone had already ( ) the present.

箱を開けたとき、誰かがすでにプレゼントを包んでいたことに気づきました。

  1. A. wrap
  2. B. wrapping
  3. C. wrapped
  4. D. wraps

正解 C had + 過去分詞

正解はC(wrapped)。完成文は “When I opened the box, I found that someone had already wrapped the present.”。過去のある時点より前に完了していたことは had + 過去分詞で表します。 完成文全体では「箱を開けたとき、誰かがすでにプレゼントを包んでいたことに気づきました。」という意味になります。ポイントは had + 過去分詞 です。時を表す語(once, since, for, by, yesterday など)を先に確認すると、時制を選びやすくなります。 他の選択肢は、時制・過去分詞・未来表現の条件が合わず、文中の時を表す語句と対応しません。

G005. 空港到着後の連絡

I will call you as soon as I ( ) at the airport.

空港に着いたらすぐに電話します。

  1. A. will arrive
  2. B. arrived
  3. C. am arriving
  4. D. arrive

正解 D as soon as + 現在形

正解はD(arrive)。完成文は “I will call you as soon as I arrive at the airport.”。as soon as で始まる時の副詞節では、未来の内容でも現在形を使います。 完成文全体では「空港に着いたらすぐに電話します。」という意味になります。ポイントは as soon as + 現在形 です。時を表す語(once, since, for, by, yesterday など)を先に確認すると、時制を選びやすくなります。 他の選択肢は、時制・過去分詞・未来表現の条件が合わず、文中の時を表す語句と対応しません。

G006. 週末の祖父母訪問

We ( ) our grandparents this weekend.

私たちは今週末、祖父母を訪ねる予定です。

  1. A. visit
  2. B. have visited
  3. C. visited
  4. D. are visiting

正解 D be + -ing for future

正解はD(are visiting)。完成文は “We are visiting our grandparents this weekend.”。現在進行形は、すでに決まっている近い予定を表すことがあります。 完成文全体では「私たちは今週末、祖父母を訪ねる予定です。」という意味になります。ポイントは be + -ing for future です。時を表す語(once, since, for, by, yesterday など)を先に確認すると、時制を選びやすくなります。 他の選択肢は、時制・過去分詞・未来表現の条件が合わず、文中の時を表す語句と対応しません。

G007. 読書中の停電

I was reading a book when the lights suddenly ( ) out.

電気が突然消えたとき、私は本を読んでいました。

  1. A. were going
  2. B. go
  3. C. went
  4. D. had gone

正解 C when + 過去形

正解はC(went)。完成文は “I was reading a book when the lights suddenly went out.”。過去進行形の途中で起こった短い出来事は過去形で表します。 完成文全体では「電気が突然消えたとき、私は本を読んでいました。」という意味になります。ポイントは when + 過去形 です。時を表す語(once, since, for, by, yesterday など)を先に確認すると、時制を選びやすくなります。 他の選択肢は、時制・過去分詞・未来表現の条件が合わず、文中の時を表す語句と対応しません。

G008. レポートの進み具合

I have not finished my report ( ).

私はまだレポートを終えていません。

  1. A. already
  2. B. soon
  3. C. yet
  4. D. ever

正解 C not ... yet

正解はC(yet)。完成文は “I have not finished my report yet.”。否定文で「まだ~していない」は yet を使います。 完成文全体では「私はまだレポートを終えていません。」という意味になります。ポイントは not ... yet です。時を表す語(once, since, for, by, yesterday など)を先に確認すると、時制を選びやすくなります。 他の選択肢は、時制・過去分詞・未来表現の条件が合わず、文中の時を表す語句と対応しません。

G009. 科学プロジェクトの締切

By next Friday, the students will have ( ) the science project.

来週の金曜日までには、生徒たちは科学プロジェクトを終えているでしょう。

  1. A. completed
  2. B. completing
  3. C. complete
  4. D. completion

正解 A will have + pp

正解はA(completed)。完成文は “By next Friday, the students will have completed the science project.”。will have + 過去分詞で、未来のある時点までの完了を表します。 完成文全体では「来週の金曜日までには、生徒たちは科学プロジェクトを終えているでしょう。」という意味になります。ポイントは will have + pp です。時を表す語(once, since, for, by, yesterday など)を先に確認すると、時制を選びやすくなります。 他の選択肢は、時制・過去分詞・未来表現の条件が合わず、文中の時を表す語句と対応しません。

G010. バスでなくした財布

I ( ) my wallet on the bus yesterday.

私は昨日バスの中で財布をなくしました。

  1. A. lose
  2. B. had lost
  3. C. lost
  4. D. have lost

正解 C 過去時点 + 過去形

正解はC(lost)。完成文は “I lost my wallet on the bus yesterday.”。yesterday のような明確な過去時点がある場合は過去形を使います。 完成文全体では「私は昨日バスの中で財布をなくしました。」という意味になります。ポイントは 過去時点 + 過去形 です。時を表す語(once, since, for, by, yesterday など)を先に確認すると、時制を選びやすくなります。 他の選択肢は、時制・過去分詞・未来表現の条件が合わず、文中の時を表す語句と対応しません。