答案与解析:好事应该是C做的。
①假设A说的是实话,则C说的也属实话,不符合题意,所以A说的是假话;
②假设B说的是实话,那么好事应该是D做的,C说的应该是实话,显然这与“只有一个人讲了实话”相矛盾,所以B说的是假话;
③假设C说的是实话,即好事不是C做的,也因①、②已分别说明B和D未做,则只剩下A做,那么D说的也是真话,这与题设相矛盾,所以C说的也是假话;
④假设D说的是实话,那好事应该不是D做的,是C做的.符合题设条件。
所以,好事应该是C做的。