✨ ベストアンサー ✨
whoseじゃだめですね。
まず()がtheyの代わりだとすると、theyは主格なので関係代名詞も当然主格を使います。whoseは所有格なので使えません。
所有格というのはmy.his.her.theirのようなものです。
My has weakneses.のような文はあり得ないですよね。
次に②のwhoですがダメな理由が二つ。
まず先行詞はno oneですよね?この文のように先行詞にnoやall等がある場合は普通関係代名詞はthatを使います。
次に単純に意味がおかしくなります。
(a)の文意は「誰にでも弱点がある」というような意味です。
(b)の()にwhoやthatのような普通の関係代名詞を入れた場合、「弱点のある人はいない」という意味になり(a)と真逆の意味になってしまいます。
つまり空所には関係詞としての働きが出来、かつhas weaknesesを否定する働きをする必要があるのでbutが正解となります。
回答ありがとうございます🙏
凄い分かりやすかったです。また機会がありましたらお願い致します。