​/下面的六个程序片段主要完成这些事情:

  1. 输出Hello, World
  2. 混乱C语言的源代码

下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才能编程通过。

hello1.c




1


2


3


4


5


6


7


8


9


10


11




​#define _________ }​


​#define ________​​​​putchar​


​#define _______ main​


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


​#define ______ _______(){​


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


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


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


​#define _____ __ ___ ____ _________​


​#include<stdio.h>​


​_____​



hello2.c




1


2


3


4


5


6


7


8


9




​#include<stdio.h>​


​main(){​


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


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


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


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


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


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


​}​



hello3.c




1


2


3


4


5


6


7


8


9


10


11


12


13


14




​#include<stdio.h>​


​#define __(a)​​​​goto​​ ​​a; ​


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


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


​main()​


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


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


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


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


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


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


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


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


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



hello4.c




1


2


3


4


5


6


7


8


9




​int​​​​n[]={0x48, ​


​0x65,0x6C,0x6C,​


​0x6F,0x2C,0x20,​


​0x77,0x6F,0x72,​


​0x6C,0x64,0x21,​


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


​main(n){​​​​putchar​


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


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



hello5.c




1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


21


22


23


24


25


26


27


28




​main(){​​​​int​​​​i,n[]={(((1<<1)<<(1<<1)<<(1<< ​


​1)<<(1<<(1>>1)))+((1<<1)<<(1<<1))), (((1​


​<<1)<<(1<<1)<<(1<<1)<<(1<<1))-((1<<1)<<(​


​1<<1)<<(1<<1))+((1<<1)<<(1<<(1>>1)))+ (1​


​<<(1>>1))),(((1<<1)<<(1<<1)<<(1<<1)<< (1​


​<<1))-((1<<1)<<(1<<1)<<(1<<(1>>1)))- ((1​


​<<1)<<(1<<(1>>1)))),(((1<<1)<<(1<<1)<<(1​


​<<1)<<(1<<1))-((1<<1)<<(1<<1)<<(1<<(1>>1​


​)))-((1<<1)<<(1<<(1>>1)))),(((1<<1)<< (1​


​<<1)<<(1<<1)<<(1<<1))-((1<<1)<<(1<<1)<<(​


​1<<(1>>1)))-(1<<(1>>1))),(((1<<1)<<(1<<1​


​)<<(1<<1))+((1<<1)<<(1<<1)<<(1<<(1>>1)))​


​-((1<<1)<<(1<<(1>>1)))),((1<<1)<< (1<<1)​


​<<(1<<1)),(((1<<1)<<(1<<1)<<(1<<1)<<(1<<​


​1))-((1<<1)<<(1<<1))-(1<<(1>>1))),(((1<<​


​1)<<(1<<1)<<(1<<1)<<(1<<1))-((1<<1)<< (1​


​<<1)<<(1<<(1>>1)))-(1<<(1>>1))), (((1<<1​


​)<<(1<<1)<<(1<<1)<<(1<<1))- ((1<<1)<< (1​


​<<1)<<(1<<(1>>1)))+(1<<1)), (((1<<1)<< (​


​1<<1)<<(1<<1)<< (1<<1))-((1<<1)<< (1<<1)​


​<<(1<<(1>>1)))-((1<<1) <<(1<< (1>>1)))),​


​(((1<<1)<< (1<<1)<<(1<<1)<< (1<<1))- ((1​


​<<1)<<(1<<1)<<(1<<1))+((1<<1)<< (1<<(1>>​


​1)))), (((1<<1)<<(1<<1) <<(1<<1))+(1<<(1​


​>>1))),(((1<<1)<<(1<<1))+((1<<1)<< (1<<(​


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


​<(((1<<1) <<(1<<1))+((1 <<1)<< (1<<(1>>1​


​))) + (1<<1)); i++)​​​​printf​​​​(​​​​"%c"​​​​,n[i]); }​



hello6.cpp

下面的程序只能由C++的编译器编译(比如:g++)




1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


21


22


23


24


25


26


27


28


29


30


31


32


33


34




​#include <stdio.h>​


​#define _(_)​​​​putchar​​​​(_);​


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


​++++++++++++++++++++++++++++​


​++++++++++++++++++++++++++++​


​++++++++++++++++++++++++++++​


​++++++++++++++++++++++++++++​


​++++++++++++++++++++++++++++​


​++++i)_(++++++++++++++++++++​


​++++++++++++++++++++++++++++​


​++++++++++i)_(++++++++++++++​


​i)_(--++i)_(++++++i)_(------​


​----------------------------​


​----------------------------​


​----------------------------​


​----------------------------​


​----------------i)_(--------​


​----------------i)_(++++++++​


​++++++++++++++++++++++++++++​


​++++++++++++++++++++++++++++​


​++++++++++++++++++++++++++++​


​++++++++++++++++++++++++++++​


​++++++++++++++++++++++++++++​


​++++++++++++++++++++++++++i)​


​_(----------------i)_(++++++​


​i)_(------------i)_(--------​


​--------i)_(----------------​


​----------------------------​


​----------------------------​


​----------------------------​


​----------------------------​


​------i)_(------------------​


​----------------------------​


​i)​​​​return​​​​i;}​