The National Institute of Standards and Technology defined cloud computing as "a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction." (Source:
http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf). However, many people usually add on to the definition by usually saying it requires high availability (the a system that allows for continuous operation/fault tolerant system). This is all debatable, however the NIST's definition is what everyone goes off of.
VPS is simply defined as a virtual machine usually sold as a service by a hosting company. It includes it's own operating system and is frequently compared to as an equivalent to a dedicated server (this is disputable as you can see from hosts who advertise on LET). Very frequently, a cloud computing instance is a VPS, however a VPS is not always a cloud system.
Hosting is simply having someone else "host" your hardware.