The issue of C vs. C++ has been discussed more then often enough already.
The FreeBSD project is a collection of software and all that belongs to it, including man pages, howtos and other documentation that does not require any programming skills to create. Another large part of the project is the ports system. Ports themselves are written in make language, though it might be helpful to understand the language the software that is packaged by them is written in (it's not especially useful to know C if you're trying to port a perl module). Of cause there's the ``code'', too, mostly written in C. However many parts of the development are done out of tree (e.g. the new sort, libstdc++, ... are all developed by subprojects and/or teams that are mostly unrelated to FreeBSD).
McKusick wrote the Design and Implementation of the FreeBSD Operating System, which is a good start into the kernel source if you're interested.
When it comes down to books on programming languages, I don't know any good ones (other then K&R's The C Programming Language mentioned before already). However, knowledge about algorithmics will help a lot independent of what you're programming or in what language you're doing it, and there's a lot of good books on it.