Quote Originally Posted by C17 Clause 5.1.2.2.3 Paragraph 1
If the return type of the main function is a type compatible with int, a return from the initial call to the main function is equivalent to calling the exit function with the value returned by the main function as its argument; reaching the } that terminates the main function returns a value of 0. If the return type is not compatible with int, the termination status returned to the host environment is unspecified.
Quote Originally Posted by Algonon
If exit() always executes, is there any point in explicitly closing files at the end of the program?
Yes. You make it clear that these files were open and hence should be closed, which then avoids leaving them open unnecessarily should more code be later added to the program.

Of course, if this is a trivial one-off program, then there's no point, but such programs when written by experienced programmers can freely break all the rules of good practice as they deem fit.