假设A说的是实话,“是C或D打碎的”,则C、D中有一个说了实话,一个说了谎话,所以B说的就是实话,打碎玻璃的是D,C说的也是实话,与他们中只有一个人说了谎话符合;
假设B说的是实话,则D说的也就是谎话,A、C说的也是实话,所以打碎玻璃的是D,与他们中只有一个人说了谎话符合;
假设C说的是实话,则A、B、D中有一人撒谎,若D说的是实话,则A、B两人都撒谎,所以不符合只有一人说谎,所以D说谎,故打碎玻璃的是D;
假设D说的是实话,则B说谎,所以C也说了实话,所以打碎玻璃的应是A或B,所以A也说谎,与只有一个人说了谎话矛盾,所以D说谎故都是玻璃的是D.
故选D.