以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  6个变态的C语言Hello World程序  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=85032)


--  作者:卷积内核
--  发布时间:6/1/2010 9:06:00 AM

--  6个变态的C语言Hello World程序
下面的六个程序片段主要完成这些事情:

输出Hello, World
混乱C语言的源代码
下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才能编程通过。

hello1.c

01     #define _________ }  

02     #define ________ putchar

03     #define _______ main  

04     #define _(a) ________(a);  

05     #define ______ _______(){  

06     #define __ ______ _(0x48)_(0x65)_(0x6C)_(0x6C)  

07     #define ___ _(0x6F)_(0x2C)_(0x20)_(0x77)_(0x6F)  

08     #define ____ _(0x72)_(0x6C)_(0x64)_(0x21)  

09     #define _____ __ ___ ____ _________  

10     #include<stdio.h>  

11     _____

hello2.c

1     #include<stdio.h>  

2     main(){  

3       int x=0,y[14],*z=&y;*(z++)=0x48;*(z++)=y[x++]+0x1D;  

4       *(z++)=y[x++]+0x07;*(z++)=y[x++]+0x00;*(z++)=y[x++]+0x03;  

5       *(z++)=y[x++]-0x43;*(z++)=y[x++]-0x0C;*(z++)=y[x++]+0x57;  

6       *(z++)=y[x++]-0x08;*(z++)=y[x++]+0x03;*(z++)=y[x++]-0x06;  

7       *(z++)=y[x++]-0x08;*(z++)=y[x++]-0x43;*(z++)=y[x]-0x21;  

8       x=*(--z);while(y[x]!=NULL)putchar(y[x++]);  

9     }

hello3.c
01     #include<stdio.h>  

02     #define __(a) goto a;  

03     #define ___(a) putchar(a);  

04     #define _(a,b) ___(a) __(b);  

05     main()  

06     { _:__(t)a:_('r',g)b:_('$',p)  

07       c:_('l',f)d:_(' ',s)e:_('a',s)  

08       f:_('o',q)g:_('l',h)h:_('d',n)  

09       i:_('e',w)j:_('e',x)k:_('\n',z)  

10       l:_('H',l)m:_('X',i)n:_('!',k)  

11       o:_('z',q)p:_('q',b)q:_(',',d)  

12       r:_('i',l)s:_('w',v)t:_('H',j)  

13       u:_('a',a)v:_('o',a)w:_(')',k)  

14       x:_('l',c)y:_('\t',g)z:___(0x0)}



--  作者:卷积内核
--  发布时间:6/1/2010 9:07:00 AM

--  
hello4.c
1     int n[]={0x48,  

2     0x65,0x6C,0x6C,  

3     0x6F,0x2C,0x20,  

4     0x77,0x6F,0x72,  

5     0x6C,0x64,0x21,  

6     0x0A,0x00},*m=n;  

7     main(n){putchar

8     (*m)!='\0'?main  

9     (m++):exit(n++);}

hello5.c
01     main(){int i,n[]={(((1<<1)<<(1<<1)<<(1<<  

02     1)<<(1<<(1>>1)))+((1<<1)<<(1<<1))), (((1  

03     <<1)<<(1<<1)<<(1<<1)<<(1<<1))-((1<<1)<<(  

04     1<<1)<<(1<<1))+((1<<1)<<(1<<(1>>1)))+ (1  

05     <<(1>>1))),(((1<<1)<<(1<<1)<<(1<<1)<< (1  

06     <<1))-((1<<1)<<(1<<1)<<(1<<(1>>1)))- ((1  

07     <<1)<<(1<<(1>>1)))),(((1<<1)<<(1<<1)<<(1  

08     <<1)<<(1<<1))-((1<<1)<<(1<<1)<<(1<<(1>>1  

09     )))-((1<<1)<<(1<<(1>>1)))),(((1<<1)<< (1  

10     <<1)<<(1<<1)<<(1<<1))-((1<<1)<<(1<<1)<<(  

11     1<<(1>>1)))-(1<<(1>>1))),(((1<<1)<<(1<<1  

12     )<<(1<<1))+((1<<1)<<(1<<1)<<(1<<(1>>1)))  

13     -((1<<1)<<(1<<(1>>1)))),((1<<1)<< (1<<1)  

14     <<(1<<1)),(((1<<1)<<(1<<1)<<(1<<1)<<(1<<  

15     1))-((1<<1)<<(1<<1))-(1<<(1>>1))),(((1<<  

16     1)<<(1<<1)<<(1<<1)<<(1<<1))-((1<<1)<< (1  

17     <<1)<<(1<<(1>>1)))-(1<<(1>>1))), (((1<<1  

18     )<<(1<<1)<<(1<<1)<<(1<<1))- ((1<<1)<< (1  

19     <<1)<<(1<<(1>>1)))+(1<<1)), (((1<<1)<< (  

20     1<<1)<<(1<<1)<< (1<<1))-((1<<1)<< (1<<1)  

21     <<(1<<(1>>1)))-((1<<1) <<(1<< (1>>1)))),  

22     (((1<<1)<< (1<<1)<<(1<<1)<< (1<<1))- ((1  

23     <<1)<<(1<<1)<<(1<<1))+((1<<1)<< (1<<(1>>  

24     1)))), (((1<<1)<<(1<<1) <<(1<<1))+(1<<(1  

25     >>1))),(((1<<1)<<(1<<1))+((1<<1)<< (1<<(  

26     1>>1))) + (1<< (1>>1)))}; for(i=(1>>1);i  

27     <(((1<<1) <<(1<<1))+((1 <<1)<< (1<<(1>>1  

28     ))) + (1<<1)); i++) printf("%c",n[i]); }
hello6.cpp

下面的程序只能由C++的编译器编译(比如:g++)
01     #include <stdio.h>  

02     #define _(_) putchar(_);  

03     int main(void){int i = 0;_(  

04     ++++++++++++++++++++++++++++  

05     ++++++++++++++++++++++++++++  

06     ++++++++++++++++++++++++++++  

07     ++++++++++++++++++++++++++++  

08     ++++++++++++++++++++++++++++  

09     ++++i)_(++++++++++++++++++++  

10     ++++++++++++++++++++++++++++  

11     ++++++++++i)_(++++++++++++++  

12     i)_(--++i)_(++++++i)_(------  

13     ----------------------------  

14     ----------------------------  

15     ----------------------------  

16     ----------------------------  

17     ----------------i)_(--------  

18     ----------------i)_(++++++++  

19     ++++++++++++++++++++++++++++  

20     ++++++++++++++++++++++++++++  

21     ++++++++++++++++++++++++++++  

22     ++++++++++++++++++++++++++++  

23     ++++++++++++++++++++++++++++  

24     ++++++++++++++++++++++++++i)  

25     _(----------------i)_(++++++  

26     i)_(------------i)_(--------  

27     --------i)_(----------------  

28     ----------------------------  

29     ----------------------------  

30     ----------------------------  

31     ----------------------------  

32     ------i)_(------------------  

33     ----------------------------  

34     i)return i;}


--  作者:elfstone
--  发布时间:6/3/2010 10:02:00 PM

--  
有够变态。。。全是替换与运算~~
--  作者:vfdff
--  发布时间:8/20/2010 1:05:00 AM

--  
可读性不好!
--  作者:58home
--  发布时间:8/20/2010 2:40:00 AM

--  
[URL=http://www.ahjoe.com/prodrescu.asp]照片恢复软件[/URL]
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms