导航菜单
首页 >  达内java月考考试题答案  > Java第一次月考50题及解析

Java第一次月考50题及解析

Java第一次月考50题及解析

Java第一次月考50题及解析_Java

1、【单选题】在Java中,用()关键字修饰的方法可以直接通过类名来调用。A.staticB.finalC.publicD.void【正确答案】A【答案解析】此题目考查的是Java中的static关键字。在Java语言中,由static关键字修饰的方法为静态方法,可以通过类名来直接调用。所以本题正确的选项为A。

2、【单选题】下列Java代码运行的结果是()。

public class Test {public static void main(String[] args) {Aoo o1 = new Aoo();Aoo o2 = new Aoo();o2.show();}}class Aoo{int x;static int y;public Aoo() {x++;y++;}public void show(){System.out.println(x+","+y);}}复制代码

A.1,1B.1,2C.0,1D.0,2【正确答案】B【答案解析】此题目考查的是Java中的实例变量和静态变量。在Java语言中,由static修饰的成员变量不属于对象的数据结构,而是属于类的变量,存在于方法区,而不是在堆中,一个类的static成员变量只有“一份”,而无论该类创建了多少个对象。没有static修饰的成员变量为实例变量,是属于对象的变量,存在于堆中,实例变量有几个对象就有几份。本题中创建了两个Aoo对象,在堆中会有两个实例变量x,在方法区中有一个静态变量y。y因为只有一份,所以y的值增为2了。O2引用的实例变量x的值为1。所以本题正确选项为B。

3、【单选题】以下关于继承的描述正确的是()。A.在java中,一个类只能实现一个接口B.在java中, 类只允许单一继承C.在java中,一个类不能同时继承一个类和实现一个接口D.在java中,类通过extends关键字来实现接口【正确答案】B【答案解析】此题目考查的是Java中的继承。在java中,一个类可以实现多个接口,由逗号分隔,所以选项A是错误的。Java中的一个类只能继承一个类,即只允许单一继承,所以选项B是正确的。Java中一个类可以同时继承一个类和实现一个或多个接口,但是需要注意,应先继承后实现,所以选项C是错误的。Java中extends是用于类与类之间的继承,接口与接口之间的继承。类实现接口需要通过implements关键字,所以选项D是错误的。

4、【单选题】在Java中,下列代码段的输出结果是()。

public class Test {public static void main(String[] args) {int[] arr1 = { 1,2,3 };int[] arr2 = { 1,2 };int[] arr3 = t(arr1, arr2);System.out.println(Arrays.toString(arr3));}public static int[] t(int[] arr1, int[] arr2) {int[] arr = Arrays.copyOf(arr2, arr2.length + arr1.length);System.arraycopy(arr1, 0, arr, arr2.length, arr1.length);return arr;}}复制代码

A.[1, 2, 3, 1, 3]B.[1, 2, 3, 1, 2]C.[1, 2, 1, 2, 1]D.[1, 2, 1, 2, 3]【正确答案】D【答案解析】此题目考查的是Java数组的操作。在t方法中,Arrays.copyOf()为数组的复制,将arr2整个复制到arr数组中,arr的长度为arr2的长度+arr1的长度之和,也就是arr的长度为5。此时arr的数据为 [1,2,0,0,0]。System.arraycopy()也是数组的复制,将arr1中的第1个元素开始,复制到arr中,从arr2的长度也就是2开始,复制arr1的长度也就是3个。此时arr的数据为[1,2,1,2,3]。本题的正确选项为D。

5、【单选题】以下属于合法的Java标识符的是:()。A.he-lloB.5helloC.HelloD.class【正确答案】C【答案解析】Java合法的标识符必须满足如下条件:1、由数字,字母,下划线,$组成2、不能以数字开头3、不能是Java中的关键字以上题目A选项-不合法,B选项数字开头不合法,D选项class是定义类的关键字,C正确

