
1.题目:下列关于单目运算符++、-- 的叙述中正确的是:( )。
A 它们的运算对象可以是任何变量的常量
B 它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C 它们的运算对象可以是string型变量,但不能是double型变量和float变量
D 它们的运算对象可以是char型变量、int型变量和float型变量
答案:D
单目运算符++、-- 的运算对象可以为char型变量、int型变量和float型变量,但是需要注意它们的运行对象不能是常量或者表达式。
2.题目:表达式(11+3*8)/4%3的值是()
A 31 B 0 C 1 D 2
答案:D
11+3*8=35
35/4=8(注意:向下取整 例如:35/4=8.75就取8)
类似题目:
下列代码片段的输出结果是( )。
double x=99.9;
double y=(int)x;
System.out.println(y);
A 98 B 99.0 C 100 D 99
答案:C
(int)x也是向下取整,即(int)x后的数为99,因为y为double型所以就隐式转换为99.0了
8%3=2
3.有关else if 块的条件结构说法正确的是()。
A 多个else if 块之间的顺序可以改变,改变之后对程序的执行结果没有影响。
B 多个 else if 块之间的顺序可以改变,改变之后可能对程序的执行结果有影响。
C 多个 else if 块之间的顺序不可以改变,改变后程序编译不通过。
D 多个 elseif 块之间的顺序不可以改变,改变后程序编译可以通过。
答案:B
这道题做错的原因是考虑问题不全面,A、C、D说法太绝对了,考虑问题不全面。
补充资料:①java在运算时会将结果自动转换为参与运算的取值范围最大的数据类型
②在java中int类型不能取非,因此会产生编译错误
祸患常积于忽微,而智勇多困于所溺。——欧阳修
加油!小芳同学