A real symmetric n * n matrix has n eigenvalues (including geometric multiplicity)

In particular, such a matrix is diagonalizable, and even by an orthogonal basis.
Proof:
Let M be such a matrix.

For n=1, M is simply a scalar, and the statement is obvious.

So suppose the statement is true for n-1, and prove it for n * n matrices. We first wish to show M has a real eigenvalue (not all real matrices do!). To this end, consider f(v) = (Mv, v), as a function from the unit sphere of R^n to R. Since the sphere is compact, f attains global extrema, say at some unit vector u. But deriving f, we see that (grad f)(v) = 2Mv; by the Lagrange multiplier rule, at any extremum of f, grad f is in the direction of the normal to the sphere. Since the normal to the sphere at v is in the direction of v, it follows that at the extremum u, Mu = mu for some scalar m. But that means u is an eigenvalue of M.

Now we shall "deflate" M to an (n-1)*(n-1) symmetric matrix M', and apply the induction hypothesis. Let V' = {v | (u,v)=0} be the orthogonal complement of V (dim V' = n-1). All we must show is that M|V' (M, restricted to act only on V') is a symmetric matrix; applying the induction hypothesis, it has n-1 distinct eigenvectors, and along with u, M has n distinct eigenvectors, hence it has n distinct eigenvalues counting multiplicity.

Pick any orthonormal basis {w_1,...,w_{n-1}} for V'. Then {w_1,...,w_{n-1},u} is a basis for V. Representing the operator M by that basis, we still have a symmetric matrix, but (since u is an eigenvector) we know that the last row/column is (0,...,0,m). Dropping the last row and column, we see that M' is an operator from V' to V', and that it is represented by a symmetric matrix in some basis, so it is symmetric. Thus the induction hypothesis holds, and we are done.

QED.