87.計算平方數(shù)時不可能引起二義性的宏定義是( )
A.#define SOR(x)x*x
B.#define SQR(x)(x)*(x)
C.# define SQR(x)(x*x)
D.# define SQR(x)((x)*(x))
【解析】分析備選答案A:如果宏引用是“SQR(2+3)”,則宏替換后的結(jié)果是“2+3*2+3”,結(jié)果是錯誤的,因此這個答案可能引起二義性。分析備選答案B:如果宏引用是“ 3/SQR(2+3)”,則宏替換后的結(jié)果是“3/(2+3)*(2+3)”,結(jié)果也是錯誤的,因此這個答案可能引起二義性。分析備選答案C:如果宏引用是“SQR(2+3)”,則宏替換后的結(jié)果是“(2+3*2+3)”,結(jié)果也是錯誤的,因此這個答案可能引起二義性。只有備選答案D不會引起二義性。所以本題答案應(yīng)選D。
【參考答案】D
88.執(zhí)行下列程序段后,x的位是( )
int a=8,b=7,c=6,x=1;
if(a>6)if(b>7)if(c>8)x=2;else x=3;
A.0
B.1
C.2
D.3
【解析】按照"else"只和前面最近的"if"配對的原則,上述程序段可以寫成下列更為清晰的程序清單:
int a=8,b=7,c=6,x=1;
if(a>6)
if(b>7)
if(c>8)
x= 2:
else
x=3:
依據(jù)a、b、c的值,很容易看出第1個“if語句”的條件“a>6”是成立的,接著執(zhí)行第2個“if語句”,該語句的條件“b>7”,是不成立的,所以下面的“if-esle”語句不執(zhí)行,因此x的值不變,仍為1。所以本題答案應(yīng)選B。
【參考答案】B
89.執(zhí)行下列程序段后,變量y的值為( )
int x[]={1,2,3,4},y,*p=&x[1];
y=(*--P)++;
A.1
B.2
C.3
D.4
【解析】從數(shù)據(jù)定義語句中可以得出下列結(jié)論:指針變量P指向的數(shù)組元素是x[1]。再來分析賦值句的右邊表達(dá)式“(*--p)++”,其中的“--”優(yōu)先于“*”先計算“--p”,使得p指向數(shù)組元素x[0];所以“(*--p)”就是數(shù)組元素a[0],再計算其后的“++”,由于“++”是后綴,所以表達(dá)式的值就是數(shù)組元素x[0]的值,為1,然后再對數(shù)組元素x[0]加1。因此變量y的值是1。本題答案應(yīng)選A。
【參考答案】A
相關(guān)推薦:計算機(jī)軟考程序員備考:程序設(shè)計知識點(diǎn)匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |