嘻嘻,不好意思,以为你说的下面的3题。
上面这个主要考should/could have done表示本应该/能够做某事,但实际没有做。but for是“要不是...”,是虚拟语气标志词,意思是“要不是赶上交通高峰期,我们本可以提前一个小时到达机场的”,隐含之意就是实际上没有提前一小时到达。
而如果选C,could do sth只是表示能够做某事、可以做某事,并不含有“实际上没有做这件事”的隐含意思,could do sth只是情态动词的一般用法,而should/could have done则表示虚拟语气。
有没有解释清楚的地方欢迎追问哈哈~~~