龙空技术网

测试工程师--java基础测试卷及答案

五只柚子 188

前言:

今天朋友们对“java编程技术基础测试题”大致比较注重,看官们都需要知道一些“java编程技术基础测试题”的相关文章。那么小编也在网上收集了一些关于“java编程技术基础测试题””的相关文章,希望朋友们能喜欢,你们快快来了解一下吧!

测试班Java结课考试

单选题 共40题,每题1.5分,选漏不得分

1. 下列程序的运行结果是(B )。public class sun

{public static void main(String[] args)

{int x = 4, y = 0;if (Math.pow(x, 2) == 16)

{y = x;}if (Math.pow(x, 2) < 15)

{y = 1 / x;}if (Math.pow(x, 2) > 15)

{y = (int) Math.pow(x, 2) + 1;}

System.out.println(y);}}

A | 4

B | 17

C | 18

D | 25

Math.pow(x,y) x的y次方

2. 要正确输出集合strs中的各元素,如下Java代码横线处应填写(A)。

List<String> strs = new ArrayList<String>(); strs.add("出租车"); strs.add("汽车"); strs.add("地铁"); Iterator<String> itor = strs.iterator(); while( ){ System.out.println( ); }

A | itor.hasNext()、itor.next()

B | itor.next()、itor.hasNext()

C | itor.hasNext()、itor

D | itor.next()、itor

List集合,有序,可以重复

3.ArrayList nums = new ArrayList(); nums.add("A"); nums.add("C"); nums.add("B"); for (String tmp : nums) { System.out.println(tmp); } 上述Java代码的结果是(A)。

A | ACB

B | ABC

C | CBA

D | CAB

4.在Java中,下列选项中关于封装说法错误的是(D)。

A | 封装就是隐藏类的实现细节,提供程序规定的方法来访问数据,还可以在这些方法中控制语句,限制不合理操作

B | 封装的过程就是为属性或者方法设置权限修饰符,并可以为每个属性创建一对getter()和setter()方法

C | 封装时会用到多个权限控制符来修饰成员变量和方法

D | 在封装时,对属性的赋值语句是放在getter()方法中 setter()

5.构造函数什么时候被调用(A)。

A | 创建对象时

B | 类定义时

C | 使用对象的方法时

D | 使用对象的属性时

6.在Java中,下面对于构造函数的描述正确的是(D)。

A | 类必须显示定义构造函数

B | 构造函数的返回类型是void

C | 构造函数和类有相同的名称,并且不带有任何参数

D | 一个类可以定义多个构造函数

7.在如下所示的Java代码中,this关键字是指(B)。 public class Person{ private String name; private String age; public void setName(String name){ this.name = name; } }

A | Person类

B | Person类的内部指代自身的引用

C | setName()方法的参数neme

D | setName()方法

8.关键字(B)是Java提供的一个关键字,它是直接父类对象的默认引用。

A | static

B | super

C | final

D | overrid

9.A派生出子类B,B派生出子类C,并且在Java源代码中有如下声明: 1. A a0=new A(); 2. A a1=new B(); 3. A a2=new C();问以下哪些说法是正确的(D)。

A | 只有第一行能通过编译

B | 第1、2行能通过编译,但第3行编译出错误

C | 第1、2、3行能通过编译,但第2、3行运行时出错

D | 第1行、第2行和第3行的声明都是正确的

10.如下程序,请选择正确的描述(D)。List lst = new LinkedList<String>(); lst.add("赤"); lst.add("橙"); lst.add("黄"); lst.add("绿"); lst.remove(); for(int i=0;i<lst.size();i++){ System.out.println(lst.get(i)); }

A | A.可以正常运行,显示“橙黄绿”

B | 不能编译通过,List lst = new LinkedList<String>();出错

C | .可以正常运行,显示“赤橙黄”

D | 不能编译通过,list.remove()出错

remove(数组的下标);

11.关于泛型集合,下列说法错误的是(D)。

A | 可以这样建立泛型集合对象 List<String> ls = new LinkedList<String>()

B | HashMap、ArrayList、LinkedList、Iterator都是泛型集合

C | .泛型是为了能够进行类型检查的一种技术,应用在集合上也是这个原因

D | D.编写程序时,如果涉及到集合,尽可能不要使用泛型集合

12.下列关于方法重载的说法,不正确的是(C)。

A | 重载必须方法名相同

B | 重载必须参数列表不同

C | 重载必须返回类型不同

D | 重载方法的访问修饰符可以不同

13.在异常处理中,如释放资源、关闭文件、关闭数据库等由(C)来完成。

