计算机二级考试《java》试题及答案

2021-04-12 试题

  2017下半年计算机二级考试将于9月23日-26日举行,下面是小编为大家整理的计算机二级考试《java》试题及答案,欢迎参考~

计算机二级考试《java》试题及答案

  计算机二级考试《java》试题及答案

  一、判断题

  1. Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。 (√ )

  2. 在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。( × )

  3. 所谓抽象类就是包含有抽象方法的类。( ×)

  4. Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出System.err。(√)

  5. 如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的。( ×)

  6. 当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。(√ )

  7. 用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串。( × )

  8. 一个容器中可以混合使用多种布局策略。(×)

  9. Java中,并非每个事件类都只对应一个事件。(√ )

  10. Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。(√)

  11. Java Applet是由独立的解释器程序来运行的。(×)

  12. Java的字符类型采用的是ASCII编码。( × )

  13. Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关。 (√)

  14. System类不能实例化,即不能创建System类的对象。(×)

  15. 用户自定义的图形界面元素也可以响应用户的动作,具有交互功能。 (√ )

  二、填空题

  1java源程序编译命令是 (javac)

  2 java 应用程序中有一个main()方法,它前面有三个修饰符是 ( public , static , void )

  3 java语言数据类型可分为两大类,一类称为 ( 基本数据类型 ) ,另一类称为 ( 引用数据类型 )

  4 在转向语句中, ( continue ) 语句使得程序结束本次循环,回到循环的'条件测试部分继续执行。

  5设x为float型变量, y为 double型变量, a为 int型变量,已知 x=2.5f, a=7 ,y=4.22 则表达式x+a%3*(int)x%(int)y的值为 ( 4.5 )

  6设x为float型变量, y为 double型变量, a为 int型变量,b 为long 型变量,c为char 型,则表达式x+y*a/x+b/y+c 的值为( double ) 类型 7设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是 ( 120 )

  for ( int i = 0 i < MyIntArray.length i + + ) if ( i % 2 = = 1 ) s += MyIntArray[i] System.out.println( s )

  for ( int i = 0 i < MyIntArray.length i + + ) if ( i % 2 = = 1 ) s += MyIntArray[i] System.out.println( s )

  三、选择题

  1.在浏览器中执行applet 程序,以下选项中的哪个方法将被最后执行( C )。

  A、init(  )

  B、start(  )

  C、destroy(  )

  D、stop(  )

  2. Java application中的主类需包含main方法,main方法的返回类型是什么?( D )

  A、int

  B、float

  C、double

  D、void

  3.设有下面两个类的定义:

  class Person {

  class Student extends Person {

  {

  long id; // 身份证号

  int score; // 入学总分 String name; // 姓名

  int getScore(  ){

  }

  return score; }

  }

  则类Person和类Student的关系是( B )。

  A、包含关系

  B、继承关系

  C、关联关系

  D、上述类定义有语法错误

  4.在编写Java Applet程序时,需要在程序的开头写上( B )语句。

  A、import java.awt.*

  B、import java.applet.*

  C、import java.io.*

  D、import java.awt.event.*

  5.容器Panel和Applet缺省使用的布局编辑策略是( A )

  A、FlowLayout

  B、BorderLayout

  C、GridLayout

  D、CardLayout

  6.有以下程序片段,下列哪个选项不能插入到行1。( A ) 1. 2.public class A{ 3.//do sth 4. }

  A、public class MainClass{ }

  B、package mine;

  C、class ANotherClass{ }

  D、import java.util.*;

  7.在使用interface声明一个接口时,只可以使用( D )修饰符修饰该接口。

  A、private

  B、protected

  C、private protected

  D、public

  8.以下哪个不是Java的关键字?( A )

  A、FALSE

  B、const

  C、this

  D、void

  9.有程序如下,关于程序的描述哪个是正确的?( C )

  public class Person{

  static int arr[] = new int[5];

  public static void main(String a[])

  { System.out.println(arr[0]); } }

  A、编译将产生错误

  B、编译时正确,但运行时将产生错误

  C、正确,输出0

  D、正确,输出 null

  10.以下关于构造函数的描述错误的是( A )。

  A、构造函数的返回类型只能是void型。

  B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。

  C、构造函数的主要作用是完成对类的对象的初始化工作。

  D、一般在创建新对象时,系统会自动调用构造函数。

  11.假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( C)

  class A { int i;

  static String s; void method1(  ) { }

  static void method2(  ) { } }

  A、System.out.println(a.i);

  B、a.method1(  );

  C、A.method1(  );

  D、A.method2(  )

  12.有程序片段如下,以下哪个表示式的结果为true?( B )

  Float s=new Float(0.1f);

  Float t=new Float(0.1f);

  Double u=new Double(0.1);

  A、s==t

  B、s.equals(t)

  C、u.equals(s)

  D、t.equals(u)


  13.paint(  )方法使用哪种类型的参数? ( A )

  A、Graphics

  B、Graphics2D

  C、String

  D、Color

  14.下面哪个方法与applet的显示无关?( A )

  A、draw(  )

  B、 update(  )

  C、repaint(  )

  D、paint(  )

  15.下面哪个函数是public void aMethod(  ){...}的重载函数?( D )

  A、void aMethod( ){...}

  B、public int aMethod(  ){...}

  C、public void aMethod ( ){...}

  D、public int aMethod ( int m){...}

  16 下列不可作为java语言标识符的是( D )

  A a1

  B $1

  C _1

  D 11

  17 有一段java 应用程序 ,它的主类名是a1,那么保存它的源文件名可以是(A)

  A a1.java

  B a1.class

  C a1

  D都对

  18 下面说法正确的是(C)

  A java Applet 程序必须在浏览器中执行

  B java 应用程序必须在浏览器里执行

  C java Applet 程序不一定在浏览器中执行

  D java 应用程序可以在浏览器中执行

  19 在浏览器中执行applet 程序的四个方法的最先执行的是(A)

  A init(  )

  B start(  )

  C destroy(  )

  D stop(  )

  20 整型数据类型中,需要内存空间最少的是(D)

  A short

  B long

  C int

  D byte

  21 java 类可以作为(C)

  A 类型定义机制

  B 数据封装机制

  C 类型定义机制和数据封装机制

  D 上述都不对

  22 在创建对象时,必须(C )

  A 先声明对象,然后才能使用对象

  B 先声明对象,为对象分配内存空间,然后才能使用对象

  C 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象

  D 上述说法都对

  23 在调用方法时,若要使方法改变实参的值,可以(D)

  A 用基本数据类型作为参数

  B 用对象作为参数

  C (A)和(B)都对

  D (A)和(B)都不对

  24 JAVA 中( C )

  A 一个子类可以有多个父类,一个父类也可以有多个子类

  B 一个子类可以有多个父类,但一个父类只可以有一个子类

  C 一个子类可以有一个父类,但一个父类可以有多个子类

  D 上述说法都不对

  25 paint()方法使用哪种类型的参数? ( A )

  A、Graphics

  B、Graphics2D

  C、String

  D、Color

  26在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种特性称为 ( C )

  A、隐藏

  B、覆盖

  C、重载

  D、Java不支持此特性

  27类Test1、Test2定义如下:

  1. public class Test1

  2.{ public float aMethod(float a,float b) throws

  3. IOException { }

  4. }

  5. public class Test2 extends Test1{ 6. 7.}

  将以下哪种方法插入行4是不合法的。 ( A )

  A、 float aMethod(float a,float b){ }

  B、 public int aMethod(int a,int b)throws Exception{ }

  C、 public float aMethod(float p,float q){ }

  D、 public int aMethod(int a,int b)throws IOException{ }

  28以下哪个接口的定义是正确的? (D )

  A、 interface B

  { void print() { } }

  B、 abstract interface B

  { void print() }

  C、 abstract interface B extends A1,A2 //A1、A2为已定义的接口

  { abstract void print(){ };}

  D、 interface B { void print();}

  29 下列哪些语句关于Java内存回收的说明是正确的? ( B )

  A、程序员必须创建一个线程来释放内存

  B、内存回收程序负责释放无用内存

  C、内存回收程序允许程序员直接释放内存

  D、内存回收程序可以在指定的时间释放内存对象

  30 A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:

  1. A a0=new A();

  2. A a1 =new B();

  3. A a2=new C();

  问以下哪个说法是正确的? ( D)

  A、只有第1行能通过编译

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

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

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

  四、程序阅读

  1.写出以下程序的运行结果。

  class First {

  First(  ) {

  System.out.println ("in First"); } }

  public class Second extends First { Second(  ) {

  System.out.println("in Second"); } public static void main(String[] args) { Second mine= new Second(  ); } }

  程序运行的结果:

  in First in Second

  2.解释程序中语句的含义

  纯文本文件f1.txt中的内容是 abcd

  下面的程序将f1.txt文件中的内容写到f2.txt文件中和屏幕上 import java.io.*;

  public class filecopy {

  public static void main(String[] args) { try {

  StringBuffer str=new StringBuffer(  );

  FileInputStream fin=new FileInputStream("f1.txt");

  意义

  FileOutputStream fout=new FileOutputStream("f2.txt");

  意义

  int c;

  while((c=fin.read(  ))!=-1) {

  fout.write(c); 意义

  str.append((char)c); 意义

  }

  fin.close(  ); fout.close(  );

  String str2=str.toString(  );

  System.out.println(str2); 显示的结果是

  }catch(Exception c) {

  System.out.println(c); } } }

  实例化输入流对象,指定输入流来源文件为f1.txt 实例化输出流对象,指定输出流目标文件为f2.txt 将C写入到输出流对象中

  将整数C转化为字符,并添加到字符串str的尾部 abcd