CHECK TEST
現在完了・過去完了・完了進行チートシート確認問題集
完了形の確認問題32問。「基準の時点はいつか」を見抜く練習。表で解いて、裏で答え合わせ。
Ⅰ 空所に入る最も適切なものを選べ
- 1A: Where's Tom? B: He to the library. He'll be back in an hour.
答えc has gone
訳A:トムはどこ?
B:図書館に行ったよ。1時間で戻ってくるよ。解説「図書館に行ってしまって今ここにいない」ので、結果を表す have gone to の has gone。has been to は「行ったことがある/行ってきたところ」で、今ここにいることになり「1時間で戻る」と合わない。goes は習慣、had gone は過去の基準点がないので不可。
【覚える】have gone to=行ってしまった(今いない)/have been to=行ったことがある・行ってきた。 - 2This is the most beautiful sunset I .
答えb have ever seen
訳これは、今まで見た中でいちばん美しい夕日だ。
解説最上級+I have ever p.p.=今までに〜した中でいちばん…。基準は今なので現在完了の have ever seen。had ever seen は過去の基準点が文中にないので不可。ever see は現在形で経験を表せない。am ever seeing は進行形で不可。
【覚える】the 最上級+名詞+(that) I have ever p.p.。 - 3Ten years since my grandfather passed away.
答えc have passed
訳祖父が亡くなってから10年がたった。
解説since 〜(〜以来)があり、基準は今なので現在完了。主語 Ten years は複数扱いなので have passed。passed(過去形)は since と組んで今までの経過を表せない。are passing は進行形で不自然。had passed は過去の基準点がない。since 節の中は過去形 passed away。
【覚える】期間+have passed since S 過去形=It has been 期間 since S 過去形。 - 4When the news about the accident?
答えd did you hear
訳その事故の知らせをいつ聞いたの?
解説When(いつ)は知らせを聞いた特定の過去の時点を尋ねるので、過去形の did you hear。過去の一点を尋ねる When 〜? はふつう現在完了と使わないので、have you heard・have you been hearing は不可。had you heard は過去の基準点がない。
【覚える】When〜?/What time〜?/〜 ago は過去形(現在完了と使わない)。 - 5I recognized him at once because I him several times on TV.
答えa had seen
訳テレビで何度か見たことがあったので、すぐに彼だとわかった。
解説基準は「気づいた(recognized)」という過去の時点で、それより前の経験なので過去完了の had seen。have seen は基準が今になってしまい、過去の recognized と合わない。see(現在形)・have been seeing も過去の基準点より前の経験を表せない。
【覚える】過去の時点より前の経験・完了・継続→過去完了 had p.p.。 - 6My sister in Paris for three years when she met her future husband.
答えb had lived
訳姉は、のちに夫となる人と出会ったとき、パリに3年間住んでいた。
解説出会った(met)という過去の時点までの継続なので、過去完了の had lived。has lived・has been living は基準が今なので、過去の met と合わない。lives は現在形で継続を表せない。
【覚える】had p.p. for 期間 when S 過去形=〜したとき…の間ずっと〜していた。 - 7If I read this novel once more, I it five times.
答えb will have read
訳この小説をもう1回読めば、5回読んだことになる。
解説「もう1回読めば(未来の時点で)5回読んだことになる」という未来の時点までの経験なので、未来完了の will have read。will read は「読むだろう」で回数の経験にならない。have read は今の経験。had read は過去完了。if 節は副詞節なので現在形の read。
【覚える】will have p.p.=(未来のある時点で)〜したことになる。 - 8Hardly had the game started it began to pour.
答えc when
訳試合が始まるとすぐに、土砂降りになった。
解説Hardly[Scarcely]had S p.p. when[before]〜=〜するとすぐに。Hardly と組むのは when。than と組むのは No sooner だけで、比較の than につられる誤答が多い。that・then はこの構文を作らない。pour=(雨が)激しく降る。
【覚える】Hardly … when / No sooner … than(組み合わせを混ぜない)。 - 9Your clothes are all wet. in the rain?
答えa Have you been walking
訳服がびしょぬれだよ。雨の中を歩いていたの?
解説完了進行形は「直前までずっとしていた(だから今その跡がある)」も表す。服がぬれているのが今の跡なので Have you been walking。Do you walk は習慣を尋ねる形。Had you been walking は過去の基準点がないので不可。Will you walk は未来で合わない。
【覚える】have been V-ing=(直前まで)ずっと〜していた(今にその影響)。 - 10My uncle dead for five years.
答えd has been
訳おじが亡くなって5年になる。
解説die(死ぬ)は一瞬の動作なので for 〜 と組んで継続を表せない。そこで「死んでいる状態」の be dead を現在完了にして has been dead for five years とする。has died for は誤り。died(過去形)・is(現在形)も for five years と組んで継続を表せない。
【覚える】He has been dead for 〜=He died 〜 ago=It has been 〜 since he died。 - 11I the report a few minutes ago, so I'll send it to you right away.
答えc finished
訳数分前にレポートを書き終えたので、すぐにお送りします。
解説a few minutes ago は過去の一点を指すので過去形の finished。ago は現在完了と使えないので have finished・have been finishing は不可。had finished は過去の基準点がない。just now(ついさっき)も過去形と組み、just(ちょうど)なら現在完了と組む。
【覚える】〜 ago/just now は過去形。just/already/yet は現在完了。 - 12A: How long each other? B: Since we were in kindergarten.
答えc have you known
訳A:お互い知り合ってどのくらいになるの?
B:幼稚園のころからだよ。解説B が Since 〜 と答えているので、「今までどのくらい」という継続=現在完了の have you known。know は状態動詞なので進行形 are you knowing にしない。do you know・did you know は期間を尋ねる How long と合わない。
【覚える】How long have you known 〜?(状態動詞の継続は現在完了)。 - 13She looked tired because she all night.
答えc had been studying
訳彼女は一晩中勉強していたので、疲れているように見えた。
解説疲れて見えた(looked)過去の時点まで、一晩中ずっと勉強していた→過去完了進行形の had been studying。has been studying・has studied は基準が今なので looked と合わない。studies は現在形で時が合わない。
【覚える】had been V-ing=(過去の時点まで)ずっと〜していた。 - 14I this smartphone since last spring, and it still works perfectly.
答えc have been using
訳去年の春からこのスマートフォンを使っているが、今も完璧に動く。
解説since last spring(去年の春から今まで)の動作の継続なので、現在完了進行形の have been using。it still works と今の話なので、過去完了 had used は不可。use(現在形)・used(過去形)は since と組んで継続を表せない。
【覚える】have been V-ing since 〜=〜からずっと…している(動作の継続)。
Ⅱ 下線部のうち誤りを含むものを1つ選べ
- 15My cousin has visited(A) Kyoto three times(B) with(C) his friends(D) last year.
答えa (A)
訳いとこは去年、友人と3回京都を訪れた。
解説last year(去年)は過去の一点なので、(A) has visited は visited にする。three times(3回)があると経験の現在完了に見えるが、過去を表す語があれば過去形が優先。(B) three times、(C) with、(D) friends は正しい。
【覚える】last 〜/yesterday/in 2020 があれば過去形(現在完了は不可)。 - 16I have known(A) Emma since(B) we have been(C) classmates in(D) junior high school ten years ago.
答えc (C)
訳10年前に中学校で同級生になって以来、エマとは知り合いだ。
解説ten years ago という終わった過去が起点なので、since 節の (C) have been は過去形 were にする。ago は現在完了と使えない点でも見抜ける。(A) have known(状態の継続)、(B) since、(D) in junior high school は正しい。
【覚える】現在完了+since+S+過去形。 - 17By the time(A) the ambulance arrived(B), the injured man has(C) already been taken(D) to the hospital.
答えc (C)
訳救急車が到着したときには、けが人はすでに病院へ運ばれていた。
解説By the time S 過去形(救急車が着いたときには)なので、主節はその過去の時点までの完了=had p.p.。(C) has は had にする。(A) By the time、(B) arrived、(D) been taken(受け身の完了)は正しい。
【覚える】By the time S 過去形, S had p.p.。 - 18No sooner had(A) she left(B) the house when(C) the phone rang(D).
答えc (C)
訳彼女が家を出るとすぐに電話が鳴った。
解説No sooner had S p.p. than 〜 が正しい形なので、(C) when は than にする。Hardly・Scarcely なら when/before。(A) had(倒置の語順)、(B) left、(D) rang は正しい。
【覚える】No sooner had S p.p. than S 過去形。 - 19Lisa has been(A) working(B) at this company for(C) she graduated from(D) college.
答えc (C)
訳リサは大学を卒業してからずっとこの会社で働いている。
解説後ろに S V(she graduated)が来ているので、(C) for は接続詞の since にする。for は前置詞で、後ろは three years のような期間の名詞。(A) has been と (B) working は現在完了進行形で正しい。(D) graduate from(〜を卒業する)の from も正しい。
【覚える】for+期間(名詞)/since+起点(名詞・S V)。
Ⅲ 日本語に合うように( )内の語句を並べかえよ
- 20父がくれた時計をなくしてしまった。I lost ( given / had / me / my father / the watch ).
答えI lost the watch my father had given me.
解説採点ポイントは大過去の had given。「くれた」のは「なくした」より前なので過去完了。the watch の後に目的格の関係代名詞 which[that]が省略され、my father had given me が the watch を修飾する。別解:I lost the watch that my father had given me.(語群外)
【覚える】過去の出来事より前のこと→had p.p.(大過去)。 - 21家に着くとすぐに雨が降り出した。No sooner ( arrived / had / home / I / than ) it began to rain.
答えNo sooner had I arrived home than it began to rain.
解説採点ポイントは倒置と than。No sooner が文頭に出ると had I arrived と倒置になり、後ろに than it began to rain を続ける。home は副詞なので to は不要。別解:Hardly had I arrived home when it began to rain.(語群外)/As soon as I arrived home, it began to rain.
【覚える】No sooner had S p.p. than 〜=〜するとすぐに。 - 22東京に来てどのくらいになりますか。How ( been / have / in / long / Tokyo / you )?
答えHow long have you been in Tokyo?
解説採点ポイントは How long+現在完了と have been in。期間を尋ねる How long 〜? は現在完了で、have been in Tokyo=ずっと東京にいる(滞在の継続)。have been to(行ったことがある)と区別する。別解なし。
【覚える】How long have you been in 〜?=〜に来てどのくらいですか。 - 23祖父が亡くなって5年になる。It ( been / five / has / since / years ) my grandfather died.
答えIt has been five years since my grandfather died.
解説採点ポイントは It has been 期間 since S 過去形。It has been five years の後に since my grandfather died を続ける。since 節は過去形 died のまま。別解:It is five years since my grandfather died./Five years have passed since my grandfather died.
【覚える】It has been 期間 since S 過去形=〜してから…になる。
Ⅳ ほぼ同じ意味になるように空所に適語を1語ずつ入れよ
- 24He died ten years ago. = He has dead for ten years.
答えbeen
訳彼が亡くなって10年になる。
解説die は一瞬の動作で継続できないので、「死んでいる状態」の be dead を現在完了にして has been dead とする。has died for ten years は誤り。He died ten years ago. の書きかえ。
【覚える】has been dead for 期間=died 期間 ago。 - 25Ten years have passed since he died. = It ten years since he died.
答えis
訳彼が亡くなって10年になる。
解説It is[has been]期間 since 〜(〜してから…になる)。1語なら is。Ten years have passed since he died. の書きかえ。He has been dead for ten years./He died ten years ago. も同じ意味。
【覚える】「〜してから…になる」の書きかえを5通り言えるように。 - 26I have never seen such a beautiful lake. = This is the most beautiful lake I have seen.
答えever
訳これは今まで見た中でいちばん美しい湖だ。
解説never 〜 such a …(こんなに…な〜は見たことがない)と、最上級+I have ever p.p.(今までに〜した中でいちばん…)の書きかえは定番。ever は「今までに」で、経験の現在完了の目印。
【覚える】I have never seen such a 〜=This is the most 〜 I have ever seen。 - 27She went to London, and she isn't here now. = She has to London.
答えgone
訳彼女はロンドンに行ってしまった。
解説「行ってしまって今いない」=have gone to(結果用法)。過去形(went)と今の結果(isn't here now)を1つにまとめるのが現在完了。has been to にすると「行ったことがある」になる。
【覚える】have gone to=行ってしまって今はいない。 - 28This is my first visit to Nara. = I have never to Nara before.
答えbeen
訳私は以前に奈良に行ったことがない。
解説「今回が初めての奈良訪問」=「以前に奈良に行ったことがない」。経験は have been to。have never visited Nara も可だが、空所の後に to があるので been。visit は他動詞なので to は付かない。
【覚える】This is my first visit to 〜=I have never been to 〜 before。
Ⅴ 指示に従って答えよ
- 292文の意味の違いを説明せよ:(a) I lost my key. (b) I have lost my key.
答え(a)は過去に鍵をなくしたことを述べるだけで、今どうかは言っていない。(b)は鍵をなくして今も見つかっていないことを表す。
解説採点ポイントは過去形と現在完了の違い。(a) 過去形は過去に鍵をなくしたことを述べるだけで、今見つかったかどうかは言っていない。(b) 現在完了は、なくした結果が今に残っている(今も鍵がない)ことを表す。この対比が完了形の核心。
【覚える】過去形=過去の一点だけ/現在完了=過去の結果が今に続く。 - 30英訳せよ:駅に着いた時には、最終電車はもう出てしまっていた。
答えWhen I got to the station, the last train had already left.
解説採点ポイントは過去完了。基準は「着いた」という過去の時点で、それより前に電車が出発したので had already left。the last train has left は誤り。already は had と過去分詞の間。別解:By the time I got to the station, the last train had already left.
【覚える】When S 過去形, S had already p.p.=〜したとき、すでに…していた。 - 31英訳せよ:私は北海道に2回行ったことがある。
答えI have been to Hokkaido twice.
解説採点ポイントは経験の have been to と回数の位置。「行って戻ってきた」経験は have been to、回数 twice は文末。have gone to は「行ってしまって今いない」の意味なので不可。別解:I have visited Hokkaido twice.
【覚える】have been to 場所 回数=〜に…回行ったことがある。 - 32誤りを直せ:How long ago have you started playing the piano?
答えhave you started → did you start
訳ピアノを始めたのはどのくらい前ですか。
解説採点ポイントは How long ago の時制。How long ago 〜?(どのくらい前に)は過去の一点を尋ねるので、過去形の did you start にする。期間を尋ねるなら How long have you been playing the piano?(どのくらいピアノを弾いているか)。
【覚える】How long ago〜?→過去形/How long〜?→現在完了。
現在完了・過去完了・完了進行チートシート(A4 3枚)