一、选择题
1、下列经过表达式运算System.out.printf输出的结果是什么?( )
int a=100,x,y;
x=++a;
y=--a;
a--;
System.out.printf("%d,%d,%d",x,y,a);
A.101,100,99 B.101,100,100 C.101,99,99 D.101,99,100
参考答案:A
++i : i 自增 1 后减 1 后再参与其它运算。
i++ : i 参与运算后, i 的值再自增 1。(i-- , --i同理)
2、下列语句序列执行后c的值是( )
int a=1;
int b=2;
int c= a>b?1:0;
A.1 B.0 C.2 D.3
参考答案:B
三元运算符语法为:条件表达式?表达式1:表达式2。
其逻辑为:如果条件表达式成立或者满足则执行表达式1,否则执行第二个。
3、下列语句序列执行后,x 的值是( )
int a=3, b=4, x=5;
if( ++a<b ) x=x+1;
A.5 B.3 C.4 D.6
参考答案:A
4、num1+num2表达式属于( )
A.逻辑表达式 B.条件表达式 C.算术表达式 D.赋值表达式
A: || && ! B: == != >= C. + - * / % D. =
参考答案:C
5、关系运算符运算的结果为( )
A.整型 B.数值型 C.字符型 D.布尔型
参考答案:D
6、表达式不可以作为循环条件( )
A.i++ B.i>5 C.bEqual = str.equals("q") D.count == i
参考答案:A
i++作为循环条件会出现死循环。赋值、定义等表达式不能作为循环条件。
7、下面的方法,当输入为2的时候result是多少?( )
int result = 0;
switch (i) {
case 1:
result = result + i;
case 2:
result = result + i * 2;
case 3:
result = result + i * 3;
}
A.0 B.2 C.4 D.10
参考答案:D
8、表达式(short)10/10.2*2运算后结果是什么类型( )?
A.short B.int C.double D.float
参考答案:C
要注意是(short)10/10.22,而不是(short) (10/10.22),前者只是把10强转为short,又由于式子中存在浮点数,所以会对结果值进行一个自动类型的提升,浮点数默认为double,所以答案是double;后者是把计算完之后值强转short。
9、下列哪