热爱开源,热爱linux
分类: LINUX
2009-08-22 11:08:12
下面的六个程序片段主要完成这些事情:
下面的所有程序都可以在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
11.
_____
hello2.c
01.
#include
02.
main(){
03.
int
x=0,y[14],*z=&y;*(z++)=0x48;*(z++)=y[x++]+0x1D;
04.
*(z++)=y[x++]+0x07;*(z++)=y[x++]+0x00;*(z++)=y[x++]+0x03;
05.
*(z++)=y[x++]-0x43;*(z++)=y[x++]-0x0C;*(z++)=y[x++]+0x57;
06.
*(z++)=y[x++]-0x08;*(z++)=y[x++]+0x03;*(z++)=y[x++]-0x06;
07.
*(z++)=y[x++]-0x08;*(z++)=y[x++]-0x43;*(z++)=y[x]-0x21;
08.
x=*(--z);
while
(y[x]!=NULL)
putchar
(y[x++]);
09.
}
hello3.c
01.
#include
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)}
hello4.c
01.
int
n[]={0x48,
02.
0x65,0x6C,0x6C,
03.
0x6F,0x2C,0x20,
04.
0x77,0x6F,0x72,
05.
0x6C,0x64,0x21,
06.
0x0A,0x00},*m=n;
07.
main(n){
putchar
08.
(*m)!=
'\0'
?main
09.
(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
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;}