For (c) we can use the fact that $(X, d)$ is compact if and only if it's complete and totally bounded (see here).
We argue by contradiction. If $(X, d)$ is not compact, then it is not totally bounded and there is $\epsilon >0$ so that $(X, d)$ is not covered by finitely many balls of radius $\epsilon$. By induction, that means there is a sequence $\{x_n\}$ in $X$ so that
$$d(x_n , x_m) \ge \epsilon, \ \ \ \forall n\neq m.$$
Since $(X, d)$ has only finitely many isolated points, by taking a subsequence if necessary, we may assume that none of $x_n$ is isolated. So there is $\epsilon> \delta(n) \to 0$ and $y_n \in B(x_n, \delta (n)), y_n \neq x_n$.
Then define $f \in C(X, \mathbb R)$ by
$$ f (x) = \sum_{n=1}^\infty \max\left\{ 0, 1-\frac{ d(x, x_n)}{d(y_n,x_n)}\right\}.$$
Then $f(x_n) =1, f(y_n) = 0$. Since $d(y_n, x_n) \le \delta (n)$, this $f$ cannot be uniform continuous. Thus $(X, d)$ has to be totally bounded.
Remark I've used implicitly that (a) is true. To see this, one can argue similarly: if $(X, d)$ is not complete, then there is $y\in \overline X$ in the completion of $(X, d)$ and $a_n \to y, a_n \in X$ (abusing by thinking $X\subset \overline X$). But the function
$$g: X\to \mathbb R ,\ \ g(x) = \frac{1}{d_{\overline X} (x, y)}$$
is continuous and is not uniform continuous: if it is, the function $g$ can be extended to $\overline X$.
For (b), your intuition is completely correct: Just take any infinite set $X$ and give it the discrete metric. All functions are continuous and uniform continuous, but $(X, d)$ is not compact.