A | try子句

B | catch子句

C | finally子句

D | throw子句

14.给出一段程序,试判断哪个是正确的结果(D)。 public class myprogram{ public static void main (String args[]){ try{ System.out.print(“Hello world ”); } finally{ System.out.println(“Finally executing”); } } }

A | 无法编译,因为没有指定异常

B | 无法编译,因为没有catch子句

C | Hello world

D | Hello world Finally executing

15.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的(B)。

A | ArrayList myList=new Object()

B | List myList=new ArrayList()

C | ArrayList myList=new List()

D | List myList=new List()

16.若已定义 byte[ ] x= {11,22,33,-66} ; 其中0≤k≤3,则对x数组元素错误的引用是( C)。

A | x[5-3]

B | x[k]

C | x[k+5]

D | x[0]

17.关于throw和throws的描述错误的有(B)。

A | throw抛出的是异常实例对象

B | throw一次能抛出多个异常实例对象

C | throws用来声明方法可能抛出的异常序列

D | throws在定义方法时使用,后面跟着异常类

18.break语句(C )。

A | 只中断最内层的循环

B | 只中断最外层的循环

C | 借助于标号,可以实现任何外层循环中断

D | 只中断某一层的循环

19.Java中,List接口的特点是(C)。

A | 不允许重复元素,元素无顺序

B | 不允许重复元素,元素有顺序

C | 允许重复元素,元素有顺序

D | 允许重复元素,元素无顺序

20.下面哪个是Java语言中正确的标识符(D)。数字、字母、下划线、$, 不能关键字

A | 3com

B | import

C | this

D | that

21.以下对抽象类的描述正确的是(C)。

A | 抽象类没有构造方法 接口不能有构造方法:只能有抽象方法、默认方法default、类方法static

B | 抽象类必须提供抽象方法

C | 有抽象方法的类一定是抽象类

D | 抽象类可以通过new关键字直接实例化

22.以下程序的运行结果是(D )。

class Person{public Person(){System.out.println(“this is a Person”);}}

public class Teacher extends Person{

private String name=”tom”;

public Teacher(){

System.out.println(“this is a teacher”);super();}

public static void main(String[] args)

{Teacher teacher = new Teacher();System.out.println(this.name);}}

A | this is a Person this is a teacher tom

B | this is a teacher this is a Person tom

C | 运行出错

D | 编译有两处错误

23.如何把 7.25 四舍五入为最接近的整数(D)。floor 不大于该数的最大值 ceil 不小于该数的最小值

A | round(7.25)

B | rnd(7.25)

C | Math.rnd(7.25)

D | Math.round(7.25)

24.在java的一个异常处理中,哪个语句块可以有多个 ( A)。

A | catch

B | finally

C | try

D | throws

25.下面哪条语句定义了5个元素的数组()A。

A | int [] a={22,23,24,25,12};

B | int a []=new int(5);

C | int [5] array;

D | int [] arr;

26.在java中,如下代码段的输出结果为( A)。public class Test{public static void main(String args[]){int x=3,y=4;x=(y < x++)?1:0;System.out.println(x);}}

A | 0

B | 1

C | 2

D | 3

27.关于下段代码,编译运行后的输出结果是(D )。for(int i=0;i < 6;i++){int k=++i;while(k < 5){System.out.println(i);break;}} i=0 k=1 i=1

I=2 k=3 i=3

I=4 k=5

A | 024

B | 02

C | 123

D | 13

28.关于下端错误代码,错误出现在哪一行(D )。public classTest{int m,n;public Test(){}

public Test(int a){m=a;}

public static void main(String args[])

{Test t1,t2;int j,k;j=0; k=0;t1=new Test();t2=new Test(j,k);}}

A | public Test(){}

B | public Test(int a){m=a;}

C | t1=new Test();

D | t2=new Test(j,k);

29.执行以下程序会产生什么异常( C )。public class Test {public static void main(String[] args) {int d = 101;int b = 220;long a = 321;System.out.println((a - b) / (a - b - d));}}

A | ArrayIndexOutOfBoundsException

B | NumberFormatException

C | ArithmeticException

D | EOFException

30.访问修饰符作用范围由大到小是(D)。

A | private-default-protected-public

B | public-default-protected-private

C | private-protected-default-public

D | public-protected-default-private

31.以下(D)添加到ComputerBook中不会出错 class Book{ protected int getPrice(){ return 30; } } public class ComputerBook extends Book{ }

A | protected float getPrice(){}

B | protected int getPrice(int page){}

C | int getPrice(){}

