Day02
Key Point
变量 |
运算符 |
计算机常量
进制及其转换
数据类型及其转换
算术运算符
赋值运算符
关系运算符
逻辑运算符
位运算符
三元运算符
一、 选择题
- 下列关于计算机常量的说法正确的是:
- "2"是整数常量
- 2.0是整数常量
- '2'是字符常量
- "2.0"是小数常量
- '2.0'是小数常量
- 3.15e2表示的数据是:
- 3.15×2 B. 3.15×2-2 C. 3.15×22 D. 3.15×10-2 E. 3.15×102
- 下列各项可以正确赋值的是:
- int i = 'a';
- B. float f = -2;
- C. byte b = 128;
- D. double d = 100d;
- E. char c = 97;
- 运算符优先级别由高向低排序正确的是:
- ()、!、算术运算符、关系运算符、逻辑运算符、赋值运算符;
- ()、关系运算符、算术运算符、赋值运算符、!、逻辑运算符;
- ()、算术运算符、逻辑运算符、关系运算符、!、赋值运算符;
- ()、!、关系运算符、赋值运算符、算术运算符、逻辑运算符;
- ()、逻辑运算符、关系运算符、!、算术运算符、赋值运算符
- 对于下列各项能够正确编译的是:
- byte b = 5; b = b + 1;(int不能变byte) B. byte a = 3,b = 5; byte c = a + b;(同理)
C. byte b = 127; b ++; D. byte b = 127; b += 3;
E. byte b = 5; b += 'a';(这些运算符都含有强制类型转换))
- 对于下列程序:
public class Test { public static void main(String[] args){ int a = 3, b = 4, c = 5; boolean d = a > b && c++ > 4;
System.out.println(c + "," + d);
}
}
的运行结果是:
-
- 5,true B. 5,false C. 6,true D. 6,false E. 编译错误
- 对于int a = 3,b = 4;下列各项能够正确交换两个数的值的是:
- int c = a; a = b; b = c; B. a += b; b = a - b; a -= b;
C. a ^= b; b ^= a; a ^= b; D. int c = b; b = a; a = c;
E. int c = a + b; a = c - a; b = c -a;
- 对于代码:
public class Test { public static void main(String[] args){
System.out.println(1.0 / 0);
}
}
的运行结果是:
-
- 0 B. Infinity C. -Infinity D. NaN E. 运行时报错
- 对于代码:
public class Test { public static void main(String[] args){ int i = 5; int j = 2 * i++ (10)+ 3 * ++i;(21)
System.out.println(j);
}
}
的运行结果是:
- 31 B. 32 C. 33 D. 34 E. 35
- 下列说法正确的是:
- 2 + 3 + "a"的结果是23a
- 'a' + 2 + 3的结果是a23
- 2 + 'a' + 3的结果是2a3
- 2 + 'a'的结果是99
- "a" + true的结果是atrue
二、 简答题
- 简述常量与变量的区别
- 有如下代码:
int a = 5;
int b = (a++) + (--a) +(++a);
问执行完之后, b 的结果是多少?(5+5+6=16)
- 一家商场在举行打折促销,所有商品都进行8 折优惠。一位程序员把这个逻辑写成:
short price = ...; // 先计算出原价
short realPrice = price * 8 / 10; //再计算出打折之后的价格
问:这段代码是否正确?如果正确,假设price 为100,那计算之后的realPrice值为多少?如果不正确,应该怎么改正?
应该定义为double类型,因为价格不可能全是正数
- 请说明>>与>>>之间的区别。
- 分别计算7和-9的原码、反码、 补码。
- 有如下代码:
a = (a>b)?a:b;
请问这段代码完成什么功能。
- 请最有效率的计算2*8的值。2<<3
- 对于int i = 3, j = 5;请写出能够交换i和j的值的方式并比较各种方式的优劣性。