【例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语言程序设计中,表达式不允许作为值来直接赋值给表达式;在表达式中运用“%”时应该注意,运算符“%”的使用对象必须是整型;“==”是关系运算符,在这里并不正确,赋值符应该是“=”。
【例11】(2004年9月)若x和y代表整型数,以下表达式中不能正确表示数学关系
|x-y|<10的是( )。
A. abs(x-y)<10 B. x-y>-10&&x-y<10
C. !(x-y)<-10||!(y-x)>10 D. (x-y)*(x-y)<100
【答案】C
【例12】(2004年9月)设有定义语句:char c1=92,c2=92; 则以下表达式中值为零的是( )。
A. c1^c2 B. c1&c2 C. c1~c2 D. c1|c2
【答案】A
3.3表达式
【例1】(2000年9月) 若变量已正确定义并赋值,下面符合C语言语法的表达式是( )。
A. a:=b+1 B. a=b=c+2
C. int 18.5%3 D. a=a+7=c+b
【答案】B
【考点解析】表达式是由运算符把字符连接起来所构成的。在上面选项中,A中的字符变量定义错误,C选项不是表达式,D选项中等号左边必须是一个可以确定的值。
【例2】(2001年4月) 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是( )。
A. -3 B. 9
C. -12 D. 6