We John’s name on the race list yesterday but for his recent injury.
A. will put
B. will have put
C. would put
D. would have put
网友回答
A. will put
B. will have put
C. would put
(答案→)D. would have put
解析:考查虚拟语气。But for表示含蓄条件。根据yesterday可知是与过去事实相反的虚拟语气,那么使用情态动词+have done.故D正确。