1) could have + 过去分词
He couldn’t have seen her yesterday.
They could have lost their way.
We could have started a little earlier.
I could have killed her. It was a narrow escape.
2) may (might) have + 过去分词
He may have heard the news.
I might have come to a wrong conclusion.
It was a narrow escape. You might have killed yourself.
A lot of men died who might have been saved.
3) must have + 过去分词
She must have made a big mistake.
The city at one time must have been prosperous, for it enjoyed a high level of civilization.
4) needn’t have + 过去分词
You needn’t have woken me up. I don’t have to go to work today.
He needn’t have watered the flowers, for it is going to rain.
5) should / ought to have + 过去分词
You should / ought to have done what your parents told you. (But you failed to do it.)
You should / ought to have been more careful. (But you weren’t.)
6) shouldn’t / oughtn’t to have + 过去分词
You shouldn’t / oughtn’t to have crossed the road when the lights were red. (But you did.)
They shouldn’t / oughtn’t to have left so soon. (But they did.)
7) would have + 过去分词
He would have arrived by now.
She would have recovered by then.