java学习第03天--作业
简答
简述短路与(&&),短路或(||)的含义?
答:左侧能决定整个表达式值的时候,右侧表达式不进行运算
&&:左侧为false,右侧不执行
||:左侧为true,右侧不执行
选择
1.下面哪两个表达式结果相同
A (2 << 1) * (8 >> 2)
B (8 >> 2) << 4
C 2 << 5
D 128 >>> 2
答:B、D
2. int a = 4;以下哪两个语句输出结果相同
A System.out.print(++a); 5
B System.out.print(a++); 4
C System.out.print(--a); 3
D System.out.print(a--); 4
答: B、D
3. int a = 8,b = 4;
以下哪些是合法的?
A (a + b) & (a - b);
B (a > b) & (a > 0);
C (a + b) & (a > b);
D (a * b) & (a + 0);
答: A、B 、D
a + b 为int型, a > b为boolean型
4.若声明
byte b;short s;char ch;float f;
以下哪一个是合法的?
A ch = 97; s = ch;
B s = 97; ch = s;
C ch = 97; b = ch;
D b = 97; ch = b;
E ch = 97; f = ch;
答:F
5.
若有如下定义:
int a = 100;
int b = -100;
int c = 1;
int d = -1;
以下哪些是合法的?(主要考察位运算符)
A a/~b
B b/~c
C c/~d
D d/~a
答:A、B、D
6.如下程序执行的结果是?
class Test{
public static void main(String[] args){
int x =10;
double y = 10.1;
boolean z = (y = x);
System.out.println(z);
}
}
A true
B false
C 编译出错
D 10
7.如下程序的运行结果是
class Test{
public static void main(String[] args){
int x = 0x80000000;
System.out.print(x+" and ");
x = x >>> 31;
System.out.println(x);
}
}
A -2147483648 and 1
B 0x80000000 and 0x00000001
C -2147483648 and -1
D 以上都不对
8.以下程序结果是
class BitWise{
public static void main(String[] args){
int x = 11 & 9;
int y = x ^ 3;
System.out.println(y | 2);
}
}
A 10
B 7
C 8
D 14
9.以下哪些是正确的?
A int a = (int)12.3;
B byte b = (byte)1234L;
C long lo = (byte)1234;
D byte b = (short)1234L;
10.以下程序运行结果是
class Test{
public static void main(String[] args){
boolean b1 = true;
boolean b2 = false;
boolean b3 = true;
if(b1 & b2 | b2 & b3 | b2){ //&的优先级高于|
System.out.println("first");
}
if(b1 & b2 | b2 & b3 | b2 | b1){
System.out.println("second");
}
}
}
A first
B second
C first
second
D 编译出错
&与|的优先级比较:
11.以下程序运行结果是
public class Test {
public static void main(String[] args) {
int x = 0;
int y = 0;
for (int z = 0; z < 5; z++) {
if ((++x > 2) || (++y > 2)) {
x++;
}
}
System.out.println(x + " " + y);
}
}
A 5 3
B 8 2
C 8 3
D 10 3
12.以下程序运行结果是
public class Test {
public static void main(String[] args) {
int x = 0;
int y = 0;
for (int z = 0; z < 5; z++) {
if ((++x > 2) && (++y > 2)) {
x++;
}
}
System.out.println(x + " " + y);
}
}
A 5 2
B 5 3
C 6 2
D 6 3
E 8 2
F 8 3
13.以下哪些可以通过编译
A float f = 53; int i = 27; if(f <> i){}
B double d = -10.5; d = d % 2;
C int i = -2; i = i > 0 ? true:false;
D int i = 256; i = i >> 2;
答: A、B、D
14.System.out.println(5 ^ 3);结果是
A 0
B 1
C 6
D 7
答:C
15.有如下代码
String str = "hello";
int i = 1;
以下可以和上述代码搭配的是?
A String s = str >> 1;
B long x = 12L;
str = str + x;
C 以上都不对
答:B
16.以下程序的结果是:
class Test{
public static void main(String[] args){
int a = 5;
System.out.println( (a>5)? 10.1 : 9 );
}
}
A 编译错误
B 10.1
C 9
D 以上都不对
答:D
正确答案是9.0
17.
下面语句的输出结果是:
int i = 012;
int j = 034;
int k = (int)056L;
int l = 078;
System.out.println(i);
System.out.println(j);
System.out.println(k);
A 分行输出12,34,56
B int k = (int)056L;编译出错
C int l = 078;编译出错
D 输出10,28,46
答:C
18.以下程序运行结果是
public class Test {
public static void main(String[] args) {
int i = 10;
if(i = 10){
System.out.println("i = "+ i);
}
else if(i = 5){
System.out.println("i = " + i);
}
}
}
A i = 10
B i = 5
C 编译报错
答:C
19.
class Test{
public static void main(String[] args){
xxxxxxx
System.out.println("x = " + x);
}
}
}
以上程序若想输出以下结果,
x = 0
x = 1
则xxxxxxx应该替换成:(多选)
A for(int x = 0;x <= 1; x++){
B for(int x = 0;x <= 2; x++){
C for(int x = 0;x < 2; x++){
D for(int x = 0;x < 2; ++x){
答: A、C、D
编程
1.从键盘录入年龄,根据年龄给出提示:
35岁以下显示“青年”;
35-45岁显示“中年”;
46-75岁显示“老年”;
3.改进前面的程序,增加对非法年龄(负数,超过120)的处理
答:
1.从键盘录入年龄,根据年龄给出提示:
35岁以下显示“青年”;
35-45岁显示“中年”;
46-75岁显示“老年”;
改进前面的程序,增加对非法年龄(负数,超过120)的处理
import java.util.Scanner;
public class Age{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入年龄:");
int age = sc.nextInt();
if(age <=0 || age >= 120){
System.out.println("您输入的年龄有误");
}else if(age < 35){
System.out.println("青年");
}else if(age >= 35 && age <= 45){
System.out.println("中年");
}else if(age >= 46 && age <= 75){
System.out.println("老年");
}else{
System.out.println("您输入的年龄有误。");
}
}
}
2、两种方式实现对两个整数变量的值进行互换.
3、从键盘输入三个数,显示其中的最大值,要求使用if-else和三元运算符两种方式实现
import java.util.Scanner;
public class Age{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("请输入第一个整数:");
int i = sc.nextInt();
System.out.print("请输入第二个整数:");
int j = sc.nextInt();
System.out.print("请输入第三个整数:");
int k = sc.nextInt();
//方法一:使用三元运算符
// int max = i>j?(i>k?i:k):(j>k?j:k);
// System.out.println("经检测,您输入的最大整数是max = "+max);
//方法二:使用三元运算符
// int res = i>j?i:j;
// int max = res>k?res:k;
// System.out.println("经检测,您输入的最大整数是max = "+max);
//方法三:使用if else语句
/*
if(i > j && i >k){
System.out.println("经检测,您输入的最大整数是:" + i);
}else if(j > i && j > k){
System.out.println("经检测,您输入的最大整数是:" + j);
}else{
System.out.println("经检测,您输入的最大整数是:" + k);
}
*/
//方法四:使用if - else语句
if(i > j){
if(i > k){
System.out.println("经检测,您输入的最大整数是:" + i);
}else{
System.out.println("经检测,您输入的最大整数是:" + k);
}
}else{
if(j >k){
System.out.println("经检测,您输入的最大整数是:" + j);
}else{
System.out.println("经检测,您输入的最大整数是:" + k);
}
}
}
}