D | public int getPrice(){return 10;}

32.多态的表现形式有(A)。

A | 重写

B | 抽象

C | 继承

D | 封装

33.分析下面这段Java代码,它的运行结果是(C )。Import java.io.*;Public class B{Public static void main(string [] args){int i=12;System.out.println(i1+=i2-=i3*=i4);}} i1=i2=i3=i4=12

i3=i3*i4=12*12=144

i2=i2-i3=12-144=-132

i1=i1+i2=12+(-132)=-120

A | 100

B | 0

C | -120

D | 程序无法编译

34.在Java中,关于HashMap类的描述,以下错误的是(B)。

A | HashMap使用键/值得形式保存数据

B | HashMap 能够保证其中元素的顺序

C | HashMap允许将null用作键

D | HashMap允许将null用作值 TreeMap 键不能为null

35.以下程序运行结果是(D)。public class Test {public int div(int a, int b)

{try {return a / b;}

catch(Exception e){System.out.println(“Exception”);}(exception所有异常的父类放到最后边)

catch(NullPointerException e){System.out.println(“ArithmeticException”);}

catch (ArithmeticException e) {System.out.println(“ArithmeticException”);}

finally {System.out.println(“finally”);}return 0;}public static void main(String[] args) {Test demo = new Test();System.out.println(“商是:” + demo.div(9, 0));}}

A | Exception finally 商是:0

B | ArithmeticException finally 商是:0

C | finally商是:0

D | 编译报错

36.下面代码运行结果是(B)public class Demo{public int add(int a,int b)

{try{return a+b;}

catch(Exception e){System.out.println(“catch 语句块”);}

finally{System.out.println(“finally 语句块”);}return 0;}

public static void main(String[] args){Demo demo = new Demo();System.out.println(“和是:”+demo.add(9,34));}}

A | 编译异常

B | finally语句块 和是:43

C | 和是:43 finally语句块

D | catch语句块 和是:43

37.以下对异常的描述不正确的有(C)。

A | 异常分为Error和Exception

B | Throwable是所有异常类的父类

C | Exception是所有异常类父类

D | Exception包括RuntimeException和RuntimeException之外的异常

38.以下程序运行结果是( A)。public class Test extends Father{private String name=”test”;public static void main(String[] args){Test test = new Test();System.out.println(test.getName());}}class Father{private String name=”father”;public String getName() {return name;}}

A | father

B | test

C | 编译出错

D | 运行出错,无输出

39.以下描述正确的有(B)。

A | 方法的重写应用在一个类的内部

B | 方法的重载与返回值类型无关

C | 构造方法不能重载

D | 构造方法可以重写

40.下列关于接口和抽象类的说法不正确的是( A)。

A | 接口也有构造方法

B | 实现接口时,需对接口中的所有方法都要实现

C | 抽象类也有构造方法

D | 抽象类可以派生出子类

多选题 共20题,每题2分,选漏不得分

41.以下关于final关键字说法错误的是(AC)。

A | final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性

B | final修饰的类肯定不能被继承

C | final修饰的方法不能被重载 重写

D | final修饰的变量不允许被再次赋值

42.关于以下访问控制符描述正确的是:ABD

A | java中有4种控制级别:private 、public、protected和缺省权限

B | private权限的的成员只能被同一个类内成员访问

C | private权限的的成员只能被同一个包内成员访问

D | 缺省权限是可以被同一个包内的所有成员访问

43.以下属于非检查型异常的类有: ABCD

A | 数组角标越界(ArrayIndexOutOfBoundsException)

B | 空指针异常(NullPointerException)

C | 类转换异常(ClassCastException)

D | 数字格式化异常(NumberFormatException)

44.关于可变参数描述错误的是: AD

A | 可变参数可以放在参数列表的任何位置

B | 可变参数相当于是一个数组,我们也可以直接把数组作为可变参数

C | 可变参数指的是参数的个数可变

D | 可变参数是指参数类型和个数都可变

45.关于异常以下说法错误的有: AD

A | 程序中抛出异常时,只能抛出自己定义的异常对象

B | 一个异常处理中finally语句块只能有一个或者可以没有

C | 异常类对象代表当前出现的一个具体异常

D | 如果异常发生时,没有捕获异常的代码,程序会正常执行

46.以下说法正确的有:ABCD

A | 所有的类都继承于Object类 java.Lang

B | 子类继承了父类的所有属性和方法,并且子类也可以定义自己的属性和方法

C | 父类可以通过“封装”的思想隐藏某些数据,只对子类提供可访问的属性和方法

