當前位置:首頁 » 編程語言 » 國際c語言亂碼大賽
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

國際c語言亂碼大賽

發布時間: 2022-10-23 20:38:20

A. 請問:這道題怎麼做c語言

下面這段代碼即為第19屆IOCCC(國際混亂C語言代碼大賽)優勝作品:「A clock in one line」。

main(_){_^448&&main(-~_);putchar(--_%64?32|-~7[__TIME__-_/8%8][">'txiZ^(~z?"-48]>>";;;====~$::199"[_*2&8|_/64]/(_&2?1:8)%8&1:10);}

輸出結果如下:(當前時間)

!! !!!!!! !! !!!!!! !! !!!!!!!! !! !! !! !! !! !! !!!! !! !! !! !! !! !! !!!! !!!!!! !! !! !! !! !! !!!!!!!! !! !! !! !! !! !!!! !! !! !! !! !! !!!! !!!!!! !! !! !! !!!!!!

它究竟是如何做到的呢?下面為你解讀:
首先,將這段代碼格式化:
main(_) {_^448 && main(-~_);putchar(--_%64? 32 | -~7[__TIME__-_/8%8][">'txiZ^(~z?"-48] >> ";;;====~$::199"[_*2&8|_/64]/(_&2?1:8)%8&1: 10);}

引入變數:

