(2) 对过去的推测,必须在 can, could 之后接动词的完成式。但此时can仍只用于否定句或疑问句,不用于肯定句;而could则可用于各种句型:
He can’t [couldn’t] have seen her there. 他不可能在那儿见到她。
He could have gone home. 他可能已回家了。
Who could have taken it? 是谁把它拿走了呢?
I do not see how I could have done otherwise. 我看不出那时我还能有别的做法。
She could not have been more than sixteen. 那时她不可能超过十六岁。
I couldn’t have won, so I didn’t go in for the race. 我不可能获胜,因此我没参赛。
【注】could后接动词的完成式,除表示对过去的推测外,还有以下用法(不用can):
① 表示过去没有实现的可能性(即某事本来可以发生,却没发生):
He could have told her, but he didn’t choose to. 他本来可以告诉她的,但他却没有。
I could have lent you the money. Why didn’t you ask me? 我本来可以借这笔钱给你的。你为什么不问我?
② 用来委婉地责备某人过去应该做某事而没有去做:
You could have been a little more considerate. 你本可考虑得更周到些的。
You could ask me before you use my phone. 你打电话之前可以问我一声。
You could have helped me why did you just sit and watch? 你本可帮助我的,为什么只坐在一旁瞧着?
③ 表示“差点儿就要”:
I could have died laughing. 我差点笑死了。
I was so angry I could have killed him. 我是那样生气,差点把他杀了。
She felt miserable. She could have cried. 她感到很痛苦,她差点哭了。