On Linux systems with the GNU compiler, and also on Windows with the GNU MinGW compiler, iscntrl(0) returns a non-zero value.
The Linux man says:
Function: int iscntrl (int c)
Returns true if c is a control character (that is, a character that is not a printing character).
The '\0' character isn't a printing character, so iscntrl(0) must return a non-zero value.
Regards.