Functions from the C standard library shall not throw exceptions (Note: That is, the C library functions can all be treated as if they are marked noexcept. This allows implementations to make performance optimizations based on the absence of exceptions at runtime.),
except when such a function calls a program-supplied function that throws an exception. (Note: The functions qsort() and bsearch() meet this condition.)
Destructor operations defined in the C++ standard library shall not throw exceptions. Every destructor in the C++ standard library shall behave as if it had a non-throwing exception specification.
Amended my post to say "most functions" instead of "all functions", thanks for the correction.
Essentially the absence of a "throws:" clause in the standard doesn't imply "no exceptions are thrown".
Instead it means "no exceptions are thrown if preconditions are satisfied". All this is covered in the linked papers.