有以下程序: int a=2; int f(int n) {static int a=3; int t=0; if(n%2){s
有以下程序: int a=2; int f(int n) {static int a=3; int t=0; if(n%2){static int a=4;t+=a++; } else {static int a=5; t+=a++; } return t+a++; } main() { int s=a,i; for(i=0;i<3;i++) s+=f(i); printf("%d\n",s); } 程序運(yùn)行后的輸出結(jié)果是 ______。
A.26
B.28
C.29
D.24
正確答案:C解析:解本題耍弄清楚這樣幾點(diǎn):1、定義“int a=2;”中的全局變量a,其作用范圍是從定義此變量的位置開始到本源文件結(jié)束;2、“static int a=3;”中的靜態(tài)局部變量a的作用范圍是其所在的函數(shù)f,并對其只賦一次初值,以后每次調(diào)用函數(shù)時不再重新賦初值,而只是保留上次函數(shù)調(diào)用結(jié)束時的值;3、復(fù)合語句“{static int a=4;t+=a++; }”和“{static int a=5;t+=a++;}”中定義的兩個變量a屬于復(fù)合語句中定義的變量,作用范圍只在其本身所在的復(fù)合語句內(nèi)。對于本程序來
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。