Aside from 0 indicating success, there are no conventional exit codes. In addition, non-zero does not always imply failure.
EXIT FAILURE is set to 1 and EXIT SUCCESS is set to 0, but that's about it in the header file stdlib.h.
The 11 on segmentation fault is noteworthy since 11 is the signal number used by the kernel to terminate a process when it encounters a segmentation fault. There's probably a mechanism somewhere, either in the kernel or in the shell, that converts that to an exit code.