基本同意黎老师的解答,但要补充一点:如果不在谓语动词前面,but接人称代词并非只能用宾格,也可以用主格。如:
Nobody knew it but I (me).(费致德《现代英语惯用法词典》)
比较:
Nobody knew it but me.除了我,没人知道这件事。(but视为介词“除......之外”)
Nobody knew it but I did.没人知道这件事,但是我知道。(but视为并列连词“但是”)
同理:
No one but him can solve our problems.除了他,没人能解决我们的问题。(but视为介词“除......之外”)
No one but he can solve our problems.= No one can solve our problems but he can.没人能解决我们的问题,但是他能。(but视为并列连词“但是”)
▲所以,我们能否换一个角度来分析呢?当用作主语的no one或nobody之后接“but+人称代词主格”时,可将but看做是表转折意义的并列连词,表示“话锋急转”,意在强调。如:
No one but she saw the prowler.除了她以外没有一个人看见那个行窃者。《简明英汉词典》
= No one saw the prowlet but she did.没有一个人看见那个行窃者,但是她看见了。
Nobody but she knew it.除了她之外没人知道这件事。《21世纪英汉汉英双向词典》
= Nobody knew it but she did.没人知道这件事,但是她知道。
【以上分析为个人理解,仅供网友们参考并欢迎老师们参与讨论】
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!
《牛津英语用法指南》第三版116.2节指出:“在 but 后面,通常用宾格代词( me, him 等)。在较正式的文体中,主格代词( I, he 等)可以用在动词前面。Nobody but her would do a thing like that. 除了她,没人会干出那种事情。(较正式的说法:Nobody but she ...)”也就是说,“ but + 代词 ”如果在谓语动词前面,则该代词通常用宾格,但是也可以用主格;如果不在谓语动词前面,则该代词只能用宾格。例如:No one but me / I heard it. = No one heard it but me . ( 不能说:No one heard it but I.)除了我以外,没有人听过这件事。
所以,No one but ______ can solve our problems. A he B him 【答案】选A和B都可以。