整个表达式都为真;|是按位或运算符,先是把操作数转化成二进制,再
按位进行或运算;&是按位与运算符,先是把操作数转化成二进制,再按
位进行与运算;^是按位异或运算符,先是把操作数转化成二进制,再按
位异或运算,就是相同的为0,不同的为1。
【例7】(2002年9月) 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 &&
y+z/2的值是( )。
A. 6 B. 0 C. 2 D. 1
【答案】D
【考点解析】在本题中,优先级最高的是括号,因此先计算x+y,跟着是!的
优先级高,即运算!(x+y),接着是/ 的优先级高,即运算z/2,再是+、-的
运算符优先级,在本表达式中优先级最低的是&&,最后的结果是1。
【例8】(2002年9月) 设a和b均为double型变量,且a=5.5、b=2.5,则表达式
(int)a+b/b的值是( )。
A. 6.500000 B. 6 C. 5.500000 D. 6.000000
【答案】D
【考点解析】在本题表达式中,优先级最高的是int,跟着是/,最后是+。
根据优先级分析,先运算(int)5.5,是指对5.5取整,这里也是数据类型
的强转换。跟着运算b/b,因为b是double类型,则结果也是double类型,
最后运算“+”运算符,则可以计算出最后的结果。
【例9】(2003年4月)下列关于单目运算符++、--的叙述中正确的是( )。
A. 它们的运算对象可以是任何变量和常量。
B. 它们的运算对象可以是char型变量和int型变量,但不能是float型变量。
C. 它们的运算对象可以是int型变量,但不能是double型变量和float型变
量。
D. 它们的运算对象可以是char型变量、int型变量和float型变量。
【答案】D
【考点解析】在C语言中,++、--是单目运算符,分别表示进行加1、减1运算,
一般是在char、int、float数据类型中运算。
【例10】(2004年9月)有以下定义语句
double a,b; int w;long c;
若各变量已正确赋值,则下列选项中正确的表达式是( )。
A. a=a+b=b++ B. w%((int)a+b)
C. (c+w)%(int)a D. w=a==b
【答案】C
【考点解析】在C语言程序设计中,表达式不允许作为值来直接赋值给表达式;
在表达式中运用“%”时应该注意,运算符“%”的使用对象必须是整型;“==”
是关系运算符,在这里并不正确,赋值符应该是“=”。
评论0
最新资源