📜  Java程序的输出| 26套

📅  最后修改于: 2022-05-13 01:56:10.914000             🧑  作者: Mango

Java程序的输出| 26套

问题1:这个程序的输出是什么?

class A {
    public int i;
    private int j;
}
  
class B extends A {
    void display()
    {
        super.j = super.i + 1;
        System.out.println(super.i + " " + super.j);
    }
}
  
class inheritance {
    public static void main(String args[])
    {
        B obj = new B();
        obj.i = 1;
        obj.j = 2;
        obj.display();
    }
}

一) 2 2
b) 3 3
c) 运行时错误
d) 编译错误

Answer: d 

说明: A类包含一个私有成员变量j,它不能被子类B继承。所以在B类中我们不能访问j。所以它会给出编译时错误。

问题2:这个程序的输出是什么?

class selection_statements {
    public static void main(String args[])
    {
        int var1 = 5;
        int var2 = 6;
        if ((var2 = 1) == var1)
            System.out.print(var2);
        else
            System.out.print(++var2);
    }
}

选项:a) 1
b) 2
c) 3
d) 4



Answer: b

说明:在“If”语句中,首先将var2初始化为1,然后检查var2是否等于var1。我们知道 var1 是 5,var2 是 1,所以条件为假,否则部分将被执行

问题3:这个程序的输出是什么?

class comma_operator {
    public static void main(String args[])
    {
        int sum = 0;
        for (int i = 0, j = 0; i < 5 & j < 5; ++i, j = i + 1)
            sum += i;
        System.out.println(sum);
    }
}

选项:
一)5
b) 6
c) 14
d) 编译错误

Answer: b

说明:使用逗号运算符,我们可以在 for 循环的初始化和迭代部分包含多个语句。因此 ++i 和 j = i + 1 都被执行,i 得到值:0, 1, 2, 3,j 得到值:0, 1, 2, 3, 4, 5。

问题4。程序的输出是什么?

class Geeks {
    public static void main(String[] args)
    {
        Geeks g = new Geeks();
        g.start();
    }
  
    void start()
    {
        long[] a1 = { 3, 4, 5 };
        long[] a2 = fix(a1);
        System.out.print(a1[0] + a1[1] + a1[2] + " ");
        System.out.println(a2[0] + a2[1] + a2[2]);
    }
  
    long[] fix(long[] a3)
    {
        a3[1] = 7;
        return a3;
    }
}

选项:
a) 12 15
b) 15 15。
c) 3 4 5 3 7 5
d) 3 7 5 3 7 5

Answer: b

说明:引用变量 a1 和 a3 引用同一个长数组对象。当 fix() 方法被调用时,数组 a1 作为引用传递。因此 a3[1] 的值变为 7,这也将反映在 a1[] 中,因为通过引用调用。所以 a1[] 数组变成了 {3, 7, 5}。当 this 返回到 a2[] 时,它也变成了 {3, 7, 5}。

所以输出:3 + 7 + 5 + ” ” + 3 + 7 + 5 = 15 15

问题5。程序的输出是什么?

class BitShift {
    public static void main(String[] args)
    {
        int x = 0x80000000;
        System.out.print(x + " and  ");
        x = x >>> 31;
        System.out.println(x);
    }
}

选项:
a) -2147483648 和 1
b) 0x80000000 和 0x00000001
c) -2147483648 和 -1
d) 1 和 -2147483648

Answer: a

解释:选项A是正确的。 >>>运算符将所有位向右移动,零填充左位。位转换如下所示:

Before: 1000 0000 0000 0000 0000 0000 0000 0000
After: 0000 0000 0000 0000 0000 0000 0000 0001

选项 C 是不正确的,因为 >>>运算符零填充了左边的位,在这种情况下,它改变了 x 的符号,如图所示。