都有答案,但不知道为什么,大家帮忙解释下!多谢!编译和运行下面代码后显示的结果是(    )。
public class Inc{
public static void main(String argv[]){
                Inc inc = new Inc();
                int i =0; 
                inc.fermin(i);
                i = i++;
                System.out.println(i);
        }
        void fermin(int i){
                i++;
        }

A、编译报错误 
B、2 
C、1 
D、0 
解答:D 
++++++++++++++++++++++++++++++++++++++++++++
47、下面语句操作的输出结果是(      )。
System.out.println(4 | 3);
A、6 
B、0 
C、1 
D、7 
解答:D
++++++++++++++++++++++++++++++++++++++++++++++
3、根据下面代码定义:
Integer i = new Integer (42); 
Long 1 = new Long (42); 
Double d = new Double (42.0); 
下列表达式结果为真的有(     )。
A、(i ==1)
B、(i == d)  
C、(d == 1)
D、(i.equals (d)) 
E、(d.equals (i)) 
F、(i.equals (42)) 
解答:D,E 
++++++++++++++++++++++++++++++++++++++++++++++++
9、下列表达式等价的有(     )。
A. 3/2 
B. 3<2 
C. 3*4 
D. 3<<2 
E. 3*2^2 
F. 3<<<2
解答:C,D
++++++++++++++++++++++++++++++++++++++++++++++++
20、根据理解,填充下面代码中第3行的内部类描述,下列选项正确的有(      )。
public class OuterClass { 
private double d1 = 1.0; 
//在此处插入代码 
}
  A. class InnerOne{ 
public static double methoda() {return d1;} 

B. public class InnerOne{ 
static double methoda() {return d1;} 

C. private class InnerOne{ 
double methoda() {return d1;} 

D. static class InnerOne{ 
protected double methoda() {return d1;} 

E. abstract class InnerOne{ 
public abstract double methoda(); 
}
解答
C、E谢谢!

解决方案 »

  1.   

    47、下面语句操作的输出结果是(      )。
    System.out.println(4 | 3);
    A、6 
    B、0 
    C、1 
    D、7 
    解答:D这个  100或11是111就是7
      

  2.   

    A. 3/2    3/2
    B. 3<2    3*2
    C. 3*4    3*4
    D. 3<<2   3*4
    E. 3*2^2  6^2 =4
    F. 3<<<2  3*8
    所以 c d
      

  3.   

    第一题:“i=i++”,运算顺序是从右到做,所以先算表达式i++,其值为0,然后i才加1,此时i的值等于1,等号是给左边的i赋值,把“i++”的值0付给左边的i,所以“i=0”。
      

  4.   

    public class Inc{
    public static void main(String argv[]){
                    Inc inc = new Inc();
                    int i =0; 
                    inc.fermin(i);
                    i = i++;
                    System.out.println(i);
            }
            void fermin(int i){
                    i++;
            }

    第一题,你画一下内存图就明白了,执行好inc.fermin(i);
    这句话后虽然i=1了,但是这里i是一个局部变量啊,运行好inc.fermin(i);后,方法fermin()里的i就没有了呀,所以最后i的值仍为0,然后执行i=i++,语句
    这是因为:i++是按如下方式进行处理的:
    第一步:t=i;
    第二步:i=i+1;
    第三步:需要表达式i++的值的地方,用t来代替。
    因此:你的代码: i=i++;
    其实就是:
    t=i; //对应第一步
    i=i+1; //对应第二步
    i=t; //对应第三步
      

  5.   

    47、下面语句操作的输出结果是(      )。
    System.out.println(4 | 3);
    A、6 
    B、0 
    C、1 
    D、7 
    解答:D
    按位与运算(&):二元运算符。当被运算的两个值都为1时,运算结果为1;否则为0。 
    按位或运算(|):二元运算符。当被运算的两个值都为0时,运算结果为0;否则为1。 
    按位异或运算(^):二元运算符。当被运算的两个值中任意一个为1,另一个为0时,运算结果为1;否则为0。 
    按位非运算(~):一元运算符。当被运算的值为1时,运算结果为0;当被运算的值为0时,运算结果为1。 这里不像我们看到的逻辑运算符(与运算&&、或运算||、非运算!)操作的是布尔值true或false,或者是一个能产生布尔值的表达式;“按位运算符”所指的“位”就是二进制位,因此它操作的是二进制的0和1。
    所以只要把4和3分别转换为8位二进制数,再按位或一下就得到了7
      

  6.   

    20 题 A B C D E中 只有C E符合
    因为其他都使用了 PUBLIC关键字或STATIC关键字  内部类不允许使用这两个关键字。
      

  7.   

    Integer i = new Integer (42); 
    Long 1 = new Long (42); 
    Double d = new Double (42.0); 
    下列表达式结果为真的有(     )。
    A、(i ==1)            
    B、(i == d)          
    C、(d == 1)        
    D、(i.equals (d)) 
    E、(d.equals (i)) 
    F、(i.equals (42))
    解答:D,E 
    你这道题目有没有去运行看过啊,D,E的返回类型是false呀,只有选项F是真的呀
      

  8.   

    public class Inc{
    public static void main(String argv[]){
                    Inc inc = new Inc();
                    int i =0; 
                    inc.fermin(i);
                    i = i++;
                    System.out.println(i);
            }
            void fermin(int i){
                    i++;
            }

    输出结果位:0
    执行inc.fermin(i);这句话后虽然i=1了,但是这里i是一个局部变量啊,运行好inc.fermin(i);后,方法fermin()里的i就没有了呀,所以最后i的值仍为0,然后执行i=i++,语句
    System.out.println(4 | 3);输出结果位:7
      

  9.   

    47.System.out.println(4 | 3);输出结果位:7
    运算过程:
    4的二进制是00000100;
    3的二进制是00000011;
    3和4的二进制按照位相异或即可得到的二进制为:00000111;
    而00000111的十进制就是7,所以结果打印出来就是7了
      

  10.   

    3、根据下面代码定义:
    Integer i = new Integer (42); 
    Long 1 = new Long (42); 
    Double d = new Double (42.0); 
    下列表达式结果为真的有(     )。
    A、(i ==1)            
    B、(i == d)          
    C、(d == 1)        
    D、(i.equals (d)) 
    E、(d.equals (i)) 
    F、(i.equals (42)) 
    解答:D,E 
    这个题的答案就是F其他都是false;
    f答案正确的原因为;因为在-128到+128之间的int 类型和他的包装类型的存储结构是一样的;