D | 继承可以减少冗余代码,使得维护、更新代码更加容易

47.JAVA的垃圾回收机制描述正确的是:ABD

A | 垃圾回收机制就是清理不用的对象,释放内存的

B | java程序的内存分配和回收都是有JRE在后台自动进行的

C | java内存空间需要手动释放

D | 垃圾回收一般都是在CPU空闲或内存不足的时候自动进行的

48.关于JDK描述正确的是:ABCD

A | JDK包中的命令和工具都放在bin目录下

B | lib是类库所在目录

C | javac是Java语言编译器

D | java字节码编译器

49.关于以下代码,描述错误的有:public class Test1 { private int sum=0; AD

public int fun(int a,int b) { return a+b; }

private String fun(String a,String b) { return a+b; } }

public class Test2 { private int sum=0;

public int fun(int a,int b) { return a+b; }

public int fun(int a,int b,int c) { return a+b+c } }

A | Test1类中没有对fun()方法进行重载,因为方法的返回值类型不同

B | Test1类中对fun()方法进行了重载,参数类型不同

C | Test2类中对fun()方法进行了重载,参数个数不同

D | Test2类中的public int fun(int a,int b,int c)是对Test1类中public int fun(int a,int b)方法进行了重载

50.关于数组作为方法的参数时,向方法传递的是:AB

A | 数组的引用

B | 数组的地址

C | 数组自身

D | 数组的元素

51.横线处可填写的语句有:public class Test { public int a; private int b; protected int c; int d; public void fun(){ int x =_______ ; }}ABCD

A | this.a

B | this.b

C | this.c

D | this.d

52.下列关于Object类说法正确的是()ABCD。

A | Object类是所有Java类的祖先

B | Object类有一个默认构造方法public Object(),在构造子类实例时,都会先调用这个默认构造方法

C | 可以使用类型为Object的变量指向任何类型的对象

D | Object类的变量只能用作各种值的通用持有者

53.Java集合框架中,以下关于存储数据特点正确的是()。AC

A | Collection接口存储一组不唯一、无序的对象

B | Set接口继承自Collection接口,存储不唯一、有序的对象 唯一、无序

C | List接口继承自Collection接口,存储不唯一、有序的对象

D | Map接口使用键-值得方式存储数据,其中value不要求有序,不允许重复 可以重复

54.关于泛型以下描述正确的有:public class Students<T extends Person> AC

A | Students类是泛型类

B | Person类是泛型类

C | extends表示students类的类型参数的上界是Person类或Person类的子类

D | super用来声明参数的上界,extends用来声明参数的下界

55.关于异常以下说法错误的有: AD

A | 程序中抛出异常时,只能抛出自己定义的异常对象

B | 一个异常处理中finally语句块只能有一个或者可以没有

C | 异常类对象代表当前出现的一个具体异常

D | 如果异常发生时,没有捕获异常的代码,程序会正常执行

56.java程序可以在命令行运行也可以在java开发环境运行,关于在命令行运行描述错误的是:BD

A | java的字节码文件就是扩展名为.class的文件

B | 在命令行中使用java命令对.java源文件进行编译

C | 在命令行中使用javac命令对.java源文件进行编译

D | 在命令行中使用javac命令对java的字节码文件进行编译的

57.关于集合以下描述正确的有:ABC

A | Map集合是无序的映射集合

B | Set集合中数据不允许重复,Map集合中key键也不可重复

C | 可以通过key来获取Map集合中的数据项

D | 可以通过value来获取Map集合中的数据项

58.关于foreach描述正确的是:BC

A | 对于数组来说,使用 foreach语句时,需要先获得数组长度

B | foreach语句可以用来遍历数组或集合中的元素

C | foreach和iteration都可以用来遍历集合

D | foreach的语法是:foreach(数据类型 变量名:数组名)

59.关于对象数组和数组的描述正确的是:AC

A | 数组中既可存储基本数据类型的元素,也可以存储对象

B | 数组中元素存储在栈中 基本类型的数据存储在栈中,引用类型的数据存在堆中,栈中存的是引用类型的地址

C | 二维数组中的元素为一维数组

D | 定义和初始化对象数组时,无需指明数组长度

60.关于继承,以下说法正确的有:ACD

A | 子类是对父类的一个改进和扩充,所以一般子类在功能上较父类更强大

B | 子类可以重写父类中的所有方法

C | 通过父类的引用只能调用子类重写的方法

D | 定义一个父类类型的引用指向一个子类的对象既可以使用子类强大的功能,又可以抽取父类的共性

标签: #java编程技术基础测试题