C语言有哪些有意思的编程题

www.ioccc.org 国际最难懂C代码竞赛(IOCCC)
这是他们每年干的活:
Previous IOCCC Winners摘个题目:
显示海星(C编译器版本不同,显示的内容也不同),而且这个程序编译运行后的输出又是一个C程序,还可以继续编译运行
Most Pointed ReactionD:\\Temp\u0026gt; cat prog.c
#define r(R) R"()" /**/ float I,bu,k,i,F,u,U,K,O;char o;int #define R(U) (sizeof(\u0026#39;U\u0026#39;)==1||sizeof(U"1")==1) h=0,t=-1,m=80,n=26,d,g,p=0,q=0,v=0,y=112,x=40; float N(float/*x*/_){g=1\u0026lt;\u0026lt;30;d=-~d*1103515245\u0026amp;--g;return d*_ /g;}void/**/w(int/**/_){if(t\u0026lt;0){for(g=0;g\u0026lt;5200;o= 0);for(;g;o=10)g-=80;for(t=37;g\u0026lt;62;o=32) ; }if(m\u0026amp;\u0026amp;o==10){for(g=0;g\u0026lt;79;o=0){}o=10;t%=64;n+=2;I=N(70)+5;if(n\u0026gt;30\u0026amp;\u0026amp;(I-x)*(I-x)+n* n\u0026gt;1600\u0026amp;\u0026amp;R()){O=0;F=(x=0x1!=sizeof(\u0026#39; \u0026#39;))?k=1+N(2),i=12-k+N( 8),N(4):(k=17+N(5),i=0,r()?O=.1: 0);for(u=U=-.05;u\u0026lt;32; U=k+i+i*.5*sin((u+=.05)+F))for( K=0 ;K\u0026lt; U;K+=.1)if((bu=K* sin(u/5),g=I+cos( u/5) *K)\u0026gt;=0\u0026amp;\u0026amp;g \u0026lt; 79 )o =32;x*=02//* */2 -1;n=O+x?n=I+(x?0 :N (k)- k /2),g=(t+42 )% 64,m=-~g%64,x?g=m =-~ m%64:0 ,n\u0026gt;5?o=o= 0: 0 ,n \u0026lt;75?o=o=0 :0:0; x=I;}h=-~h%64 ;m=0;}putchar((g=o )?g:_); if(g){w(_);}}void W (const char*_ ){for(;*_;w(*_++));} int main(int a ,char**_){while(a--)d +=_-(char*)0;W( \\ "#include\u0026lt;stdio.h\u0026gt;typed" "e" "f\\40int\\40O;v" "oid o(O _){putchar(_);}O" "\\40main(){O" """*_,**p=_,**d,b,q;for(b=0;b" "++\u0026lt;512;p=_+q)_=(O*)p;") ; for(;(g= getchar())-EOF;p=q){q=p;for(v=512;p-q-g\u0026amp;\u0026amp;q-p- g; v--)q=-~q*9%512;W("o(");if(p\u0026gt;q)w(y),w(45);w( 40);w(y^=20);w(075);for(a=0;a\u0026lt;v;a++)w(42); for(W("(O**" );a--;w(42)){}w(41);w(y^024);w( 41);if(p\u0026lt;=q)w( 45),w(y^20);W(");");}for(a=7;a-6 ;W(a\u0026lt;6?"{;}":"" ))for(a =0;a \u0026lt;6 \u0026amp;\u0026amp; !o;a++){}W("r" "etu" /*J */ "rn+0;}\" );return /* "#*/0 ;}
编译:
D:\\Temp\u0026gt;gcc -std=c90 prog.c -o prog.exe
运行prog.exe
D:\\Temp\u0026gt; echo Hello World | prog.exe \u0026gt; output.c
D:\\Temp\u0026gt; cat output.c
#include\u0026lt;stdio.h\u0026gt;typedef int O;void o(O _){putchar(_);}O main(){O*_,**p=_,**d,b,q;for(b=0;b++\u0026lt;512;p=_+q)_=(O*)p;o((d=****************************************************************************************(O******************************************************************************************)p)-p);o((p=******************************************************************************************************************************************************************************************************************************************************************************************************************************************* ************************************************************************* *******************************(O************************************** ********************************************************************** ********************************************************************** *********************************************************** ***** *********************************************************** * ********************************************** ********************************************* ********************************************) d)-d);o(p-(d=************************************ ******************************************************* *********************************************************** ********************************************************** ******************************************************** * ***************** ********************************* *** ************* ******************************** ****** ************ ******************************** *********** *********** *****************************************(O****** ********* ************************************************ ***** ************************************************ ** ************************************************** *************************************************** ***************************************************** ********************************************** ******************************************** ******************************************* **************************************** *********************************)p)); o((p=********************************** **(O**************************************)d) -d);o((d=********************************* ** *************************************** ***** ************************************** ********* ************************************* ****************** ************************************ ******************* ******************************* *** ********************* ******************************* *******(O**************** ********************************* ************************************************************** *************************************************************** ******************************************************** ************************************************** *********************************************** ****)p)-p);o(d-(p=**************************** ********************************************** *********************************************** *************** *************************** ****************************** ************************** ***************************** *************************** *************************** *************************** *************************** *************************** *************************** ******(O******************** ********* ********* ***************************** ******* **** ****************************** ******* ** ************** ******** *************** *********** ******************************* *********************************** **************************************** ********************************************** ************************************************** ***************************************************)d) );o(p-(d=***************************************** ************************************************ ******************************** ******** *** ****************************** ****** ****** ***************************** ***** ******** ***************************** **** ************* ***************************** ****** ****************** ****(O*********************** ****************************** ****************************** ****** ************************************************ *** ************************************* ******* *********************************** *********************************** ************************************* ******************************)p));o(d- (p=*************************************** ********************************************** ******************************************************** ****************************************************** *************************************************** *****************************************(O****** *********************************************** *** ********************************************** ****** ********************************************** ********** ********************************************** ************** ********************************************* ****************** **)d));o((d=******************************** ******(O************ ****************************)p)-p);o((p=***************************** ********************************************************************* ********************************************************************* ****** ****************************************************** * *************************************** ************************************** *******************(O***************** **************************************** ********************************************* ***************************************************** *********************************************************** ******************************************************** ***************************************************** ***)d)-d);o(p-(d=******************* ************ ** ********************************** ********** ***** **(O**************************** ********* ******** ********************************* ********) p));o(d-(p=*** ********************************** ********** ***************************************************** ************************************************************ *** ************************************************************ ********************************************** ********************************************* ********************************************* *******************************************(O** ***************************************************** ******************************************************** ********************************************************* ******************************************************* ****************************************************** *** ***************************************************** ***** ********************** *************************** ********* ********)d));return+ 0;}


推荐阅读