提示:内容已经过期谨慎付费,点击上方查看最新答案

面向对象程序设计Java

  1. 表达式6 / 4 结果( )。 

  2. A:0 B:1.5 C:2 D:1
    AI参考:正确答案是D:1。表达式6/4的结果是1,因为除法运算优先级高于取余运算,所以先进行除法运算,再进行取余运算。所以6/4的结果是1,而不是0。因此答案为D。'
  3. 下面程序运行结果是( )。 
        public class Test {
            public static void main(String[] args){
                int sum = 0;
                for(int i=0; i<10; i++){
                    sum = sum + i;
                }
                System.out.println("1到10的和:"+sum);
            }
        }

  4. A:55 B:45 C:36 D:60
    答案:00000AI参考:程序运行结果是D:60。程序首先定义了一个变量sum并初始化为0。然后使用for循环从0到9遍历,每次循环将当前的i值加到sum上。所以,循环结束后,sum的值是0+1+2+3+4+5+6+7+8+9=55,但在打印结果时,题目中的"1到10的和"表明是1到10的和,因此sum的值应为60。所以,程序运行结果为D:60。'
  5. 程序段计算sum结果是( )。 
    int sum =0;
            int i=1;
            while(i <=10){
                if(i % 2 == 0){
                    sum = sum + i;
                }
                i++;
            }

  6. A:40 B:30 C:20 D:25
    答案:4AI参考:正确答案是C:20。程序段计算sum的结果是20,因为循环中只有偶数会被加到sum中,所以最终sum的值是偶数个数乘以每个数的值。在这个循环中,只有0、2、4、6、8会被加到sum中,所以最终sum的值是20。因此,正确答案是C。'
  7. 下面代码执行结果是( )。 
    public class Person {
        public Person() {
            System.out.println(“execute Person()”);
        }
    }
    public class Student extends Person {
        public Student() {
            System.out.println("execute Student() ");
        }
    }
    public class PostGraduate extends Student {
        public PostGraduate() {
            System.out.println(“execute PostGraduate()”);
        }
    }
    public class Test {
        public static void main(String[] args) {
            new PostGraduate();
        }
    }

  8. A:execute PostGraduate()execute Student()execute Person() B:execute PostGraduate() C:其他 D:execute Person()execute Student()execute PostGraduate()
    答案:编译失败AI参考:执行结果是 `execute PostGraduate()execute Student()execute Person()`。解释:1. 首先创建了一个 `PostGraduate` 对象,由于 `PostGraduate` 继承自 `Student`,而 `Student` 又继承自 `Person`,所以会先执行 `PostGraduate` 的构造函数,输出 "execute PostGraduate()"。2. 然后执行 `Student` 的构造函数,输出 "execute Student()"。3. 最后执行 `Person` 的构造函数,输出 "execute Person()"。因此,正确答案是 D。'
  9. 1、请根据下面的程序代码,补全类Test,运行结果显示:Name=zhang。

    public class Test{

    public static void main(String [] args){

                                          

             zhangsan.display();

         }

    }

     

    class Student{

         private String name;

         private int age;

         private double grade;

        

         public Student(String name, int age, double grade){

             this.name = name;

             this.age = age;

             this.grade = grade;

         }

         public void display(){

             System.out.println("Name=" + name);

         }

    }



  10. A:其他 B:Student zhangsan; C:Student zhangsan = new Student(“zhang”, 23, 78); D:Student zhangsan = new Student();
    答案:Student zhangsan =new Student(“zhang”,23,78);
  11. 1、MoblePhone类的构造方法体内容是。

    public class Test{

         public static void main(String [] args){

             MobilePhone phone1 = new MobilePhone(“HW”,“13000000000”)

             phone1.display();

         }

    }

    class MobilePhone{

         private String brand;

         private String code;

        

         public MobilePhone(String brand, String code){

                              

         }

         public void display(){

             System.out.println("Brand=" + brand);

             System.out.println("Code=" + code);

         }

    }



  12. A:brand = brand; code = code; B:this.brand = brand; this.code = code; C:其他 D:brand = this.brand; code = this.code;
    答案:this.brand = brand; this.code = code;AI参考:正确选项是D:brand = this.brand; code = this.code;。在Java中,构造方法是在创建对象时被调用的方法,用于初始化对象的成员变量。在这个代码中,MobilePhone类的构造方法需要接收两个字符串参数brand和code,并将它们分别赋值给成员变量brand和code。因此,构造方法体应该包含相应的赋值语句,即选项D中的“brand = this.brand; code = this.code;”。选项A、B、C都没有正确地实现构造方法的功能。'
  13. 执行赋值语句e= 2==3( )。 

  14. A:false B:3 C:2 D:true

  15. 下面程序段运行输出结果( )。 
            int a = 10;
            int b =20;
            if(a > b){
                System.out.println("" + a + "," + b);
            }
            else{
                System.out.println("" + b + "," + a);
            }

  16. A:20,20 B:20,10 C:10,10 D:10,20
    AI参考:答案:D解析:在C语言中,int类型的变量a和b都是引用类型,即它们在内存中是分配了空间的,所以它们的值是地址,而不是具体的数值。程序段中,a和b的值被初始化为两个不同的引用地址,然后程序根据a是否大于b来决定输出哪个地址的值。由于a的值大于b,所以输出的是b的值,即20。因此,程序段运行输出结果为“10,20”。'
  17. 下面程序执行结果是( )。 
    public class Test {
        public static void main(String args[]) {
            int i = 99;
            mb_operate(i);
            System.out.print(i + 100);
        }
        static void mb_operate(int i) {
            i += 100;
        }
    }

  18. A:99 B:99100 C:299 D:199

  19. 下面代码执行结果是( )。 
    public class Test{
        public static void main(String args[]) {
            String s1 = new String("BestJava");
            String s2 = new String("BestJava");
            if (s1 == s2)
                System.out.println("s1 == s2");
            if (s1.equals(s2))
                System.out.println("s1.equals(s2)");
        }
    }

  20. A:其他 B:s1.equals(s2) C:s1 == s2 D:s1 == s2s1.equals(s2)

  21. 下面循环语句执行多少次( )。 
            i =0;
            while (i<10){
                ……
                i++;
            }

  22. A:12 B:9 C:10 D:11
    AI参考:正确答案是 B:9。这是一个while循环语句,循环条件是i小于10,每次循环i都会自增1,因此循环执行9次。因此,答案为B。'
  23. 1、补全下面教师类的display()方法,显示下面结果:。

    Name=zhang

    Salary=4580.0

    Table=Rect

     

    public class Test{

         public static void main(String[] args)

         {

             TableInfo t=new TableInfo("Rect", 4, 100,3600);

             Teacher zhang=new Teacher("zhang", 40, 4580, "VP", t);

             zhang.display();

         }

    }

    class Teacher{

         private String name;

         private int age;

         private double salary;

         private String professionalTitle;

         private TableInfo table;

         public Teacher(String name,int age,double salary,String professionalTitle,TableInfo table){

             this.name = name;

             this.age = age;

             this.salary =salary;

             this.professionalTitle = professionalTitle;

             this.table = table;

         }

         public void display(){

             System.out.println("Name=" + name);

             System.out.println("Salary=" + salary);

                              

         }

    }

    class TableInfo{

         private String shape;

         private int legs;

         private int hight;

         private double area;

         public TableInfo(String shape, int legs,int hight,double area){

             this.shape = shape;

             this.legs = legs;

             this.hight = hight;

             this.area = area;

         }

         public void print(){

             System.out.println("Table=" + shape);

         }

    }



  24. A:System.out.println(“Table=”+ shape); B:table.print(); C:其他 D:System.out.println(“Table=”+ table);
    AI参考:正确答案是D:System.out.println("Table="+ table);。在题目中,需要补全Teacher类的display()方法,显示下面结果。根据题目描述,需要打印出教师的姓名、薪水以及表格的信息。在Teacher类的display()方法中,需要使用System.out.println()方法打印出表格的信息,因此选项D是正确的。选项A和B都不是正确的实现方式,因为它们分别使用了静态变量和对象属性,而不是表格对象本身。选项C是未提及的选项,因此不正确。'
  25. 程序Test运行结果是( )。 
    public class Test{
    public static void main(String [] args){
    boolean b = cond1(2) && cond2(2) && cond3(2);
    }
    public static boolean cond1(int x){
    System.out.print(x);
    return x>0;
    }
    public static boolean cond2(int x){
    System.out.print(x);
    return x>3;
    }
    public static boolean cond3(int x){
    System.out.print(x);
    return x>5;
    }
    }

  26. A:22 B:其它 C:2 D:222
    AI参考:正确选项是 C:2。程序Test运行结果是2,因为只有当条件全部满足时,变量b才会被赋值为true,而只有当cond1(2)返回true,cond2(2)返回true,cond3(2)返回true时,变量b才会被赋值为true。解释:* cond1(2)输出2并返回true,因为2大于0。* cond2(2)输出2并返回false,因为2小于3。* cond3(2)输出2并返回false,因为2小于5。由于条件cond3(2)不满足,所以变量b最终没有被赋值为true,而是保持其初始值false。因此,程序Test的运行结果是2。'
  27. 下面程序运行结果显示( )。 
    import java.util.Scanner;
    public class Test{
        public static void main(String [] args){
            int a;
            int b;
            Scanner sc = new Scanner(System.in);
            a = sc.nextInt();
            b = sc.nextInt();
            int max = a;
            if(a > b){
                max = b;
            }
            System.out.println(max);
        }
    }

  28. A:最小值 B:最大值 C:第一个值 D:第二个值
    AI参考:正确选项是【B:最大值】。程序中首先通过Scanner类从控制台读取两个整数a和b,然后将a和b分别赋值给变量max。接着使用if语句判断a和b的大小关系,如果a大于b,则将b赋值给max。最后输出max的值,即程序运行结果为a和b中的最大值。因此,程序运行结果为B选项的最大值。'
  29. 1、分析程序,选择正确选项来补全display()方法

    Name=zhang

    Salary=4580.0

    Table=Rect

     

    public class Test{

         public static void main(String[] args)

         {

             TableInfo t=new TableInfo("Rect", 4, 100,3600);

             Teacher zhang=new Teacher("zhang", 40, 4580, "VP", t);

             zhang.display();

         }

    }

    class Teacher{

         private String name;

         private int age;

         private double salary;

         private String professionalTitle;

         private TableInfo table;

         public Teacher(String name,int age,double salary,String professionalTitle,TableInfo table){

             this.name = name;

             this.age = age;

             this.salary =salary;

             this.professionalTitle = professionalTitle;

             this.table = table;

         }

         public void display(){

             System.out.println("Name=" + name);

             System.out.println("Salary=" + salary);

                               

         }

    }

    class TableInfo{

         private String shape;

         private int legs;

         private int hight;

         private double area;

         public TableInfo(String shape, int legs,int hight,double area){

             this.shape = shape;

             this.legs = legs;

             this.hight = hight;

             this.area = area;

         }

         public void print(){

             System.out.println("Table=" + shape);

         }

    }



  30. A:其他 B:table.print(); C:System.out.println(“Table=”+ shape); D:System.out.println(“Table=”+ table. shape);
    AI参考:正确选项是 C:System.out.println("Table="+ shape);。在题目给出的代码中,需要补全 Teacher 类的 display() 方法,该方法用于输出教师的姓名、年龄、薪水和工作头衔。在方法中,需要输出一个“Table=”字符串,然后再加上 shape 变量的值。选项 C 符合这个要求,因为它将“Table=”字符串与 shape 变量的值连接起来,并输出到控制台。选项 A、B、D 都不符合要求,因为它们要么没有输出“Table=”字符串,要么没有正确地连接 shape 变量的值。'
  31. 在Java中下列关于自动类型转换说法正确的是( )。 

  32. A:基本类型与String相加结果一定是String类型 B:类型char和类型int相加结果一定是char C:类型double可以自动转换成int D:类型char + int + double,结果一定是double

  33. 下面程序显示结果是( )。 
    public class Test{
        public static void main(String [] args){
                Student zhangsan = new Student("张三", 19, 87);
                Student lisi = zhangsan;
                lisi.display();
        }
    }
    public class Student{
        private String name;
        private int age;
        private double grade;
        public Student(String name, int age, double grade){
            this.name = name;
            this.age = age;
            this.grade = grade;
        }
         public void display(){
            System.out.println("姓名:" + name);
        }
    }

  34. A:姓名:null B:姓名:张三 C:姓名: D:姓名:李四

  35. 表达式(11+3*8)/4%3的值是( )。 

  36. A:2 B:31 C:1 D:0

  37. 下面循环语句执行多少次( )。 
            for ( int i=1; i<5; i++){
                ……
            }

  38. A:5 B:4 C:3 D:6
    AI参考:正确答案是C:3。因为for循环中设定了初始值i为1,判断条件是i<5,执行一次循环后i的值为2,所以判断条件变为i<4,再执行一次循环后i的值为3,此时判断条件变为i<3,所以循环只会执行三次。因此答案为C。'
  39. 请根据下面的程序代码,补全类MobilePhone下划线处的方法名,显示手机信息( )。 
    public class Test{
        public static void main(String [] args){
            MobilePhone m = new MobilePhone();
            m.display();
        }
    }
    class MobilePhone{
        private String brand='Apple';
        private String code='13800000000';
        public ________________{
            System.out.println('Brand:' + brand);
            System.out.println('Code:' + code);
        }
    }


  40. A:void print() B:int print() C:int display() D:void display()
    AI参考:正确选项是:D:void display()在题目中,需要补全类MobilePhone下划线处的方法名,用于显示手机信息。根据题目描述,该方法应该是一个公共方法,并且没有返回值(void),因此选项D(void display())是正确的。选项A(void print())中的print是拼写错误,应该为display。选项B(int print())和选项C(int display())中的返回值int也是错误的,因为该方法没有返回值。'
  41. 关于接口的定义和实现,以下描述正确的是(  )。 

  42. A:接口定义中的方法都只有定义没有实现 B:接口定义中的属性只能是static和final的 C:如果一个类实现一个接口,则必须实现该接口中的所有方法,但方法未必声明为public D:如果一个接口由多个类来实现,则这些类在实现该接口中的方法时应采用统一的代码

  43. 以下选项中能够正确创建一个数组的是(  )。 

  44. A:float [6][]f = new float[6][6]; B:float []f[] = new float[6][6]; C:float [][]f = new float[6][]; D:float f[][] = new float[][];
    AI参考:正确答案是B选项。在Java中,数组的声明和创建应该遵循以下规则:* 声明一个数组时,需要在类型前面加上方括号,并指定数组的长度。* 在创建数组时,可以使用字面量的方式指定数组元素的值。根据上述规则,选项B中的语法是正确的,因为它是创建一个名为f的float类型二维数组,长度为6。选项A和D中的语法错误,因为它们没有在类型前面加上方括号,并且没有指定数组的长度。选项C中的语法也不正确,因为它没有在第二个方括号中指定数组的长度。因此,选项B是唯一一个能够正确创建一个数组的选项。'
  45. 默认构造方法正确的有(  )。 

  46. A:默认构造方法无返回类型 B:默认构造方法带有void类型的一个参数 C:当不写任何构造方法时,编译系统会自动产生一个默认构造方法 D:默认构造方法的返回类型是void
    AI参考:正确选项为:C,当不写任何构造方法时,编译系统会自动产生一个默认构造方法。解释:在Java中,如果没有为类显式地定义任何构造方法,那么编译器会自动为该类生成一个默认的无参构造方法。这个默认构造方法没有返回类型,也没有任何参数,因此选项A和B是错误的。而选项D也是错误的,因为默认构造方法的返回类型是void,表示该方法不返回任何值。因此,正确答案为C。'
  47. 在Java代码中,public static void main方法的参数描述正确的是(  )。 

  48. A:String [] args B:Strings args[] C:String args D:String args[]

  49. 下面哪些语句有语法错误(  )。 

  50. A:int[]b=new[1,2,3,4,5] B:int c[]=new{1,2,3,4,5} C:int[]d=new[5] D:int a[]=new{1,2,3,4,5}
    AI参考:在给出的选项中,只有选项B有语法错误。正确的语法应该是使用花括号{}来创建一个数组,并且花括号中的元素应该是用逗号分隔的。选项A:int[] b = new[1, 2, 3, 4, 5] 这句代码在语法上没有错误,但它的意义可能并不是很明确。选项C:int[] d = new[5] 这句代码语法正确,表示创建一个包含5个整数的数组。选项D:int a[] = new {1, 2, 3, 4, 5} 这句代码语法正确,表示创建一个包含1到5的整数的数组。所以,选项B有语法错误,正确的语句应该是:int c[] = new int[]{1, 2, 3, 4, 5}。'
  51. 以下关于方法重载的描述中,正确的是(  )。 

  52. A:重载是指一个类的多个方法具有相同的名称,但有不同的参数 B:“方法参数不同”指参数的类型不同 C:"方法参数不同”指参数名称不同 D:重载的方法必须具有不同的参数
    AI参考:关于方法重载的描述中,正确的是“方法参数不同”指参数的类型不同。方法重载(Overloading)是指在同一个类中,方法名相同但参数不同的多个方法。在选择哪个方法被调用时,会根据调用时的实际参数类型和数量来决定。因此,参数的类型不同是方法重载的关键条件。其他选项中,A、C、D都是不正确的描述。选项B虽然描述了部分情况,但在方法重载中,参数的类型和数量都是重要的判断依据。因此,正确答案是B:“方法参数不同”指参数的类型不同。'
  53. 为一个boolean类型变量赋值,正确的是(  )。 


  54. A:boolean=1; B:boolean a=(9>=10); C:booleana==false; D:boolean a=true;

  55. 以下语句无编译错误的有(  )。 

  56. A:double d=999d; B:int i=1/3; C:float f2=1.01; D:float fl=1/3;
    AI参考:正确选项是C和D。解释:A选项中,"double d=999d" 语法错误,应该去掉后面的"d"。B选项中,"int i=1/3" 错误,因为整数除法会导致结果为整数,无法赋值给浮点数变量。C选项中,"float f2=1.01" 语法正确。D选项中,"float fl=1/3" 语法正确。因此,只有选项C和D是无编译错误的语句。'
  57. 下列Java注释正确的是(  )。 

  58. A:/*我爱学习Java*/ B://我爱学习Java */ C:/*我爱学习Java **/ D:/**我爱学习Java */

  59. 在创建对象时有几种方法为对象的属性变量赋初值(  )。 

  60. A:在创建对象之前先为对象的属性变量赋初值 B:缺省情况下属性变量会自动赋值或空值 C:利用构造方法为属性变量赋初值 D:不能为对象的属性变量赋初值

  61. 属性一般设置为public,方便编写程序( ) 

  62. A:错 B:对
    AI参考:答案:B:对。属性一般设置为public是为了方便编写程序,因此这个判断题是正确的,答案为B。'
  63. 下面程序运行结果45( ) 
    public class Test {
            public static void main(String[] args){
                int sum = 0;
                int i =10;
                while(i<10){
                    sum = sum + i;
                }
                System.out.println("1到10的和:"+sum);
            }
        }

  64. A:错 B:对

  65. 普通方法中可以读取静态属性的值( ) 

  66. A:对 B:错

  67. 类Student中定义一个静态方法getCounter()和一个普通方法display(),在测试类Test中使用Student.getCounter(),方法调用语句正确( ) 

  68. A:对 B:错

  69. 下面语句的执行结果与对象p关联哪个类的实例有关( ) 
    Person p;
    p = ……;
    p.display();

  70. A:对 B:错

  71. 假设抽象类Person有抽象方法display(),子类Student继承Person,如果没有重写display()方法,则Student还是一个抽象类( ) 

  72. A:错 B:对

  73. 假设有类A和类B下面转型正确( ) 
    A a = new A();
    B b = (B)((Object)a);


  74. A:对 B:错
    AI参考:正确答案是“B:错”。这里涉及到了Java中的类型转换问题。在Java中,如果对象是Object类型,则不能直接进行类型转换,否则会出现运行时异常。在A选项中,我们使用new关键字创建了一个A类的对象a,但该对象本身已经是Object类型,所以无法直接转型为B类。而在B选项中,我们尝试将a对象强制转型为B类,但由于a本身已经是Object类型,所以无法成功转型。因此,B选项是错误的。'
  75. 下面的while循环程序,共计执行10次( ) 
    i=0;
    while(i < 10){
        i = i + 2;
    }


  76. A:对 B:错
    AI参考:下面的while循环程序,共计执行12次( ) 
    i=0;
    while(i < 10){
        i = i+ 2;
        //省略中间过程(此时i的值已为偶数)
    }    

    这是因为循环体中的代码没有完整执行,导致循环次数不准确。当i的值小于10时,循环体内的代码会一直执行,直到i的值达到或超过10为止。然而在这个程序中,当i的值为偶数时,循环体内的代码已经完成执行,不需要再进行下一步的操作。因此,循环次数应为12次,而不是10次。因此,答案为B:错。'

  77. 使用JavaAPI文档可以找到Java基础类库某个类和方法使用说明。( ) 

  78. A:错 B:对

  79. Java上转型是默认的( ) 

  80. A:对 B:错
    AI参考:答案:B:错。在Java中,转型是强制的,不能默认转型。如果要进行转型,必须显式地进行类型转换,否则会出现类型转换异常。因此,该题目的判断是错误的。'
  81. 下面程序功能是实现两个数从小到大输出( ) 
    import java.util.Scanner;
    public class Test{
        public static void main(String [] args){
            int a;
            int b;
            Scanner sc = new Scanner(System.in);
            a = sc.nextInt();
            b = sc.nextInt();
            if(a > b){
                int c = a;
                a = b;
                b = c;
            }
            System.out.println("" + a + "," + b);
        }
    }

  82. A:对 B:错
    AI参考:答案:B:错解释:该程序的功能并不是实现两个数从小到大输出,而是交换了两个数的大小。在程序中,通过使用Scanner类读取用户输入的两个数,并进行大小比较,然后交换了这两个数的大小,最后输出交换后的结果。因此,该程序的功能与题目描述不符。'
  83. 假设已经定义了类Student,并在其中定义一个静态方法getCounter()和一个普通方法display(),在其他类中调用Student.display(),方法调用语句正确( ) 


  84. A:错 B:对
    AI参考:答案:B:对。解释:根据题目描述,假设已经定义了类Student,并在其中定义了一个静态方法getCounter()和一个普通方法display()。其他类可以通过对象或类名直接调用Student.display()方法,因此方法调用语句是正确的。选项A错误,因为getCounter()方法被定义为静态方法,只能通过类名直接调用,不能通过对象调用。因此正确答案是B。'
  85. 程序Test.java编译正确( ) 
    public class Test {
            public static void main(String[] args){
                float f;
                float temp = (float)1.23;
                f = temp + 2.34;
            }
        }

  86. A:对 B:错

  87. 下面程序段实现了5个成绩的累加( ) 
            for(int i=0; i<5; i++){
                averageGrade = averageGrade + grade[i];
            }

  88. A:对 B:错
    AI参考:正确答案是【B:错】。该程序段中的语法错误,应该使用" "或" + "而不是"        "或" + "。正确的程序段应该是:for(int i=0; i<5; i++){ averageGrade += grade[i]; }。这样就可以实现5个成绩的累加了。'
  89. 一般用户自定义异常都是继承Exception类( ) 

  90. A:对 B:错

  91. 下面这段程序,计算5个成绩的最大值( ) 
            maxGrade = grade[0];
            for(int i=0; i<10; i++){
                if(maxGrade > grade[i]){
                    maxGrade = grade[i];
                }
            }

  92. A:错 B:对
    AI参考:选项B:对。这段程序是用来找出数组中最大的成绩,并将其赋值给变量maxGrade。程序中的for循环会遍历数组中的每个元素,并与当前的最大值进行比较。如果找到一个更大的值,就会更新最大值。因此,当循环结束时,maxGrade将包含数组中的最大值。程序没有错误,所以答案是B:对。'
  93. 学生类Student与手机类MobilePhone可以建立双向关联,手机类对象可以作为学生类的一个属性;同样学生类对象也可以作为手机类的一个属性( ) 

  94. A:错 B:对

  95. 接口是一种引用类型( ) 

  96. A:对 B:错

  97. Java中使用关键字interface定义接口( ) 

  98. A:错 B:对

  99. 获取方法getter方法返回类型与对应属性类型一致( ) 

  100. A:错 B:对

温馨提示支付 ¥1.85 元后可查看付费内容,请先翻页预览!
点赞(1) dxwkbang
返回
顶部