(a) is simply to verify that J is an ideal in Z[x] (Note that Z[x] is not a P.I.D. )
(b) Z[x] / (x) \cong Z. You can find a surgective group homomorphism from Z[x] to Z whose kernel is (x). Then by the first isomorphism theorem, Z[x] / (x) \cong Z. It means Z[x]/J has an infinite number of distinct cosets.