現在完了・現在完了進行形の予想問題5問——まちがえやすい区別を1問ずつ解説
現在完了と現在完了進行形は、中3で習う英文法の中心で、北辰テストでは中3の範囲が回を追うごとに広がっていきます(→ テスト範囲)。形は「have + 過去分詞」だけなのに、意味の見分け・for と since・過去を表す語との組み合わせ・have been to と have gone to など、まちがえやすい点が多い文法です。全国の中学生がつまずきやすいポイントを5問にしぼり、1問ずつ「なぜそのミスが起きるか」まで解説しました。
- 意味(継続・経験・完了)は、いっしょに使う語で見分ける
- for は期間の長さ、since は始まった時点
- yesterday・〜 ago・last 〜・when とは使えない
- have been to は「行ったことがある」、have gone to は「行ってしまった」
- 動作がずっと続いているなら have been 〜ing、状態の動詞は進行形にしない
問題(まず自分で解いてみよう)
- 次の(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? - ( )に 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. - 次の英文には誤りがあります。誤りを直して、正しい英文に書きかえなさい。
I have visited Kyoto last year. - ( )に入る最も適切なものを、ア〜エから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 - 次の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 long | I have lived here for ten years. |
| 経験 | 〜したことがある | ever・never・before・once・twice・〜 times | I have never been to Hokkaido. |
| 完了 | 〜したところだ・もう〜した | just・already・yet | Have you finished it yet? |
| 現在完了進行形 | (動作を)ずっと〜し続けている | for・since | It has been raining since this morning. |
yet は疑問文で「もう」、否定文で「まだ」の意味になり、already はふつう肯定文で使います。
迷ったときの手順
- 文の中に yesterday・〜 ago・last 〜・when がないか見る(あれば過去形)
- just・already・yet、ever・never・〜 times、for・since のどれがあるかで意味を決める
- 主語を見て have か has かを決める
- 「ずっと続いている」で動作の動詞なら have been 〜ing、状態の動詞なら have + 過去分詞
あわせて読みたい
- ほかの単元の予想問題(5問・解説つき) → 単元別予想問題の一覧
- 回ごとに増える出題範囲 → 北辰テストのテスト範囲
- 5教科の予想問題(PDF) → 北辰テスト 予想問題
- 英語全体の勉強法 → 北辰テスト英語の勉強法
よくある質問
現在完了の継続・経験・完了はどう見分けますか?
いっしょに使われている語で見分けます。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 + 過去分詞の現在完了(継続)を使います。
問題と英文はすべて当サイトのオリジナルです。「北辰テスト」は北辰図書株式会社の商標です。当サイトは北辰図書株式会社・埼玉県教育委員会・各高等学校とは関係のない非公式の学習支援サイトです。