6、【单选题】在Java中,无论测试条件是什么,()循环将至少执行一次。A.forB.whileC.do…whileD.while…do【正确答案】C【答案解析】此题目考查的是Java中的循环。在java语言中,循环结构有三种,分别是while,do…while,for。其中for循环更适合于固定次数循环,当条件满足时会执行循环体。while循环是先判断后执行的,当条件第一次就不满足的时候,它将一次都不执行。do…while循环是先执行一次后判断的,无论条件满足与否,它都至少会执行一次。所以本题正确选项为C

7、【单选题】执行下面代码结果是( )。

for(int i=0;;){System.out.println("i="+i);break;}复制代码

A.语法错误,缺少表达式2和表达式3B.死循环C.程序什么都不输出D.输出:i=0【正确答案】D【答案解析】本题考查for循环结构,for循环格式可以简化为for(;;){},本题中,只有初始化表达式i=0,直接进入循环体执行打印i=0,再执行break,结束整个for循环D正确

8、【单选题】下面关于调用构造方法的描述中,正确的是( )。A.构造方法在类定义的时候被调用B.构造方法在创建对象的时候被调用C.构造方法在调用对象方法时被调用D.构造方法在使用对象的变量时被调用【正确答案】B【答案解析】本题考查构造方法的调用当使用构造方法创建对象的时候,构造方法会被自动调用,因为构造方法中,初始化了对象的成员变量,只有这样,JVC才会为对象根据成员量的值分配空间。选项B正确。

9、【单选题】在Java语言中,接口之间的继承关系是()。A.单一继承B.多重继承C.不能继承D.不一定【正确答案】B【答案解析】此题目考查的是Java中的继承在java语言中,接口之间的继承关系是多重继承,也就是说,一个接口可以继承多个接口,所以本题正确选项为B。

10、【单选题】下列哪项是合法的抽象类、抽象方法的定义()。A.

abstract Animal{ abstract void run();} 复制代码

B.

class abstract Animal{ abstract void run();} 复制代码

C.

abstract class Animal{ abstract void run();}复制代码

D.

abstract class Animal{ abstract void run(){}} 复制代码

【正确答案】C【答案解析】此题目考查的是Java中的抽象方法和抽象类。选项A缺少class关键字,所以选项A是错误的。选项B中abstract是修饰词,需要放在class的前面,所以选项B是错误的。选项D抽象类的定义是正确的,但是抽象类Animal中的抽象方法run是错误的,抽象方法不能有方法体,所以选项D也是错误的。本题正确选项为C。

11、【单选题】在Java中,下列关键字中不属于访问控制修饰符的是()。A.abstractB.publicC.protectedD.private【正确答案】A【答案解析】此题目考查的是Java中的访问控制修饰符。在java中访问控制分四种,public,protected,private和默认的。所以本题不属于访问控制修饰符的正确选项为A。

12、【单选题】下列程序中,出现编译错误的行数是( )。

1 class Fu{2Fu(int x){3System.out.println("fu .."+x);4}5 }6 class Zi extends Fu{7Zi(){8System.out.println("zi run");9}10Zi(int x){11this();12System.out.println("zi..."+x);13 }14 }复制代码

A.11B.2C.7D.10【正确答案】C【答案解析】创建子类时,子类的所有构造函数默认都会调用父类中空参数的构造函数。因为子类的构造函数第一行有一个句隐式的super();语句程序中的第7行,空的构造函数中,会自动调用父类没有参数的构造器,而父类中,定义了有参数的构造器,系统将不会提供无参数的构造器选项C正确。

13、【单选题】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正确

14、【单选题】下列接口和类的定义正确的是( )。A.

public interface A{int i = 10;public void funA();}public interface B{int j = 10;public void funB();}public interface C implements A,B{} 复制代码

B.

public interface A{int i = 10;public void funA();}public interface B{int j = 10;public void funB();}public interface C extends A,B{}复制代码

