【答案】C
【考点解析】这题中,有多个赋值关系。从右到左计算,可以这样理解:首先a*a等于9,再计算a=a-9,得到a=-6,再计算a=a+(-6),所以最后答案是-12。
【例3】(2002年4月)变量a已被定义为整型,下列表达式不正确的是( )。
A. a='A'+20 B. a-='a'
C. a=c+d D. a='c'+'d'
【答案】C
【考点解析】在C语言中我们得知字符变量可以参与任何整数的运算,在C项中,c和d如果是字符变量应刻有单引号括住,如果是其它变量应提前定义,以避免编绎出错。
【例4】(2002年4月)若有定义:int a=8,b=5,c;执行语句c=a/b+0.4后,c的值为( )。
A. 1.4 B. 1 C.2.0 D.2
【答案】B
【考点解析】在本题中,首先计算的是优先级高的/,a/b(8/5=1),再将1+0.4的值赋给c,由于c为整型变量所以要将1.4转换为整型,即是舍弃小数位0.4(c的值变为1)。
【例5】(2002年9月) 与数学式子 对应的C语言表达式是( )。
A. 3*x^n(2*x-1) B. 3*x**n(2*x-1)
C. 3*pow(x,n)*(1/(2*x-1)) D. 3*pow(n,x)/(2*x-1)
【答案】C
【考点解析】在C语言程序设计中,数学运算次方在C语言中运用函数pow()来表达,例如:x的y次方,在C语言中应该这样表达:pow(x,y),所在选项中,选项D表达写反了,则只有选项C才是正确的选项。
【例6】(2002年9月) 以下选项中,与k=n++完全等价的表达式是( )。
A. k=n,n=n+1 B. n=n+1,k=n
C. k=++n D. k+=n+1
【答案】A
【考点解析】在本题中,k=n++为后辍运算,根据其运算规则,应先把n的值赋给k,然后n的值再加上1,选项A的表达式与本题中的表达式等价。
【例7】(2003年9月)以下选项中非法的表达式是( )。
A. 0<=x<100 B. i=j==0
C. (char)(65+3) D. x+1=x+1
【答案】D
【考点解析】在C语言程序设计中,表达式不允许作为值来直接赋值给表达式。
【例8】(2004年4月)设有定义:float a=2,b=4,h=3;以下C语言表达式中与代数式1/2*(a+b)h计算结果不相符的是( )。
A. (a+b)*h/2 B. (1/2)*(a+b)*h
C. (a+b)*h*1/2 D. h/2*(a+b)
【答案】B
【考点解析】本题实质上是要把数学表达式在C语言程序设计中表达出来,在C语言中优先级最高是括号,那么先计算所有的括号,可以看到选项B中的(1/2)结果是0,那么整个表达式的结果就是0,而其它三项的结果并不是0。