ker(c^\ast \circ f) = \{v|v\in V,c^\ast (f(v))=0\} = \{v|v\in V,f(v)\in ker(c^\ast)\} the last identity comes from the definition of kernel.
As for the second part, I'm not sure if it can be applied to any space W, but if W is finite dimensional with dimension n, then every linear functional's kernel has dimension n-1 or n, and for every n-1 dimensional subspace of W a linear functional can be found that has that subspace as its kernel (that defines that linear functional up to a multiplication by a scalar).
Try thinking of a linear functional acting on the space of nx1 column vectors as a row vector (1xn matrix), that matrix clearly has kernel>=n-1. And every matrix A nx(n-1) which is of full column rank has left kernel of dimension 1. The row vector that spans this kernel is a linear functional, the kernel of which is the column space of A. The same is true if the matrix A is nxm of full column rank, and the column space of A is the kernel of n-m linear functionals which span the left kernel of A, or, in other words, the intersection of the kernels of these n-m linear functionals.
But as for infinite dimensional linear spaces I don't have enough knowledge to give an answer. Basically each subspace of W would have to be the intersection of an infinite amount of kernels of linear functionals, and infinity tends to be strange, so you'd have to read about it yourself in http://en.wikipedia.org/wiki/Dual_space" .
Now, all you have to do is prove that f^{-1}(ker(c^\ast)) is a linear subspace of V and that's it.