1 动名词完成体having done形式可以作主语,当通常用一般体doing形式代替having done。二者的区别是在表示先于谓语时间的动作时,用完成体为正式语体,用一般体为非正式语体。
2 动名词的逻辑主语是否需要出现取决于语境。本句谓语has made him... 明显提示主语动名词的动作是him做的,所以没有必要用动名词复合结构,doing形式就可以了。
3 本题目是一个设计失败的题目。B和C都可以,但都不是很理想。His seeing的His是多余。Having seen...的动名词完成体这种很正式的形式用在这种非正式对话语境显得有些过于做作。这反映了出题人的水平。最好的选择就是直接用Seeing...结构作主语。