I believe that the answers are incorrect. They assume that all true boolean expressions evaluate to 1, whereas the c standard only guarantees that they don't evaluate to 0.
It's not wrong. If you read the intro, they note that those traits are implementation defined, so they say to assume you're using an implementation with those characteristics.
"When any scalar value is converted to _Bool, the result is 0 if the value compares equal to 0; otherwise, the result is 1"
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf page 43