vector spaces equipped with a ring do not necessarily have inverses. for example, what is x^-1 in R[x]?
however, quaternions are special, they form a division ring, which is what we need for (multiplicative) inverses to exist.
it is this same property (existence of inverses) that allows you to prove surjectivity.
but those are minor points, easily fixed by the addition of a single word ("divison" in front of ring) in your proof.
you also need to show that is a linear map. i recommend invoking the distributive law, and the fact that real numbers
commute with quaternions.
for part (b) you are looking for a 4x4 (real) matrix that corresponds to (left) mulitplication by q. fix an arbitrary quaternion q' in H,
and calculate qq', collecting terms by basis elements. for example, if q' = a' + b'i + c'j +d'k, the real term will be:
aa' - bb' - cc' - dd', so the first row should be [a -b -c -d].