予想問題・英語

現在完了・現在完了進行形の予想問題5問——まちがえやすい区別を1問ずつ解説

更新日:

現在完了と現在完了進行形は、中3で習う英文法の中心で、北辰テストでは中3の範囲が回を追うごとに広がっていきます(→ テスト範囲)。形は「have + 過去分詞」だけなのに、意味の見分け・for と since・過去を表す語との組み合わせ・have been to と have gone to など、まちがえやすい点が多い文法です。全国の中学生がつまずきやすいポイントを5問にしぼり、1問ずつ「なぜそのミスが起きるか」まで解説しました。

この5問でおさえるポイント
  • 意味(継続・経験・完了)は、いっしょに使う語で見分ける
  • for は期間の長さ、since は始まった時点
  • yesterday・〜 ago・last 〜・when とは使えない
  • have been to は「行ったことがある」、have gone to は「行ってしまった」
  • 動作がずっと続いているなら have been 〜ing、状態の動詞は進行形にしない

問題(まず自分で解いてみよう)

  1. 次の(a)〜(c)の現在完了は、「継続」「経験」「完了」のどの意味ですか。
    (a) I have just finished my homework.
    (b) I have lived in this town since I was five.
    (c) Have you ever seen a koala?
  2. ( )に for か since を入れなさい。
    (1) We have known each other (  ) three years.
    (2) It has been cold (  ) last week.
    (3) My father has worked at the hospital (  ) 2019.
  3. 次の英文には誤りがあります。誤りを直して、正しい英文に書きかえなさい。
    I have visited Kyoto last year.
  4. ( )に入る最も適切なものを、ア〜エから1つずつ選びなさい。
    (1) Ken isn't here now. He (  ) to the library.
    (2) I (  ) to Okinawa twice. It is a beautiful place.
    ア has been イ has gone ウ have been エ have gone
  5. 次の2文を、現在完了進行形を使って1文に書きかえなさい。
    Tom began to study two hours ago. He is still studying.

目安:問題1・2は1問1分、問題3〜5は1問2分。解き終わったら、下の「答えと解説を見る」を開いて確かめましょう。

答えと解説

問題1

次の(a)〜(c)の現在完了は、「継続」「経験」「完了」のどの意味ですか。
(a) I have just finished my homework.
(b) I have lived in this town since I was five.
(c) Have you ever seen a koala?

答えと解説を見る

答え:(a) 完了 (b) 継続 (c) 経験

考え方:現在完了(have / has + 過去分詞)の意味は、形だけでは決まりません。いっしょに使われている語で見分けます。

解き方:(a) just(ちょうど)があるので完了「ちょうど宿題を終えたところだ」。(b) since I was five(5歳のときから)があるので継続「5歳のときからこの町に住んでいる」。(c) ever(今までに)があるので経験「今までにコアラを見たことがありますか」。

よくあるミス:(a) を「経験」とするミスです。「宿題を終えた」を「終えたことがある」と訳してしまうと経験に見えます。just・already・yet は完了の目じるしと決めておきましょう。

確かめ:訳してみて、(a)「ちょうど〜したところ」、(b)「ずっと〜している」、(c)「〜したことがある」と、自然な日本語になれば正解です。

問題2

( )に for か since を入れなさい。
(1) We have known each other (  ) three years.
(2) It has been cold (  ) last week.
(3) My father has worked at the hospital (  ) 2019.

答えと解説を見る

答え:(1) for (2) since (3) since

考え方:for は「期間の長さ」(〜の間)、since は「始まった時点」(〜から、〜以来)です。

解き方:(1) three years は長さなので for。(2) last week は「先週」という時点なので since。(3) 2019 は年という時点なので since。

よくあるミス:数字が入っているとすべて for にしてしまうミスです。three years も 2019 も数字ですが、「3年間」は長さ、「2019年」はカレンダー上の1点です。「〜間」と訳せたら for、「〜から」と訳せたら sinceと考えると迷いません。

あわせて覚える:期間を聞くときは How long have you 〜? を使います。答えるときは for 〜 か since 〜 で答えます。

問題3

次の英文には誤りがあります。誤りを直して、正しい英文に書きかえなさい。
I have visited Kyoto last year.

答えと解説を見る

答え:I visited Kyoto last year.(過去形にする)

考え方:現在完了は「過去から今につながっていること」を表すので、過去の1点をはっきり示す語といっしょには使えません。

解き方:last year(去年)は過去のはっきりした時点なので、現在完了ではなく過去形にします。I visited Kyoto last year.

