Cloud hosting is a utility where a cloud service vendor provides a virtual machine instance that does not have fixed computing attributes. While there may be a minimum or maximum size configuration for the server, the virtual machine computing configuration can grow or shrink dynamically dependent on the resources requested by the application. The billing method for the resources is based on usage over a period of time for the CPU, RAM, HD, and Network.
VPS or managed virtual servers are delivered as a traditional managed server although running as a virtual server, typically in a multi-tenant environment. The customer will order the server with fixed attributes and alter those attributes manually, when necessary. Vendors will typically price this service as individual components associated with the machine or as a service bundle and the resources are guaranteed to be available.
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.
In this industry, you should think of these terms as follows:
VPS - single slices of a server. Sometimes the provider will only have 1 sever to slice. There aren't options to pool or aggregate or migrate things to other servers.
Cloud - again, usually single slices of a machine. However software layer usually exists to recreate your instance on other machines and even in other locations geographically. There is some inferred pool thing happening here. Redundancy and high availability very well may not exist depending on the company.
VPS = 1 server cut into slices.
Cloud = multiple servers cut into slices with some panel to move your resource to other servers.
This is all blurred by some modules that take VPS and make them cloud like (aka pooled resources). Pooled resources very much meet the lacking definition of cloud.
Cloud Hosting means when sites are not hosted on any single server, instead a series of servers. One can make a could using series of Servers or VPS boxes, where a VPS are only created on a single server and the sociability is limited to that hardware node.