C Interview Questions and Answers


Here is a good puzzle: how do you write a program which produces its own source code as output?

It is actually quite difficult to write a self-reproducing program that is truly
portable, due particularly to quoting and character set difficulties.

Here is a classic example (which ought to be presented on one line, although it
will fix itself the first time it's run):



(This program has a few deficiencies, among other things neglecting to #include
<stdio.h>, and assuming that the double-quote character " has the value
34, as it does in ASCII.)

#define q(k)main(){return!puts(#k"nq("#k")");}

q(#define q(k)main(){return!puts(#k"nq("#k")");})

Posted by:Richards