标签:bdc 答案 对象 模块 for循环 time 不为 分析 protected
分
(单选题)分析如下代码,输出结果正确的是(): class Test{ public static void main(String[] args){ int i=5; System.out.println(i++); System.out.println(i); } }
【正确答案】C
【答案解析】这里考的是算术运算符中的++运算符 在java中,++为自增运算符,给变量本身增1。--为自减运算符,给变量本身减1。 i++为一个表达式,此表达式的值就是变量i的值,即为5,所以System.out.println(i++),输出的就是5。 因为在此处已经进行i++了,所以i本身的值会增1而变为6,所以下面System.out.println(i),输出的就是6。 所以本题C选项是正确的,ABD都是错误的。
(单选题)在Java中有一个类Aoo,下面为其构造方法的声明,正确的是()。
【正确答案】B
【答案解析】此题目考查的是Java中的构造方法。 Java中的构造方法,必须与类同名,并且没有返回值类型(连void都没有)。所以本题正确选项为B。
(单选题)在Java中,下列代码的运行结果是()。 public static void main(String[] args){ int[] arr = new int[4]; System.out.println(arr[4]); }
【正确答案】B
【答案解析】此题目考查的是Java中的数组。 声明整型数组arr,包含4个元素,每个元素都是int型,默认值为0。 因为数组的下标从0开始,所以数组的最大下标为数组长度-1。所以在输出arr[4]的时候会出现数组下标越界的运行时异常,所以选项B是正确的。
(单选题)在Java中,一个源程序文件中定义了3个类,其中public修饰的类只能有()个。
【正确答案】B
【答案解析】此题目考查的是Java中的类和对象。 在Java语言中,一个源文件可以定义多个类,但是public修饰的类只能有一个,所以本题正确选项为B。
(单选题)下列Java代码的正确输出结果是()。 public class Test { public static void main(String[] args) { Aoo aoo = new Aoo(5); System.out.println(aoo.num); } } class Aoo{ int num; public Aoo(int num) { num=num; } }
【正确答案】A
【答案解析】此题目考查的是Java构造方法中给变量赋值。 本题中,在创建Aoo对象时将5传递给Aoo的有参构方法,在构造方法的num=num中,此时操作得都是局部变量num,与成员变量num没有关系,所以此时并没有给成员变量赋值,所以本题中成员变量num的值依然还是默认得0,本题选项A是正确的。
(单选题)下列代码输出的结果是() int sum = 0; for (int i = 1; i 30) { break; } } System.out.println(sum);
【正确答案】C
【答案解析】该程序中 循环变量i的值从1开始, 循环内每次判断当前i的值对3取余是否为0, 如果为0则与当前sum变量的值相加, 如果不为0且当前sum变量的值大于30则退出当前循环。 第1次循环i的值为1,则if和else if的条件都不成立, 所以继续下一次循环。 第2次循环i的值为2,则if和else if的条件都不成立, 所以继续下一次循环。 第3次循环i的值为3,则if条件城里,所以执行sum += i, 此时sum的值变为3。然后继续下一次循环。 以此类推,sum的值是由所有对3取余为0的值相加所得, 且每次都要判断最新的sum的值是否大于30。 所以循环过程中sum值的变化应该是3、9、18、30、45 ... 当sum的值变为45时,此时超过了30,所以循环结束。 所以最后sum的值应该是45。
(单选题)在Java中,可以创建长度为4的数组对象的是()。
B.int[] arr = new int(4);
C.int[] arr = new int[] { 12,34,56,78 };
D.int[] arr = new int[4] { 12,34,56,78 };
【正确答案】C
【答案解析】此题目考查的是Java中的数组。 在Java语言中,在创建数组中需要设定数组元素的个数,所以选项A是错误的。数组的元素个数需要放在中括号[]中,所以选项B也是错误的。创建数组直接给元素赋值时不能同时再设定元素个数。所以选项D是错误的。本题正确结果为C。
(单选题)下列对方法的访问中,语法正确的是( )。
A.int i = 10; static int j = 20; void fun1(){} static void fun2(){ fun1(); i++; }
B.int i = 10; static int j = 20; void fun1(){} static void fun2(){ fun1(); j++; }
C.int i = 10; static int j = 20; void fun1(){ fun2(); i++; } static void fun2(){ i++; }
D.int i = 10; static int j = 20; void fun1(){ fun2(); j++; } static void fun2(){}
【正确答案】D
【答案解析】本题目考查static修饰的方法,对类中成员的访问。 由于static在调用时没有具体的对象,因此在static方法中不能对非static成员 (对象成员)进行访问。 选项A,错误,static方法fun2()中访问了非静态成员i和fun1()。 选项B,错误,static方法fun2()中访问了非静态成员fun1()。 选项C,错误,static方法fun2()访问了非静态成员i。 选项D,正确,成员方法,可以访问类中所有的成员。
(单选题)在Java中, 以下()是public void Test()的重载方法。
D.public void Test(int num) { }
【正确答案】D
【答案解析】此题目考查的是Java中方法的重载。 在Java语言中,允许多个方法的名称相同,但参数列表不同,称之为方法的重载(overload)。重载与访问修饰符无关,也返回值类型无参。所以本题正确选项为D。
(单选题)下列Java代码运行的结果是()。 public class Test { public static void main(String[] args) { Aoo[] aoo = new Aoo[2]; System.out.println(aoo[0]); } } class Aoo{ int x; int y; public Aoo(int x, int y) { this.x = x; this.y = y; } }
【正确答案】B
【答案解析】此题目考查的是Java中的引用类型数组。 Aoo[] aoo = new Aoo[2];此名创建的是Aoo的数组对象,包含了2个元素,每个元素都是Aoo类型的,默认值为null。接下来输出Aoo[0]的值,即为默认的值null。所以本题正确选项为B。
(单选题)java代码,如下: class Fu{ public void count(int i){ System.out.println(11/4); } } public class Zi extends Fu{ public void count(int i){ System.out.println(11%i); } public static void main(String[]args){ Fu fu = new Zi( ); fu.count(4); } } 编译运行,结果是( )。
【正确答案】B
【答案解析】本题考查多态中的方法调用 父类型的引用,指向子类的对象,如果子类中重写了父类的方法,使用父类的引用调用被重写的方法的时候,此时该引用会与子类中的方法绑定,我们称为动态绑定。 因此,本题中执行的子类中的方法。11%4的运算是求模的运算,结果是3
(单选题)给出以下代码,请问如何声明totalPage使其为一个只读属性( )。 public class Page{ public int totalPage; }
C.声明totalPage变量为private,并且建立一个用于获取totalPage变量值 的getTotalPage() 方法。
【正确答案】C
【答案解析】本题考查java类中只读属性的定义 只读属性需要使用private修饰,只能由类中提供的方法访问该属性, 类中需要提供形如public int getTotalPage(){return ...}的方法,方法中负责提供算法,返回属性对应的类型的值。 选项C正确
(单选题)给出下面的代码段 : public class Base{ int w, x, y ,z; public Base(int a,int b) { x=a; y=b; } public Base(int a, int b, int c, int d) { // ... w=d; z=c; } } 在代码// ... 处写入如下哪个代码是正确的?( )。
【正确答案】D
【答案解析】本题考查this关键字的使用。 在构造函数中,调用构造函数的时候,必须使用this调用,而且必须是构造函数中的第一条语句,选项AC错误,选项B中,x=a必须使用分号结尾。选项D正确。
(单选题)分析如下Java代码,如果想在控制台上输出"B类的test()方法", 则在1处应填入( )。 class A { public void test() { System.out.println("A类的test()方法"); } } class B extends A { public void test() { System.out.println("B类的test()方法"); } public static void main(String args[]) { // 1 } }
A.A a = new B(); a.test();
B.A a = new A(); a.test();
C.B b = new A(); b.test();
【正确答案】A
【答案解析】本题考查面向对象的特性之一多态。 实现多态的条件是继承和重写,定义父类型的引用指向子类的对象 本题中类B继承了类A,子类中重写了父类的方法test()。 选项A,在继承和重写的前提下,父类A类型的引用变量a指向了子类 B创建的对象。a.test(),会调用子类中的test()方法,会满足题目要求 选项A正确。
(单选题)下面的程序输出结果是( )。 public class A implements B { int k = 20; public static void main(String args[]) { int i; B c1 = new A(); i = c1.k; System.out.println("i=" + i); } } interface B { int k = 10; }
【正确答案】C
【答案解析】本题考查多态中的成员变量。 Java中,成员变量是没有重写的,成员变量不可以被继承或覆盖,即不能实现多态。 只有方法才能构成多态。也就是说方法可以实现动态绑定,而变量用于是静态绑定。 所以本题中B c1 = new A(); i=c1.k;此时c1类型为B,与变量 int k = 10绑定 i值为10 选项C正确。
(单选题)下列程序输出结果是( )。 public class Test { static int i = 0; public int aMethod() { i++; return i; } public static void main(String args[]) { Test test = new Test(); test.aMethod(); int j = test.aMethod(); System.out.println(j); Test test1 = new Test(); System.out.println(test1.i); } }
【正确答案】A
【答案解析】本题考查static修饰成员变量。 用static修饰的成员变量不属于对象的数据结构 static变量是属于类的变量,通常可以通过类名来引用static成员。 static成员变量和类的信息一起存储在方法区,而不是在堆中,一个类的static 成员变量只有“一份”,无论该类创建了多少个对象。 本题目中,调用了2次aMethod()方法,成员变量i自增了2次, 所以j的值为2,输出2,而因为i是static成员变量,所有对象都共享 i=2的值,所以也输出2 选项A正确
(单选题)下列程序运行结果是( )。 public class Test { String str=new String("tedu"); char[]ch={‘x‘,‘y‘,‘z‘}; public static void main(String args[]){ Test t = new Test(); t.change(t.str,t.ch); System.out.print(t.str+" and "); System.out.print(t.ch);} public void change(String str,char ch[]){ str="tarena"; ch[0]=‘w‘; } }
【正确答案】C
【答案解析】本题考查方法的调用 调用带有引用数据类型参数的方法,传的是引用,当在方法中操作该引用,被传递的参数所指向的对象将发生变化。 本题中,调用change()方法,传递一个字符串类型引用,和数组对象的引用,方法中 将字符串引用重新指向了一个新的字符串对象,源字符串对象不会发生变化。还是 tedu,而方法中对数组的操作,改变了源数组中第1个元素,源数组被改变后为 wyz,所以本题选项C正确
(单选题)在java中,下列程序的输出结果是( )。 class Point { int x; boolean y; void output(){ System.out.println(x); System.out.println(y); } public static void main(String[] args) { Point point =new Point(); point.output(); } }
【正确答案】C
【答案解析】本题考查成员变量默认初始化 成员变量会被默认的构造方法默认初始化,int默认值为0,boolean默认初始为false 值,选项C正确。
(单选题)关键字abstract可以和下列( )关键字一起使用
【正确答案】C
【答案解析】本题考查abstract关键字 选项A错误,抽象方法必须被覆盖 ,而Final后面的方法无法被覆盖 选项B错误,抽象方法必须被覆盖,私有的方法无法被覆盖 因为子类不可见 选项C正确。 选项D错误,静态可以直接被类名调用,调用抽象方法就没什么意义
(单选题)Java代码的运行结果是( )。 class Account { private String name; // 名字 private int state; // 账号状态 private String idCard; // 身份证号 public void Account() { name = "李强"; state = 0; idCard = "109..."; System.out.println("执行构造方法。");} public void show() { System.out.println ("账务账号的名字是" + name + ",状态是" + state + ",身份证号是" + idCard + "。"); } public static void main(String[] args) { Account acc = new Account(); acc.show();} }
A.账务账号的名字是null,状态是1,身份证号是109...。
B.执行构造方法。 账务账号的名字是null,状态是1,身份证号是null。
C.账务账号的名字是null,状态是0,身份证号是null。
D.执行构造方法。 账务账号的名字是李强,状态是1,身份证号是109...。
【正确答案】C
【答案解析】本题考查构造方法的特点和作用 构造方法必须与类名相同,没有返回值类型。如果没有定义构造方法,系统会提供无参 的构造方法。构造方法用来初始化成员变量和创建对象。当使用某个构造方法,创建对象的时候,系统会自动调用该构造方法。构造方法在初始化成员变量的时候,给成员变量添加初值。整型为0,字符串类型为null。本题中,定义的Account()方法,与类名相同,但并非是构造方法,只是普通的方法。所以,该类中的成员变量还是默认的初值。 选项C正确
(单选题)如下两个数组定义 char[] arr1 = {‘a‘,‘c‘,‘d‘}; char[] arr2 = {‘g‘,‘h‘,‘j‘}; 能将两个数组正确合并的选项是( )。
A.int length = arr1.length+arr2.length; char[] arr3 = new char[length]; System.arraycopy(arr1, 0, arr3, 0, arr1.length); System.arraycopy(arr2, 0, arr3,0, arr2.length);
B.int length = arr1.length+arr2.length; char[] arr3 = new char[length]; System.arraycopy(arr1, 0, arr3, 0, arr1.length); System.arraycopy(arr2, 0, arr3,arr1.length-1, arr2.length);
C.int length = arr1.length+arr2.length; char[] arr3 = new char[length]; System.arraycopy(arr1, 0, arr3, 0, arr1.length); System.arraycopy(arr2, 0, arr3,arr1.length+1, arr2.length);
D.int length = arr1.length+arr2.length; char[] arr3 = new char[length]; System.arraycopy(arr1, 0, arr3, 0, arr1.length); System.arraycopy(arr2, 0, arr3,arr1.length, arr2.length)
【正确答案】D
【答案解析】本题考查数组拷贝的操作 arraycopy(src, srcPos, dest, destPos, length),System类中的方法,用于 拷贝数组元素 各个参数含义如下: src 表示源数组 srcPos 表示从源数组哪个位置拷贝 dest 表示目标数组 destPos 从目标数组哪个位置拷贝 length 表示拷贝源数组元素的个数 选项A中,拷贝数组arr2的时候,覆盖了新数组中前3个元素,错误 选项B中,拷贝数组arr2的时候,覆盖了新数组中第3个元素,错误 选项C中,拷贝数组arr2的时候,从新数组下标4拷贝,拷贝3个元素,会出现越界异常,错误 选项D正确
A.int x = 4590; x = x / 1000 *1000; x的结果是4590
B.int x = 3; x = x++; x的结果是4
C.short x = 3; x = x+4; x的结果是7
D.int x = 2; boolean b = x>3 && x
【正确答案】D
【答案解析】本题考查运算符的使用 选项A,java中整数的直接量都是int类型,两个整型相除,忽略余数,结果还是int类型,4590/1000结果是4,4*1000=4000,结果为4000,错误 选项B,程序的执行顺序先运算赋值运算,变量再自增,所以x的结果是3 选项C,编译错误
(单选题)执行完下面程序片段后( )的结论是正确的。 int a, b, c; a = ‘a‘; b = ‘b‘; c = (a + b > 180 ? a++ : b++); // 已知字符‘a‘,字符‘b‘对应的ASCII值97,98
【正确答案】D
【答案解析】本题考查三目运算符,自增运算符和char 变量a,b初值分别是字符‘a‘,字符‘b‘对应的ASCII值97,98 所以a+b=97+98,结果为195,大于180成立,变量c的 结果为a++,因为是后++,先赋值再运算,c结果是97,之后 a再执行自增,变成98,而b++是不执行的 综上所述a=98 b=98 c=97 选项D正确
(单选题)下列程序输出结果是( )。 int a = 0; while (a
【正确答案】C
【答案解析】本题考查while循环和switch语句 a初值0,a
(单选题)关于以下应用程序的说明,正确的是( )。 1. class StaticClass 2. { 3. static int x=10; 4. static { x+=5;} 5. public static void main(String[] args) 6. { 7. System.out.println("x=" + x); 8. } 9. static { x/=3;} 10. }
A.4行与9行不能通过编译,因为缺少方法名和返回类型
【正确答案】C
【答案解析】本题考查静态代码块 类中可以有多个static语句块,当类加载的时候依次执行 运行该应用程序的时候,先执行static{x+=5;},此时x值是15. 然后执行static{x/=3;},计算结果为x=15/3,结果为5 所以本题选项C正确。
(单选题)下面代码输出结果是( )。 int x = 0, y = 0; do { if (x % 3 == 0) { x++; continue; } x++; y = y + x; } while (x
【正确答案】C
【答案解析】本题考查do-while循环 程序推演如下: x=0,进入循环体,0%3等于0,满足if条件,x++,x值为1,执行continue,本次 循环结束,此时x=1,进入while表达式判断,x
(单选题)给出以下代码,请问该程序输出( )结果。 class Example{ static int i=1; static { ++i; } public static void main (String[]args){ increment(i,5); display(i); } static void increment(int n, int m){ n+=m; } static void display (int n) { System.out.print(n); } static{ ++i; } }
【正确答案】B
【答案解析】本题考查静态代码块。类执行即加载。静态代码块是类加载的时候自动执行。 类变量i在静态代码块中自增了2次,结果是3,而调用方法的时候,并没有改 变量i的值,只是将i的值传递到方法中。 选项B正确。
(单选题)for循环语法格式如下: for(表达式1;表达式2;表达式3){循环体} 以下说法正确的是:
C.3个表达式均可省略,使用如下格式for(;;){循环体}
【正确答案】C
【答案解析】本题考查for循环的使用 选项A,for循环的执行流程中,表达式1只执行一次,说法错误 选项B,表达式2必须返回boolean类型,用来判断循环是否继续执行,错误 选项C,可以省略3个表达式,构成一个死循环,正确 选项D,循环体中,可以没有任何java语句,满足语法要求,说法错误
(单选题)将给定的数组变成如下格式的字符串,下列选项中,正确的是( )。 例如:[1,3,4]->"[1,2,3]"
A.String str = "["; for (int x=0; x
B.String str = "["; for (int x=0; x
C.String str = "["; for (int x=0; x
D.String str = "["; for (int x=0; x
【正确答案】C
【答案解析】该题目考查的是数组元素的遍历,通过for循环, 循环变量作为访问数组元素的下标,即可访问数组中 每一个元素,注意防止出现数组下标越界异常 A,D都会出现越界异常,B会丢失数组元素,C正确
(单选题)下列程序输出结果是( )。 char c = ‘a‘; // ‘a‘ 的int值为97 if(c>100){ System.out.println(‘A‘); }else if(c>90){ System.out.println(‘B‘); }else if(c>80){ System.out.println(‘C‘); }else{ System.out.println(‘D‘); }
【正确答案】B
【答案解析】本题考查if语句 If语句结构之一if...else if...else if.....else,此结构执行流程为,当出现表达式 结果为true,即执行语句体,整个if结构运行结束 本题中,char c = ‘a‘,c对应的ASCII值为97 97>90结果为true,打印字符B,其他语句体不再执行,选项B正确
【正确答案】C,D
【答案解析】本题考查几种基本数据类型的赋值 选项A错误,byte类型最大值是127 选项B错误,boolean类型值只有true和false 选项C,D正确
(多选题)对于如下类中的study()方法,请选择如下选项中,属于方法重载的是( ) public class Student{ public String study(String content){} }
A.public void study(int days){}
B.public String study(String content,String title){}
C.public String study(){}
D.public void study(String title){}
【正确答案】A,B,C
【答案解析】本题考查方法的重载 方法的重载必须满足方法名相同,参数不同(个数或类型不同),与方法的返回类型无关,本题四个选项,方法名都满足,D选项会报出重复的方法错误不是重载 选项ABC都正确
【正确答案】A,B,C
【答案解析】JAVA语言具备跨平台性、面向对象、安全性、多线程、简单易用等特性
(多选题)Java中的继承,如下说法正确的是( )。
A.Java支持接口之间的多继承,也支持类之间的多继承。
B.Java中只支持单继承,即一个类只能有一个父类.
C.当两个类存在所属关系(is a),才使用继承(is a,是一个。 说明该类是某类的一个特殊例子,简单之称为继承。)
D.使用继承,可以使类之间产生关系,提供了多态的特性。
【正确答案】B,C,D
【答案解析】选项A,错误,继承可以提高代码的复用,但是两个类之间,如果没有所属关系,不可以使用继承 选项BCD正确
(多选题)下列对面向过程和面向对象描述正确的是( )
C.面向对象以事物为核心,将具体的数据和功能封装到事物中。
D.面向过程以事物为核心,将具体的数据和功能封装到事物中。
【正确答案】B,C
【答案解析】本题考查面向过程和面向对象的区别 “面向过程”是一种以过程为中心的编程思想。 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向过程其实是最为实际的一种思考方式,就是算面向对象的方法也是含有面向过程的思想.可以说面向过程是一种基础的方法.它考虑的是实际的实现.一般的面向过程是从上往下步步求精.所以面向过程最重要的是模块化的思想方法. 面向过程可以说是从细节处思考问题。 “面向对象”(Object Oriented,简称OO)是一种以事物为中心的编程思想。 面向对象的方法主要是把事物给对象化,对象包括属性与行为.当程序规模不是很大时,面向过程的方法还会体现出一种优势,因为程序的流程很清楚,按着模块与函数的方法可以很好的组织.面向对象也可以说是从宏观方面思考问题 选项BC正确
(多选题)循环统计1到100之间能被7整除的整数的个数, 代码输出正确的是:()。
A.int y = 1; int count = 0; while(y
B.int y = 1; int count = 0; while(y
C.int count = 0; for(int i=1;i
D.int count = 0; for(int i=1;i
【正确答案】B,C
【答案解析】题目要求7的整数倍,所以应该选择模的运算 A,D选项都是除的运算
(多选题)给出以下代码,请问该程序的运行结果是什么? class A{ private int x=0; static int y=1; protected int z=2; } class B extends A{ void method(){ System.out.println(x); System.out.println(y); System.out.println(z); } } 下列说法正确的是( )。
C.程序编译错误,如果移走System.out.println(x)这条语句, 可使编译程序通过。
【正确答案】A,C,D
【答案解析】本题考查java中几种访问修饰符 public:公共的,可以在任何类中访问 protected:受保护的,只能在同一个包中,或子类中访问 default:只能在同一个包中的类中访问 private:私有的,只能在本类中访问的 本题代码中,变量x是私有的,不能在类外部访问,ACD正确。
(多选题)对如下数组,说法正确的是( )。 int [] arr = {12,23,34,45,56,67};
C.该数组的最后一个元素的下标值为arr.length
D.该数组的最后一个元素的下标值为arr.length-1
【正确答案】B,D
【答案解析】该题目考查数组元素和长度的访问 数组中元素通过其下标访问语法为arr[0], 数组中元素下标从0开始,该题目中A,B 都是要求访问第三个元素,数组中第三个元素 下标为2,所以B正确。 数组元素下标从0开始,数组长度使用leng属性获取 所以最后一个元素的下标值为arr.length-1,D选项正确