Upper-intermediate grammar exercise: past simple vs. past perfect

English grammar practice exercise, upper-intermediate / advanced level.

This exercise focuses on the difference between the past simple and the past perfect.

Instructions: Complete the sentences below by putting the verb in brackets into the past simple or past perfect.


questions go herescore goes here

Past simple – common mistakes
Common mistakes Correct version Why?
I was work in London. I worked in London. In positive sentences, a helping verb such as was or did is not used.
He worked in London? Did he work in London? The helping verb did is used in past simple questions.
Worked he in London? Did he work in London? The helping verb did is used in past simple questions.
Did he wrote a letter? Did he write a letter? The main verb is used in the infinitive form in questions and negatives.
He didn't wrote a letter. He didn't write a letter. The main verb is used in the infinitive form in questions and negatives.
He writed a letter. He wrote a letter. Some verbs are irregular. Not all verbs end in -ed in the past simple form.
Past perfect simple – common mistakes
Common mistakes Correct version Why?
I didn't been to London. I hadn't been to London. We use the helping verb had (negative = hadn't) in the past perfect.
When I saw him, I noticed that he had a haircut. When I saw him I noticed that he had had a haircut. The action (a haircut) happened before the other past action (I noticed). We use the past perfect for the action which happened first to make the time order clear to the listener.
He told me has been to London. He told me he had been to London. His original words were: ''I have been to London.'' However, in reported speech we move the tense back – the present perfect (have been) becomes past perfect (had been).

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>