First, some comments on discretization schemes for elliptic problems in general.
There are some improvements you can make on the difference scheme that you've derived.
The idealized problem is to solve a linear system with a self-adjoint, positive-definite linear operator.
Your discretization has the right order of accuracy but fails to be self-adjoint.
As Wolfgang alluded to in the comments, the usual approach is to evaluate the diffusion coefficient at the midpoint.
Let's just look at a 1D problem to simplify things; you can think of this as evaluating the fluxes at cell midpoints:
$$F(x + h/2) = K\cdot\frac{dC}{dx}(x + h / 2) \approx K(x + h / 2)\frac{C(x + h) - C(x)}{h}$$
and then evaluating the divergence at the midpoint of midpoints, i.e. back on the nodes:
$$\nabla\cdot F(x) \approx \frac{F(x + h / 2) - F(x - h/2)}{h}.$$
For 2D problems you can play the same game in the $y$ direction as well.
You can find more information about this in $\S$2.15 of Leveque's book.
But you don't just have any old elliptic problem; you've specified that the diffusion coefficient is discontinuous, and in this case a few things break down.
First, it's rare that a PDE is actually a first principle.
They really start life as a conservation law:
$$\forall \omega \subset \Omega, \quad \int_{\partial\omega}K\nabla C\cdot\nu\,ds = \int_\omega a\,dx$$
where $\nu$ is the unit outward normal vector to $\partial\omega$, or a variational form:
$$\forall v \in H^1(\Omega), \quad \int_\Omega K\nabla C\cdot\nabla v\,dx = \int_\Omega a\cdot v\, dx.$$
To derive a PDE, you need to apply the divergence theorem one way or the other, which assumes everything is differentiable.
PDEs are convenient lies that we tell ourselves in order to write down analytical solutions in nice geometries with constant coefficients.
For this reason, I don't recommend using the manipulations in Željko_JL's answer -- those only make sense when $K$ is differentiable.
Likewise, a lot of the convergence theory for finite difference methods relies on the same assumptions of continuity and differentiability.
Now it's possible that a finite difference method will still converge, but it's typical to lose half an order of convergence.
For example, the difference scheme I wrote down above has relative $L^2$-norm error that goes like $\mathscr{O}(h)$ for nice problems, but instead converges like $\mathscr{O}(h^{1/2})$ when the diffusion coefficient is discontinuous.
This is a pretty dramatic loss of efficiency.
To work around this loss of accuracy, you have two options.
First, there are some hacks that make the finite difference method yield higher-order convergence for problems with discontinuous coefficients.
You can find this in Li and Ito.
Second, you can try to align the grid exactly with the discontinuities in $K$.
If these discontinuities are geometrically simple you might still be able to use the finite difference method.
If they aren't, you may have an easier time using an unstructured mesh and switching to using the finite element method.
The classic thing to test when the diffusion coefficient is discontinuous is that the derivative has a jump at the interface:
$$K_1\nabla C_1\cdot \nu_1 + K_2\nabla C_2\cdot\nu_2 = 0$$
which is again something you can derive from the conservation law or the variational form.
To stress test your solver, in order of difficulty, try a problem where (1) the jumps in $K$ are aligned with the coordinate axes and they fall on the nodes of your finite difference grid, (2) the jumps are still aligned with the coordinate axes but they fall off the grid, (3) the jumps fall on straight interfaces that are not aligned with the coordinate axes, and (4) the jumps are on curved interfaces.