【错题整理】Java基础部分

  1. 多选题(5分)

    下列方法中能和方法int max(int a, int b, double c)构成重载关系的是( )

    A、double max(int a, int b, double c)

    B、void max(int a, double c, int b)

    C、int max(double a, int b)

    D、int max(int x, int y, double z)

    正确答案BC,涉及知识点:方法的重载

    分析

    • 方法重载:同一个类里面,同一个方法名,不同的参数列表或返回值类型的两个方法,可以构成重载关系。
    • 错误原因1,审题不认真——参数列表的变量名不同,数据类型相同,也视作相同的参数列表
    • 错误原因2,概念理解——重载关系的返回值类型也可以是不同的
  2. byte a=23 byte b=12 a+b的结果为byte类型

    正确答案:错误。知识点:基本数据类型

    分析

    • 在Java的运算过程中,byte类型的数据不能直接做相加减,java会默认将byte类型数据转换为int类型,所以c为int类型,无法直接赋值为byte。
    • 如果需要得到byte类型的结果,需要再强制转型一次。
  3. 单选题(3分)

    下面程序哪个语句是正确的

    A、byte a=0,b=3; byte c =a+b;

    B、short s =23; s=s+12;

    C、short s=23; s+=12;

    D、float f = 23+23.23;

    正确答案 C,涉及到知识点:基本数据类型

    A为什么错误?

    • 记住:JAVA中精度小于int的数值运算的时候都回被自动转换为int后进行计算

    B的错误同上,还需要注意

    • 注意: s=s+12其实是,short+int,低位和高位数据类型运算,结果也会转换为高位的数据类型。

    D的错误同理:小数默认类型是double,这里的运算是int+double,结果应该是double类型

  4. 18、单选题(3分)和下面代码能完成相同的选项是( )

    int i=1;
    int sum=0;
    while(i<=100)
    {
          
          
       if(i%2==0)
       {
          
          
          sum=sum+i;
       }
       i++;
    }
    

    A、for (int x=1;x<=100;x++){ sum=sum+x;}

    B、for (int x =0;x<=100;x+=2){ sum=sum+x;}

    C、for (int x =1;x<=100;x+=2){ sum=sum+x;}

    D、上述全对

    正确答案,B,知识点:循环结构

    分析:理解提干中代码的含义——求1~100之间,所有偶数的和

  5. 22、单选题(3分)下面程序执行的结果是?( )

    int x=2,y=3;
    switch(x)
    {
          
          
       default:  
          y++;    
       case 3:
          y++;
       case 4:
          y++;
    }
    Sysetem.out.println("y="+y);
    

    A、3

    B、4

    C、5

    D、6

    答案:D 知识点:switch分支结构的执行顺序

    分析:本次考察的是switch-case中的case穿透现象——当case执行某个分支时会一直向下执行,直到break或代码块结束。

    本题中的执行顺序整理如下:

    1. 判断x的值为2,确定执行的分支 ——非3非4,即走default默认路线
    2. default执行一次y++
    3. case穿透到 3分支 :执行一次y++
    4. case穿透到 4分支 :再执行一次y++
    5. 结束代码块,执行输出语句 y=6

猜你喜欢

转载自blog.csdn.net/Xcong_Zhu/article/details/126361658