stop sb. from doing sth.中from可以省略
prevent sb from doing sth中的from也可以省略
只有keep的from不能省略
但意思都一样的 ,都表示阻止
至于为什么选B不选A,那是因为如果用一般时,stop作为第三人称单数后的谓语动词,需要加个S,如果用过去时,它又要加上一个ED
keep是保持,选D的话意思不对,变成了:他身体不好,这使他参加任何社会活动(完全反了)
话说是Public不是piblic吧
这句话是否定的语气,他不良的身体状况使他不能参与任何公共活动
D是肯定语气