It's unclear which of the contents of the program are used. Curiously, the program only works if its source is in the directory it's run in. Modern design has come a long way since the unreadable, tightly-coupled systems we used to have. You can guess a letter simply by typing it in. If your C implementation requires it, you may have to hit Return before it is recognized.
Execution stops when all underscores have been replaced.
All words are eight characters long. Due to space restrictions, I did not use any trigraph sequences. It does not require any special -D defines. Actually, the code not only is compliant with the ANSI specifications, but uses a near minimum subset of them. There also may be some compiler warnings.