Just for fun, here's a quote from "The C++ Programming Language, special edition", §4.6 for you:
In addition, is is guaranteed that a char has at least 8 bits, a short at least 16 bits, and a long at least 32 bits.
It might not be the standard, but Stroustroup tends to get his facts right. He also probably has a copy of the standard on his shelf, which I don't.
The minimum 16 bit shorts ands ints, and 32 bit longs, are mentioned in K&R 1989 edition. I didn't bother trying to find a note about char sizes.
EDIT: Of course, if you're programming an 8-bit cpu, the C compiler might not follow the standard in regards to minimum sizes. I wouldn't be surprized if C compilers that use 8 bit ints exist. And maybe there's no floating point support at all, etc.