Proof of properties of injective and surjective functions. I'd like to see if these proofs are correct/have them critiqued.

Let $g: A \to B$ and $f: B \to C$ be functions.  Then:
  (a) If $g$ and $f$ are one-to-one, then $f \circ g$ is one-to-one.
  (b) If $g$ and $f$ are onto, then $f \circ g$ is onto.
  (c) If $f \circ g$ is one-to-one, then $f$ is one-to-one?
  (d) If $f \circ g$ is one-to-one, then $g$ is one-to-one?
  (e) If $f \circ g$ is onto, then $f$ is onto?
  (f) If $f \circ g$ is onto, then $g$ is onto?  

(a)  Let $a,b \in A$.  If $(f \circ g)(a)=(f \circ g)(b)$, then $f(g(a))=f(g(b))$.  Since $f$ is one-to-one, we know that $g(a)=g(b)$.  And, since $g$ is one-to-one is must be that $a=b$.  Hence $f \circ g$ is one-to-one.  
(b) Since $f$ is surjective we know that for all $c \in C$ there is a $b\in B$ such that $f(b)=c$.  Since $g$ is surjective, there is a $a \in A$ such that $g(a)=b$.  Hence, for all $c \in C$ there is an $a \in A$ such that $(f \circ g)(a)=f(g(a))=f(b)=c$.  
(c)  This is false.  Let $A=\{1\}$, $B=\{1,2\}$, and $C=\{1\}$. Define $g(1)=1$ and $f(1)=f(2)=1$. Then $f \circ g$ is injective, but $f$ is not injective.  
(d)  This is true.  Let $a,b \in A$ where $a \neq b$.  If $(f\circ g)(a)\neq(f\circ g)(b)$, then $f(g(a))\neq f(g(b))$.  Hence $g(a) \neq g(b)$.
(e)  Since $f \circ g$ is surjective, then for every $ c \in C$ there is an $a \in A$ such that $f(g(a))=c$.   Let $b = g(a)$.  Then $b \in B$ and $f(b)=g(f(a))=c$.  Thus $f(b)=c$.  Hence $f$ is surjective.
(f)  Using the same set up as part (c), we have that $g$ is not surjective since there is nothing in $A$ such that $g$ will go to 1.
 A: Nicely done! In part (f), I think you mean that $g$ is not surjective since there is nothing in $A$ that $g$ will take to $2,$ but the idea is spot on.
A minor critique for your proof of (b): I would instead suggest that you take an arbitrary $c\in C$, use surjectivity of $f$ to conclude that there is some $b\in B$ such that $f(b)=c$, then use surjectivity of $g$ to conclude that there is some $a\in A$ such that $g(a)=b,$ whence $(f\circ g)(a)=c$ as you showed. Since $c$ was an arbitrary element of $C,$ then for all $c\in C$ there exists $a\in A$ such that $(f\circ g)(a)=c$. This is basically the same as the approach you took, but the connection is a bit clearer and more justified, to my mind.
You mentioned that you weren't sure about part (e). You can clean it up a bit by again taking an arbitrary $c\in C,$ concluding from surjectivity of $f\circ g$ that there is some $a\in A$ such that $(f\circ g)(a)=c,$ and noting that $g(a)\in B$ and $f\bigl(g(a)\bigr)=c.$ Since $c$ was an arbitrary element of $C,$ then for all $c\in C$ there exists $b\in B$ such that $f(b)=c$. As an alternate approach, you could let $h$ be the restriction of $f$ to the range of $g$--that is, $h:g(A)\to C$ is defined by $h(b)=f(b)$ for all $b\in g(A)$. Note/prove that $h$ is surjective if and only if $f\circ g$ is. Since $h$ is a restriction of $f$ and is surjective, then $f$ is surjective. I think your approach is better, personally, but you mentioned you weren't sure about it.
A: For a), By the definition of an injection take $a\neq b$, then $f(g(a))\neq f(g(b))$.
But you started assuming they are equal which is confusing.
Also, when you start by saying since f is one-to-one, that means $g(a) = f(a)$, because $g(a)$ comes in as input to the function $f$. I.e. $f(g(a))$ in other words. 
Not what you said: "Since f is one-to-one, we know that $g(a)=g(b)$"
The way you wrote it is backwards (for me) and not very clear. But your final answer is right, so hey! You passed right? You asked for critique, so this is mine. No hard feelings :p.
Also, it sounds like you are assuming contradiction when using '$=$' sign, but you did not state it if that is what you did. Again, check the definition of an injection(one-to-one).