C.

public interface A{int i = 10;public void funA();}public interface B{int j = 10;public void funB();}public class C extends A,B{} 复制代码

D.

public interface A{int i = 10;public void funA();}public interface B{int j = 10;public void funB();}public class C implements A implements B{} 复制代码

【正确答案】B【答案解析】本题考查接口的继承。选项A,错误,接口之间只有继承,没有实现选项B,正确,java中,接口之间可以多重继承选项C,错误,类与接口只有实现,没有继承选项D,错误,一个类可以实现多个接口,但语法应该是class c implements A,B{…}

15、【单选题】System.out.println(3+4+“bobo”+3+4);的打印结果:( )A.34bobo34B.7bobo7C.7bobo34D.34bobo7【正确答案】C【答案解析】本题考查程序的执行顺序。输出语句中,先执行3+4,结果是7,再执行7+“bobo”,结果是7bobo再+3,结果是7bobo3,在加4,结果是7bobo34选项C正确

16、【单选题】下列程序运行结果是( )。

public class Book{private String name;private double price;public Book(){ this.name = "三国演义";this.price = 70.5;}public Book(String name){this.name = name;}public Book(String name,double price){this(name);this.price = price;}public static void main(String[] args){Book book = new Book("水浒传",60.5);System.out.println(book.name);System.out.println(book.price);}}复制代码

A.水浒传60.5B.水浒传70.5C.三国演义60.5D.三国演义70.5【正确答案】A【答案解析】本题目考查this关键字在构造方法中的使用程序执行流程分析如下:main()方法中使用两个参数的构造方法创建对象book,在构造方法中又调用了其他构造方法,根据方法调用的内存模型分析出,构造方法Book(String,double)中,调用了Book(String),执行Book(name),此时name=“水浒传”,再继续执行Book(String,double),此时price=60.5根据以上分析选项A正确。

17、【单选题】下列数组对象创建语句中,错误的是( )。A.char[] arr = new char[]{};B.char[] arr = new char[];C.char[] arr = {};D.char[][] arr = new char[2][];【正确答案】B【答案解析】该题目考查如何创建一个数组对象创建数组对象可以有以下方式char [] arr = new char[3];char [] arr = new char[]{};char [] arr = {};char[][] arr = new char[2][];选项B创建数组没有指定长度,不合法,选择B

18、【单选题】score是一个整数数组,有五个元素,已经正确初始化并赋值,仔细阅读下面代码,程序运行结果是( )。

int temp = score[0];for (int index = 1;index < 5;index++) { if (score[index] < temp) { temp = score[index]; } }复制代码

A.求最大数B.求最小数C.找到数组最后一个元素D.编译出错【正确答案】B【答案解析】本题考查对数组元素遍历的操作循环体中,依次访问数组中第一个元素之后的每个元素,并与第一个元素比较如果小于第一个元素,将该元素赋值给变量temp,最后temp的值为数组中的最小元素结果为选项B,求最小数。

19、【单选题】

int x = 10;x = x++ +10;System.out.println(x);复制代码

程序会输出( )。A.11B.10C.21D.20【正确答案】D【答案解析】本题考查后++程序的执行顺序代码x = x++ + 10;执行顺序如下1、先执行x+10,结果为202、再执行x++,x值为113、将第一步结果赋值给x,x=20;选项D正确

20、【单选题】关键字abstract可以和下列( )关键字一起使用A.finalB.privateC.publicD.static【正确答案】C【答案解析】本题考查abstract关键字选项A错误,抽象方法必须被覆盖 ,而Final后面的方法无法被覆盖选项B错误,抽象方法必须被覆盖,私有的方法无法被覆盖 因为子类不可见选项C正确。选项D错误,静态可以直接被类名调用,调用抽象方法就没什么意义

21、【单选题】下列()选项添加到空白处,可以输出乘法表的语句。

for(int i=1;i

相关推荐: