Rules for languages differ by contest. I believe all of them accept C and C++ solutions, most also accept java. Erlangists and Lispers are going to have a bad time, though.
There is one site (http://spoj.pl) that takes the former approach but supports a huge variety of languages from assembler to Haskell.
Many popular and large contests allow any language you want. This is often solved by letting the contestant download a problem file, running his solution and uploading a solution file along with the source code for verification (cf. Google Code Jam). This frees the organisers from having to support every language, interpreter or compiler anyone would perhaps use (which is often the largest problem when it comes to supporting different languages).
I coded on Pascal myself when I was of the winners of Ukranian computer science olympiad.