To have $f \in L^p$ and $f \not \in L^q$ where $p<q$, you want $f$ to blow up on a small set, but not too fast. One example is $x^{-1/2}$ on $(0,1)$.
$C(0,1)$ is not complete with respect to the $L^p$ (for $p<\infty$) norms for the following reason. Build a sequence of functions which are $0$ on a large set, $1$ on another large set, and piecewise linear on a small set between them. As the small set becomes smaller and smaller, the function looks more and more like a function with a jump discontinuity, but it still converges in $L^p$. One should be careful here, though: to prove the incompleteness you must also show that there is no continuous function which is equal almost everywhere to this function with a jump discontinuity.
If your space is such that $L^p$ is a proper subset of $L^q$, then you can always approximate a $L^q \setminus L^p$ function by $L^p$ functions, so that $L^p$ will not be complete in the $L^q$ norm. In our $(0,1)$ example, you had $L^2 \subset L^1$, and we can $L^1$-approximate the function $f(x)=x^{-1/2}$ by $f_n(x)=x^{-1/2} 1_{(1/n,1)}$.
The statement that $L^p$ is complete is called the Riesz-Fischer theorem and it has a standard proof that you can easily look up. The idea of the proof is, given a sequence which is Cauchy in $L^p$, identify a subsequence which converges pointwise a.e. The pointwise limit gives you a candidate for the limit of the full sequence. You then show that the whole sequence converges in $L^p$ to that limit.