Mr. Smith, in the factory for thirty years, is on the way back to his village.
A. to work
B. working
C. to have worked
D. having worked
网友回答
A. to work
B. working
C. to have worked
(答案→)D. having worked
解析:考查非谓语动词。for+一段时间,常与完成时连用,根据“for thirty years”可知,史密斯先生已经在这家工厂工作了30年,having worked相当于who has worked。故选D。