Write a program that prints itself.
main(){char*a="main(){char*a=%c%s%c;printf(a,34,a,34);}";printf(a,34,a,34);}
This is pretty cute too... and probably more to the spirit of what DJ is looking for.
(Although scripting languages that can easily deal with the file containing the source make the problem trivial, as my previous solution demonstrates).
I found this solution at:
http://www.its.caltech.edu/~boozer/symbols/programs.html
--- SK