よくあるミス:「去年京都に行ったことがある」と日本語で考えて現在完了にしてしまうミスです。現在完了といっしょに使えない語は、yesterday・〜 ago・last 〜・in 2020(過去の年)・when(いつ)の疑問文などです。「When have you visited Kyoto?」も誤りで、When did you visit Kyoto? とします。

確かめ:last year を取って「I have visited Kyoto twice.」なら経験の現在完了として正しい英文です。時を表す語があるかどうかで形が変わることを確かめましょう。

問題4

( )に入る最も適切なものを、ア〜エから1つずつ選びなさい。
(1) Ken isn't here now. He (  ) to the library.
(2) I (  ) to Okinawa twice. It is a beautiful place.
ア has been イ has gone ウ have been エ have gone

答えと解説を見る

答え:(1) イ (2) ウ

考え方:have been to 〜 は「〜へ行ったことがある(経験)」または「〜へ行ってきたところだ(完了)」、have gone to 〜 は「〜へ行ってしまった(今はここにいない)」です。

解き方:(1) Ken isn't here now.(ケンは今ここにいない)とあるので、「図書館へ行ってしまった」の イ has gone。主語が He なので has。(2) twice(2回)があるので経験。主語が I なので ウ have been。

よくあるミス:① (2) で have gone を選ぶミス。「沖縄へ行ってしまった」人が「沖縄はきれいなところです」と話していることになり、今ここにいるので合いません。② 主語に合わせて has と have を選び分けるのを忘れるミス。答えが2つにしぼれたら、最後に主語が3人称単数かを確かめましょう。

あわせて覚える:have gone to は、ふつう主語が I や you の文では使いません(話している本人や相手は「行ってしまって、ここにいない」とは言えないため)。

問題5

次の2文を、現在完了進行形を使って1文に書きかえなさい。
Tom began to study two hours ago. He is still studying.

答えと解説を見る

答え:Tom has been studying for two hours.

考え方:「2時間前に始めて、今もしている」=「2時間ずっと勉強している」。動作がずっと続いていることは、現在完了進行形 have / has been + 〜ing で表します。

解き方:主語は Tom(3人称単数)なので has。two hours ago(2時間前)から今までの長さは two hours なので for two hours。Tom has been studying for two hours.

よくあるミス:① since two hours ago としてしまうミス。期間の長さは for で表し、ago は現在完了の文では使いません。② know・like・want のような状態を表す動詞まで進行形にしてしまうミス。「5年前から彼を知っている」は I have known him for five years. で、have been knowing とはしません。動作の動詞(study・run・rain など)→ 現在完了進行形、状態の動詞(know・be・like など)→ 現在完了(継続)と分けます。

確かめ:始めた時刻(2時間前)と今がつながり、「今も続いている」意味になっていれば正解です。

現在完了の要点の表

意味日本語いっしょに使う語例文
継続ずっと〜しているfor・since・How longI have lived here for ten years.
経験〜したことがあるever・never・before・once・twice・〜 timesI have never been to Hokkaido.
完了〜したところだ・もう〜したjust・already・yetHave you finished it yet?
現在完了進行形(動作を)ずっと〜し続けているfor・sinceIt has been raining since this morning.

yet は疑問文で「もう」、否定文で「まだ」の意味になり、already はふつう肯定文で使います。

迷ったときの手順

  1. 文の中に yesterday・〜 ago・last 〜・when がないか見る(あれば過去形)
  2. just・already・yet、ever・never・〜 times、for・since のどれがあるかで意味を決める
  3. 主語を見て have か has かを決める
  4. 「ずっと続いている」で動作の動詞なら have been 〜ing、状態の動詞なら have + 過去分詞

あわせて読みたい

撮るだけ自動採点・偏差値の目安がわかるアプリ北辰ゼミ|iPhone版 無料

よくある質問

現在完了の継続・経験・完了はどう見分けますか?

いっしょに使われている語で見分けます。for・since・How long なら継続、ever・never・〜 times なら経験、just・already・yet なら完了です。

have been to と have gone to のちがいは何ですか?

have been to 〜 は「〜へ行ったことがある」「〜へ行ってきたところだ」、have gone to 〜 は「〜へ行ってしまって、今はここにいない」という意味です。

現在完了進行形と現在完了の継続はどう使い分けますか?

study・run・rain など動作の動詞がずっと続いているときは have been 〜ing の現在完了進行形、know・like・be など状態の動詞は進行形にせず have + 過去分詞の現在完了(継続)を使います。

問題と英文はすべて当サイトのオリジナルです。「北辰テスト」は北辰図書株式会社の商標です。当サイトは北辰図書株式会社・埼玉県教育委員会・各高等学校とは関係のない非公式の学習支援サイトです。