main(int i) {if(i^448)main(-~i);if(--i % 64) {char a = -~7[__TIME__-i/8%8][">'txiZ^(~z?"-48];char b = a >> ";;;====~$::199"[i*2&8|i/64]/(i&2?1:8)%8;putchar(32 | (b & 1));} else {putchar(10); // newline}}

根據補碼的規則,可得-~i == i+1,所以:
main(int i) {if(i != 448)main(i+1);i--;if(i % 64 == 0) {putchar('\n');} else {char a = -~7[__TIME__-i/8%8][">'txiZ^(~z?"-48];char b = a >> ";;;====~$::199"[i*2&8|i/64]/(i&2?1:8)%8;putchar(32 | (b & 1));}}

另外,因為C語言中a[b]等同於b[a],同時在運用 -~=1+ 規則,可得:
main(int i) {if(i != 448)main(i+1);i--;if(i % 64 == 0) {putchar('\n');} else {char a = (">'txiZ^(~z?"-48)[(__TIME__-i/8%8)[7]] + 1;char b = a >> ";;;====~$::199"[(i*2&8)|i/64]/(i&2?1:8)%8;putchar(32 | (b & 1));}}

將遞歸轉換成循環,同時再做簡化:
// please don't pass any command-line argumentsmain() {int i;for(i=447; i>=0; i--) {if(i % 64 == 0) {putchar('\n');} else {char t = __TIME__[7 - i/8%8];char a = ">'txiZ^(~z?"[t - 48] + 1;int shift = ";;;====~$::199"[(i*2&8) | (i/64)];if((i & 2) == 0)shift /= 8;shift = shift % 8;char b = a >> shift;putchar(32 | (b & 1));}}}

這樣每次迭代會輸出一個字元,每第64個字元會輸出新的一行。
另外,它還使用數據表來設定輸出形式,決定輸出的是字元32(即字元空格)還是字元33(即字元 ! )。第一個表「>'txiZ^(~z?」是一組10點陣圖,描述每個字元的外觀;第二個表「;;;====~$::199」的作用是,從點陣圖中選擇合適的位元來展示。
第二個表
我們先檢查一下第二個表,「int shift = ";;;====~$::199"[(i*2&8) | (i/64)];」其中 i/64是行數(從6到0);而 i*2&8 當且僅當i為4、5、6、7mod8時為8。
「if((i & 2) == 0) shift /= 8; shift = shift % 8」選擇表的高8位(i%8=0、1、4、5)或者低8位(i=2、3、6、7)值。因此轉換表最終看起來是這個樣子:

row col val6 6-7 06 4-5 06 2-3 56 0-1 75 6-7 15 4-5 75 2-3 55 0-1 74 6-7 14 4-5 74 2-3 54 0-1 73 6-7 13 4-5 632-3 53 0-1 72 6-7 22 4-5 72 2-3 32 0-1 71 6-7 21 4-5 71 2-3 31 0-1 70 6-7 40 4-5 40 2-3 30 0-1 7

或者顯示為表格的形式:注意:作者在表格的前兩位使用了null terminator。(真狡猾!)
第一個表
__TIME__是預處理器定義的特殊的宏,它能擴展為一個字元串,內容為預處理器運行的時間,格式為「HH:MM:SS」,剛好佔8個字元。注意:數字0-9的ASCII值為48-57,「:」的ASCII值為58。而每行輸出64個字元,因此__TIME__ 的每個字元有8個字元的空間。
「7 - i/8%8」是當前正在輸出的 __TIME__ 的索引(其中「7-」是必須的,因為我們從 i 開始向下遍歷)。因此 t 即 __TIME__要輸出的字元。
a的值取決於t,對應關系如下:

0 001111111 001010002 011101013 011110014 011010105 010110116 010111117 001010018 011111119 01111011: 01000000

每個數字都是一個點陣圖,描述7段顯示的字元。又因為是7位ASCII,所以高位會被清除,所以7位永遠是空格,所以第二個表是這個樣子:

00005511 5511 5511665522 3322 33444433

舉個例子,4即01101010(1、3、5、6位顯示),輸出如下:

----!!--!!--!!--!!--!!--!!!!!!------!!------!!------!!--
理解了嗎?現在我們再對輸出做一些調整:
0011 5511 556622 3322 3344
可以編碼為「?;;?==? '::799\x07」。
出於美觀考慮,我們把對64位做一些修改(因為輸出僅使用低6位,所以不會受到影響),於是就變成了「?{{?}}?gg::799G」(注意:第8位並沒有被使用,因此我們還可以做更多的衍生創作)。
現在代碼就變成了:

main(_){_^448&&main(-~_);putchar(--_%64?32|-~7[__TIME__-_/8%8][">'txiZ^(~z?"-48]>>"?{{?}}?gg::799G"[_*2&8|_/64]/(_&2?1:8)%8&1:10);}

輸出結果如下:

!! !! !!!! !! !! !! !! !! !! !! !!!! !! !! !! !! !! !! !! !!!! !! !! !!!! !! !! !! !! !! !! !! !!!! !! !! !! !! !! !! !! !!!! !! !!

如預期的一樣,看來我們的想法並沒有錯。
原文出自:StackOverflow

B. 用c 語言編寫程序時,應該特別注意格式,否則會影響可讀性對嗎

影響可讀性肯定是有的,比如同樣一段簡單的代碼

#include<stdio.h>

intmain(){
inti;
for(i=0;i<10;i++){
printf("%d ",i);
}
return0;
}

肯定會比

#include<stdio.h>
intmain(){inti;for(i=0;i<10;i++){printf("%d ",i);}return0;}

要易讀得多。


不過要說特別注意,倒也不一定。C 語言不像 Python 一樣,是一門特別講究格式的語言,Python 是靠縮進來區分區塊的,所以如果你每行的縮進有問題,解釋器是會報錯的,這就要求你必須嚴格遵循縮進規則。而 C 是靠分號來區分行,大括弧來區分區塊的,所以只要你的分號和大括弧加對地方,編譯器是不會在意代碼格式的。因此每年都會有國際C語言混亂代碼大賽(IOCCC),專門看誰能寫出最混亂的代碼,比如圖示這段代碼,但它能順利通過編譯。



所以影響可讀性是肯定的,但要說特別注意格式,C 語言還不至於。不過平常最好還是嚴格遵循格式,不要圖省事,養成良好的習慣。

C. 國際C語言混亂代碼大賽的代碼樣例

第21屆國際C語言混亂代碼大賽(IOCCC)正式發布了獲獎源代碼。IOCCC要求參賽者寫出最有創意且最讓人難以理解的C語言代碼,大小限制在4 kb以內,因此每位參賽者的作品都讓人印象深刻。獲勝者包括1名法國人,1名韓國人,5名美國人,1名比利時人,1名以色列人,1名英國人,4名日本人和1名中國人。
選取了幾個代表性作品大家共賞一下更可怕的是,它們都可以編譯通過!!!! #include <stdio.h>
#include <stdlib.h>
#define s(_)sizeof(_)
#define n void*
#define z(_)_,_,_
#define x (s*)__
#define y (s*)_
#define h C(y,y)
#define o &d
#define t() (p)
#define w(_)_,_
typedef n (*(*(*(*p)(n,n))(n,n))(n,n))(n,n);
typedef struct s { struct s* a ; struct s* UNUSED; } s;
typedef struct t { struct s* UNUSED; struct s* a ; } *t;
n __(n _,n __) { return _;}n _(n _,n __){return __; }
typedef unsigned char e;
#define _(_)((*_).a)
s*
w,
a={x ,x},
b={x ,y},
c={y,x},d={y,y};s l[]={&b,&d,w (w(w(w(w(w(&d)))))),w(&d),&c,&d,w(w(w(
&d))),&c,w(&b),&d,&a,z(&d),z(w (w(w(w(w(&d)))))),&b,&b,w(&d),&a,&b,w(&
d), z(w
(w( w(w
(&d))))),w(w(w(&d))), &b,&c,&d, &d,&a,&c ,w(w(&d)), &c,z(&b) ,w(&d),w(&a)
};s* C(s* a, s* b) {s* _=malloc(s(s));_(_)=a;_((t)_)=b;return _;}e k2=s(l
);p f(p
a,p b)
{ e k;s d;p v,r, q,i,C,c,u,g,m=t( )
_ ( _(_(w)));C=t() _(_(&l[fread(&k,s(e )
,s ( e),stdin)]));v =C(_,__);d=l[k=(e )
C ( k2,k)];c=(u=a( b,_),i=(t()_((t )
_ ( _(w))))(_,_(_(o)) ),(a(_(_((t)o)),(t( )
_ ( _((t)o)))(_,__) ))(b(_((t)_((t)o) )
, ( t()_((t)_((t)o))) (_,__)),_));{p a=t( )
_ ( (t)_(o));{p b= C(_,i(u(_,__),_) )
; { p u=C(_,(t()_(_(o) ))(_,__));_(_(_(w)) )
= ( s*)i(__,_(_( _(w))));r=b(m(c,_ )
,C ( m(_,(t()_(( t)_(_(w))))(_,__) )
, ( f)));v=b(_,v);i =b(a(_,__),_);g=(b )
( a(m(c(_,__),__ ),_),_);q=u(_((t )
_ ( o)),_)((t()_( (t)_(_(w))))((t( )
_ ( _((t)o)))(_(_((t )_(w))),(t()_(_((t )
_ ( w))))(_,__))( _,__),_)(_,__),_ )
;_ ( _((t)_(w))) = (s*)u(_((t)_(o)),_ )
( (t()_((t)_(_(w)))) (_,__),_)(_(_((t)o) )
,_ ( _((t)_(w))));} }_((t)_(_(w)))=(s* )
q ( a=(t()_((t)_(_(w))) )(_,__),_((t)_(_(w))) )
; fwrite((k=k,&k2) ,s(e),u(_,g)(s(e )
, ( e)s(s[s(s[s(s[s (s)])])])),stdout )
; fwrite((k2=k,&k) ,s(e),u(__,g)(s(e )
, ( e)s(s[s(s[s(s[s (s)])])])),stdout )
;_ ( _(_((t)w)))=(s*) u((t()_(_(_((t)w))) )
( _,__),_(_(_((t)w ))));_(_((t)_(w)) )
= ( s*)q(a(_(_((t) o)),_(_((t)_(w))) )
,_ ( _((t)_(w))));} _((t)_(_((t)w)))=(s* )
( t()_(_(_((t)w))) )(_((t)_(_((t)w)) )
,u ( (t()_((t)_(_(( t)w))))(_,__),_((t )
_ ( _((t)w)))));g =u((q=u(C(__,(t( )
_ ( _(_((t)w))))(_((t )_(_((t)w))),_)),_) )
( _,__),g);v=g( __,i(u(_,i(f,_) )
( _(_((t)o)),_( (t)_((t)o))),v) )
,r= q(_
,g( f,i
(v(f,(_(_(_(w)))=(s*)m,_)),r)));return q(_,v)(r(g(__,a),g(__,b)),r);}
int main
(){w=C(C(h,h),C(h,h));return printf((e*)f(_,_)(OK , ^ Error
)) (運行生成更小的頭像代碼) /*++++[>i>n[t*/#include<stdio.h>/*2w0,1m2,]_<n+am+o>r>i>=>(['0n1'0)1;*/int/**/main(int/**/n,char**m){FILE*p,*q;intA,k,a,r,i/*#uinndcelfu_dset<rsitcdti_oa.nhs>i/_*/;char*d=P%d %d40%d/**/ %d 0wb+,b[1024],y[]=yuriyurarararayuruyuri*daijiken**akkari~n**/y*u*k/riin<ty(uyr)g,aur,arr[a1r2a82*y2*/u*r{uyu}riOcyurhiyua**rrar+*arayra*=yuruyurwiyuriyurara'rariayuruyuriyuriyu>rarararayuruy9uriyu3riyurar_aBrMaPrOaWy^?*]/f]`;hvroai<dp/f*i*s/<ii(f)a{tpguat<cahfaurh(+uf)a;f}vivn+tf/g*`*w/jmaa+i`ni(/***/i+k[>+b+i>++b++>l[rb;int/**/u;for(i=0;i<101;i++)y[i*2]^=~hktrvg~dmG*eoa+%squ#l2:(wn1l))v?wM353{/Y;lgcGp`vedllwudvOK`cct~[|ju{stkjalor(stwvnegtyogYURUYURI[i]^y[i*2+1]^4;/*!*/p=(n>1&&(m[1][0]-'-'||m[1][1]!=''))?fopen(m[1],y+298):stdin;/*y/riynrt~(^w^)],]c+h+a+r+*+*[n>)+{>f+o<r<(-m]=<2<5<64;}-]-(m+;yry[rm*])/[**/q=(n<3||!(m[2][0]-'-'||m[2][1]))?stdout/*]{}[*/:fopen(m[2],d+14);if(!p||/*]<<*-]>y++>u>>+r>+u+++y>--u---r>++i+++<)<;[>-m-.>a-.-i.++n.>[(w)*/!q/**/)return+printf(Cannot open40%s40for40%sing ,m[!p?1:2],!p?/*o=82]5<<+(+3+1+&.(+m+-+1.)<)<|<|.6>4>-+(>m-&-1.9-2-)-|-|.28>-w-?-m.:>([28+*/read:writ);for(a=k=u=0;y[u];u=2+u){y[k++]=y[u];}if((a=fread(b,1,1024/*,mY/R*YR*/,p/*U*/)/*R*/)>/*U{*/2&&b/*Y*/[0]/*U*/=='P'&&4==/*y*r/y)r}*/sscanf(b,d,&k,&A,&i,&r)&&!(k-6&&k-5)&&r==255){u=A;if(n>3){/*]&<1<6<?<m.-+1>3>+:+.1>3+++.-m-)-;.u+=++.1<0<<;f<o<r<(.;<([m(=)/8*/u++;i++;}fprintf(q,d,k,u>>1,i>>1,r);u=k-5?8:4;k=3;}else/*]>*/{(u)=/*{p>>u>t>-]s>++(.yryr*/+(n+14>17)?8/4:8*5/4;}for(r=i=0;;){u*=6;u+=(n>3?1:0);if(y[u]&01)fputc(/*<g-e<t.c>h.ar-(-).)8+<1.>;+i.(<)<<)+{+i.f>([180*/1*(r),q);if(y[u]&16)k=A;if(y[u]&2)k--;if(i/*(^w^NAMORI;{I*/==a/*)*/){/**/i=a=(u)*11&255;if(1&&0>=(a=fread(b,1,1024,p))&&)]i>(w)-;}{/i-f-(-m--M1-0.)<{[8]==59/**/)break;i=0;}r=b[i++];u+=(/**>>*..</<<<)<[[;]**/+8&*(y+u))?(10-r?4:2):(y[u]&4)?(k?2:4):2;u=y[u/*49;7i(w)/;}y}ru=*ri[,mc]o;n}trientuuren(*/]-(int)'`';}fclose(p);k=+fclose(q);/*]<*.na/m*o{ri{d;^w^;}}^_^}}*/returnk--1+/*''-`*/(-/*}/*/0x01);{;{}};/*^w^*/;}

D. 求1988年國際C語言亂碼大賽獲獎程序分析,作者是Ian Phillipps

不要再問我,我是轉貼滴。。。。。。

// 編譯環境main入口,CRTO.C for main(__argc, __argv, _environ);
// 方法的編譯原來,返回值的寄存器狀態
// 變數的類型轉換reinterpret_cast
// 使用一個新的main方法,將舊的用一個新方法'decode'表示
// 根據題設,本程序執行方式為無命令參數,即,argc==1
// 變數的聲名規約,改變變數名以方便理解
// 進一步重構if語句
#include <stdio.h>
int decode(int arg1,int arg2,char* sCodec){
if(1<arg1){
if(arg1<3)
decode(-79,-13,sCodec+decode(-87,1-arg2,decode(-86,0,sCodec+1)+sCodec));
if(arg1<arg2)
decode(arg1+1,arg2,sCodec);
if(decode(-94,-27+arg1,sCodec)&&arg1==2){
// 內部遞歸,無後續分支,可展平為遞推方式
if(arg2<13)
return decode(2,arg2+1,"%s %d %d\n");
else
return 9;
}else
return 16;
}else if(arg1<-72){
// 可根據arg1范圍代入。本條件代入後略
return decode(arg2,arg1,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/");
}else if(arg1<-50){
// 內部遞歸,無後續分支,可展平為遞推方式
if(arg2==*sCodec)
return putchar(sCodec[31]);
else
return decode(-65,arg2,sCodec+1);
}else if(arg1<0){
// 內部遞歸,無後續分支,可展平為遞推方式
return decode((*sCodec=='/')+arg1,arg2,sCodec+1);
}else if(0<arg1){ // arg1 == 1,初始情況,根據arg1取值取捨
return decode(2,2,"%s");
}else{ // arg1 == 0
if(!(*sCodec=='/'))
// 內部遞歸,無後續分支,可展平為遞推方式
return decode(0,decode(-61,*sCodec,"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),sCodec+1);
else
return 1;
}
}
int main(int argc, char* argv[], char** _environ){
return decode(argc,(int)argv,(char*)_environ);
}

// 分析出遞歸頂層返回值。
// 注意所有return的含義,9/16/1/putchar(),Non Zero -> TRUE
// 分析arg1的內容,重構方法,有些坳,自己試著理解吧
#include <stdio.h>
int decode(int arg1,int arg2,char* sCodec){
if(1<arg1){
if(arg1<3){
decode(0,-86,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/");
decode(1-arg2,-87,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/");
decode(-13,-79,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/");
}
if(arg1<arg2)
decode(arg1+1,arg2,sCodec);
decode(-27+arg1,-94,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/");
if(arg1==2){
while(arg2<13){
arg2 ++;
sCodec = "%s %d %d\n";
// 上方條件代入
if(arg1<3){
decode(0,-86,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/");
decode(1-arg2,-87,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/");
decode(-13,-79,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/");
}
if(arg1<arg2)
decode(arg1+1,arg2,sCodec);

decode(-27+arg1,-94,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/");
}
}
}else if(arg1<-50){
// 判斷條件可達,取捨
char* s = sCodec;
while(!(arg2==*s)){
s ++;
}
putchar(s[31]);
}else if(arg1<0){
for(;arg1<0;arg1+=(*sCodec=='/'))
sCodec ++;
decode(0,arg2,sCodec+1); // 條件合並
}else if(arg1 == 0){
while(!(*sCodec=='/')){
// 條件合並
decode(-61,*sCodec,"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry");
sCodec ++;
}
}
return 1; // return TRUE only
}
int main(int argc, char* argv[], char** _environ){
decode(2,2,"%s");
return 9;
}

E. 比較好的大學生C語言競賽編程題 或者比較有檔次的競賽有哪些(本科、研究生可以參加的)

1:C語言競賽編程題很多,你可以去北大的ACM網上測評系統JudgeOnline上做題,它能檢查你的代碼是否正確。
網址:http://acm.pku.e.cn/JudgeOnline/
可以注冊一個賬號,它會保存你每次提交正確的代碼,上面的題比較多,范圍廣,各種難度試題都有。當然還有其他大學的一些JudgeOnline,如上海交大的。

2:有檔次的競賽首推ACM/ICPC(國際大學生程序設計競賽),當然也有全國大學生程序設計大賽。每年有的網站和機構也會舉辦編程競賽,如這幾年網路舉辦的網路之星程序設計大賽也很有影響力。在給出的樣題第一例有對ACM的詳細介紹,樣題是我們學校某屆程序大賽初試題,比較簡單。(此外ACM程序大賽也可以用C++編程,本科生、研一可參加)

3:一些簡單的ACM樣題(因為是國際性比賽,ACM試題都是E文的,下面部分是翻譯過來的)

H-acm規則
Description
ACM/ICPC(國際大學生程序設計競賽)是由ACM(Association for Computing Machinery,美國計算機協會)組織的年度性競賽,始於1976年,是全球大學生計算機程序能力競賽活動中最有影響的一項賽事,是全世界公認的規模最大、規格最高的大學生程序設計競賽,是參賽選手展示計算機才華的廣闊舞台,是著名大學計算機教育成果的直接體現,是信息企業與世界頂尖計算機人才對話的最好機會。ACM/ICPC採用賽區選拔的方式產生參加世界決賽學校的資格,2001年,來自全球超過25個地區1141所大學的2362支隊伍參加了第26屆ACM/ICPC的賽區競賽。在2002年3月,來自世界各地的約60支隊伍,200多名選手參加了夏威夷總決賽的角逐。
在 ACM/ICPC 比賽中,均使用自動判題系統,這不僅減輕了ACM/ICPC比賽的舉辦方的負擔,同時也使競爭更加的公正公平。 因為在比賽中,比賽成員就可以看到自己排名情況,這使的比賽更加的透明。
ACM/ICPC 比賽中排名是按如下方法排名的:
1: 解題數目最多的隊伍排在前面。
2: 如果解題數目相等的隊伍,總用時最少的排在前面。
註: 在比賽中,每道試題用時將從競賽開始到試題解答被判定為正確為止,期間每一次錯誤的運行將被加罰20分鍾時間,未正確解答的試題不計時。 那麼所有解答出來題目的用時和罰時加起來為:該隊伍所花的總用時。
現在,需要你寫一個程序來給比賽隊伍進行排名(假設不超過200支隊伍)。
Input
多行測試數據,每行包含各個隊伍的比賽信息。
每個隊伍格比賽信息表示格式為:
string n m 分別表示隊名、解題數量、總用時(其中:隊名為長度不超過30的字元串,解題數量為1…10之間的整數,罰時的范圍不超過int的范圍)
當輸入end時,表示輸入結束。
Output
按先後名次輸出各個隊伍的比賽信息。
每個比賽隊伍佔一行。
每行格式為:
string n m 分別代表 隊名 解題數量 總用時。
Example Input
amstl 3 65
danoniao 2 50
lutedan 3 60
end
Example Output
lutedan 3 60
amstl 3 65
danoniao 2 50

G-我想我需要一隻船屋
Description
佛瑞德最近正在考慮在路易斯安那洲買一片土地來蓋一棟房子.在進行調查研究土地的過程中佛瑞德發現,路易斯安那洲的土地由於密西西比河的侵蝕會以每年50平方英里的速度縮減.佛瑞德計劃後半生都在該地度過,所以他不希望在自己的有生之年房屋受到河水的侵蝕.現在他需要知道自己是否會受到河水的侵蝕.
在做了更多的調查之後,佛瑞德得知這里的土地沿河岸以半圓形方式侵蝕,這個半圓以(0,0)為圓心的,被X軸分成上下兩部分,位於X軸下邊的是河水,上面是河岸.在第一年開始的時候這個半圓范圍為0,也就是說河岸未被河水侵蝕.(半圓如下圖所示)

Input
第一行的一個正整數N指出下邊有多少組數據需要計算.下邊N行,每行包含兩個實數X和Y,指出佛瑞德考慮的房子以(0,0)為原點的坐標系內的位置.以英里為單位.Y為非負數.
Output
計算在X,Y位置佛瑞德的房子在第幾年會被河水侵蝕.與輸入數據相對應每行以如下形式輸出你的計算結果:「Property N: This property will begin eroding in year Z.」, 其中N為第N組數據,Z為你計算出的開始侵蝕的年數.在最後輸出一句「END OF OUTPUT.」,表示計算結束.
Example Input
2
1.0 1.0
25.0 0.0
Example Output
Property 1: This property will begin eroding in year 1.
Property 2: This property will begin eroding in year 20.
END OF OUTPUT.
Hint
• 房屋的位置不會正好在半圓邊界上,要不在內,要不在外。
• 你所提交的程序計算輸出會由系統自動判斷。你的結果要和輸出要求精確匹配,字母大小寫、標點符號和空格 。包括最後一行的語句也要精確匹配。
• 所有給定數據都以英里為單位。

F-N!的計算
Description
N!=N×(N-1)×(N-2)×(N-3)×....
Input
輸入第一行為一正整數m,表示下邊要計算幾個 N!
下一行開始為m個正整數( 1 ≤ N ≤ 11 , m ≤ 9)
Output
輸出這m個正整數的階乘結果,每個一行.
Example Input
3
1
2
5
Example Output
1
2
120

I-Vertical Histogram
Description
Write a program to read four lines of upper case (i.e., all CAPITAL LETTERS) text input (no more than 72 characters per line) from the input file and print a vertical histogram that shows how many times each letter (but not blanks, digits, or punctuation) appears in the all-upper-case input. Format your output exactly as shown.
Input
* Lines 1..4: Four lines of upper case text, no more than 72 characters per line.
Output
* Lines 1..??: Several lines with asterisks and spaces followed by one line with the upper-case alphabet separated by spaces. Do not print unneeded blanks at the end of any line. Do not print any leading blank lines.
Example Input
THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.
THIS IS AN EXAMPLE TO TEST FOR YOUR
HISTOGRAM PROGRAM.
HELLO!
Example Output
*
*
* *
* * * *
* * * *
* * * * * *
* * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * *
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

J-白棋勝?還是黑棋勝?
Description
Cinderalla最近迷上了玩五子棋.可是在和其它的小夥伴一起玩時她老是輸,於是她想用計算機來幫她判斷棋局是那方獲勝.為了簡便,我們先去掉一些規則.我們認為棋盤上只要有一方的棋有五個棋子相連就確定那一方獲勝.你的任務是編寫一個程序來判斷我們給出的棋局是那一方獲勝.
Input
輸入數據只有一組.第一行有兩個正整數m,n(5 ≤ m,n ≤ 10),分別代表棋盤的行數和列數.緊接著的2*n+1行是棋盤的描述,棋盤由"+","-","|"構成,其中"*"代表白棋,"#"代表黑棋. "+","-","|"的ASCII碼分別為43、45、124
Output
輸出數據只有一組,如果白棋獲勝則輸出White Win!,如果黑棋獲勝則輸出Black Win!
Example Input
5 10
+-+-+-+-+-+-+-+-+-+-+
| |*| | | | | | | | |
+-+-+-+-+-+-+-+-+-+-+
| | |*|#| | | | | | |
+-+-+-+-+-+-+-+-+-+-+
| | |#|*|#|#| | | | |
+-+-+-+-+-+-+-+-+-+-+
| | | | |*|#| | | | |
+-+-+-+-+-+-+-+-+-+-+
| | | | | |*| | | | |
+-+-+-+-+-+-+-+-+-+-+
Example Output
White Win!
Hint
給出的棋局必有一方是獲勝的.

F. 還有什麼關於編程,代碼之類的比賽嗎

ACM 國際大學生程序設計競賽
google code jam
top coder

網路 網路之星
微軟 編程之美

G. c語言編程用的符號有哪些

如果真正掌握了C 語言,你就能很輕易的回答上來。這個問題就請讀者試著回答一下吧。本章不會像關鍵字一樣一個一個深入討論,只是將容易出錯的地方討論一下。

表(2.1)標准C 語言的基本符號

C 語言的基本符號就有20 多個,每個符號可能同時具有多重含義,而且這些符號之間相互組合又使得C 語言中的符號變得更加復雜起來。

你也許聽說過「國際C 語言亂碼大賽(IOCCC)」,能獲獎的人毫無疑問是世界頂級C程序員。這是他們利用C 語言的特點極限挖掘的結果。下面這個例子就是網上廣為流傳的一個經典作品:

#i nclude <stdio.h>
main(t,_,a)char *a;{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13?main(2,_+1,"%s %d %d "):9:16:t<0?t<-72?main(_,t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw'
iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/"):t<-50?_==*a?putchar(31[a]):main(-65,_,a+1):main((*a=='/')+t,_,a+1):0<t?main(2,2,"%s"):*a=='/'||main(0,main(-61,*a,"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}: uwloca-O;m.vpbks,fxntdCeghiry"),a+1);}

還沒發狂?看來你抵抗力夠強的。這是IOCCC 1988 年獲獎作品,作者是Ian Phillipps。

毫無疑問,Ian Phillipps 是世界上最頂級的C 語言程序員之一。你可以數數這裡面用了多少個符號。當然這里我並不會討論這段代碼,也並不是鼓勵你也去寫這樣的代碼(關於這段代碼的分析,你可以上網查詢)。

H. 現在是否有國際C語言混亂代碼大賽。

還存在的。
國際C語言混亂代碼大賽(IOCCC, The International Obfuscated C Code Contest)是一項國際編程賽事,從1984年開始,每年舉辦一次(1997年、1999年、2002年、2003年和2006年例外)。目的是寫出最有創意的最讓人難以理解的C語言代碼。
作品從聯機提交,並經過好幾回合的裁判的審核。作品審核是基於濫用混亂代碼的程度(以及創造性的濫用)。作品通過最後一輪審核的會被歸成其特別的一類以示嘉獎,例如「最濫用C預處理器」或者「最古怪的行為」,並且發表在官方IOCCC網站。作品沒有通過者會被刪除或遺忘;該賽事主辦聲明:作品被聲明在IOCCC網站是競賽的錦標。
目前在官方網站已經貼出了2014年的比賽結果,說明該項賽事還是在進行中的。

I. c語言中\33[6;0H\33[K什麼意思

"\33[6;0H\33[K"
首先, 兩個 \33 是C語言的轉義字元表示, 33是8進制, 也就是ASCII為27的那個字元,
這字元表示換碼, 有的地方寫作 ESC (見ASCII表)

當這個字元串用在 printf中的時候,
輸出到屏幕表示對屏幕的控制, 比如改變背景或者文字顏色等.

這個格式和含義都是標準的終端的.
就上面的例子, 實際是兩個控制命令:
ESC[6;0H 將游標移動到第6行的行首
ESC[K 清除從游標到行尾的內容

這個在Linux下有效. 在WINDOWS的控制台窗口是用Console Functions來控制屏幕屬性.
參考 Linux終端ANSI控制碼, VT100/ANSI 控制字元

J. 1987年國際C語言混亂代碼大賽獲獎的一行代碼 無法執行程序

代碼本身沒有什麼大問題,問題是從今天的角度來看,不是很規范,部分編譯器可能報錯

#include<stdio.h>
#defineunix1
intmain(){printf(&unix["21%six12"],(unix)["have"]+"fun"-0x60);return0;}