These are not necessarily all "langauges of c". For the most part, evolution is the difference. Ultimately, different computer programming languages still in use have different applications.
C the oldest of the languages you mentioned and still very prevalent, though not so much on Windows platforms. C is still fairly pre-dominant on POSIX systems (Linux, Unix, FreeBSD) which most computers hosting websites are built upon.
You can think of C++ as being a new generation of C. This language is dominant on the Windows platform as well as many video games. C++ looks very similar to C, however, it provides many new programming paradigms such as Object Oriented Programming or OOP. This is a very important concept as OOP is used in the majority of modern day programming languages (even C has ways of emulating OOP programming).
Visual Basic was an MS language that took some of the BASIC (a language from days gone by) and made a very, very simple way to create Windows Applications. These applications were somewhat limited in performance and advanced capabilities. They also required a "runtime" environment (a bunch of specific DLL files installed on your computer) to work.
Visual Basic .NET carries on the original VB syntax, however, it is really a different animal. All of the .NET languages are various forms of syntax (how you structure and type the code) that do the same thing. It's really the .NET component that is significant...
C# is a language that is similar in syntax to C, C++ and Java, however it is most like java. C# and VB.NET are very different *looking* code, but they both are similar in their relationship to .NET. C# was created to be what's called an interpreted language like Java, and was also create to be more open that previous MS languages (there is a free, open-source C# interpreter known as Mono for Linux/Mac/FreeBSD).