- 相关推荐
计算机二级Java备考冲刺试题及答案
计算机二级考试难度不少,因此考生们要加强练习,下面是小编为大家整理的计算机二级Java备考冲刺试题及答案,欢迎参考~
计算机二级Java备考冲刺试题及答案 1
1、以下 不是Java中有效的关键字。
A、const
B、NULL
C、false
D、this
本题考查的是Java的关键字。
Java中常量null,false,true,new,this,const,break都是小写。
故本题答案为B。
2、关于被私有访问控制符private修饰的成员变量,以下说法正确的是 。
A、可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B、可以被两种类访问和引用:该类本身、该类的所有子类
C、只能被该类自身所访问和修改
D、只能被同一个包中的类访问
本题考查的是成员变量的修饰符。
private修饰的变量说明变量为私有访问。只能被该类自己访问或调用,是对成员变量的高级保护。
故本题答案为C。
3、当检索一个压缩文件时,首先要建立压缩文件输入流对象。该对象 。
A、以选中的压缩文件为参数
B、以FileInputStream对象为参数
C、以InputStreamReader对象为参数
D、以BufferedReader对象为参数
本题考查的是压缩文件。
在java.io包中提供了对压缩文件进行操作的能力。它是通过压缩文件输入流与压缩文件输出流来实现的,其分别继承自InflaterInputStream与DeflaterOutputStream。在创建压缩文件输入流时,其初始化参数是一个FileInputStream类的实例。
故本题答案为B。
4、计算机中的流是______ 。
A、流动的字节
B、流动的对象
C、流动的文件
D、流动的数据缓冲区
本题考查的是流的概念。
流,最早从C语言中引入的。其可以看成是一个流动的数据缓冲区。数据从数据源方向经过缓冲区流向数据的目的地。在传送的过程中,其传送方式是串行的。在Java中的java.io包中定义了Java中常见流的接口与类。其中包括两个最基本的流的.抽象类,它们分别是OutputStream与InputStream。其余的流都分别从这两个基本类中继承而来。
故本题答案为D。
1、结构化程序设计主要强调的是______。
A、程序的规模
B、程序的易读性
C、程序的执行效率
D、程序的可移植性
结构化程序设计主要强调的是结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以保证程序的正确性。
本题答案为B。
2、数据库设计包括两个方面的设计内容,它们是______。
A、概念设计和逻辑设计
B、模式设计和内模式设计
C、内模式设计和物理设计
D、结构特性设计和行为特性设计
数据库设计可分为概念设计与逻辑设计。
数据库概念设计的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。
数据库逻辑设计的主要工作是将ER图转换为指定的RDBMS中的关系模型。
本题答案是A。
3、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为______。
A、static void method( )
B、public void method( )
C、final void method( )
D、abstract void method( )
本题考查的是修饰符的含义。
1、public修饰的方法可被其它类访问或引用。
2、abstract修饰的方法是抽象方法,抽象方法没有方法体,要使用抽象方法,必须先实现此抽象方法。
3、final修饰的方法不能被继承。
4、static修饰的方法为静态方法,静态方法不需要类的实例化就可以被类直接调用。
故要使得类名AB可以直接调用method()方法,则必须在method()前用static来修饰。
故本题答案为A。
5、outer: for(int i=0;i<3; i++)
inner: for(int j=0;j<2;j++)
{
if(j==1) continue outer;
System.out.println(j+ "and "+i+";");
}
以上代码输出是 。
A、0 and 0;0 and 1;0 and 2;
B、0 and 0;1 and 0;2 and 0;
C、1 and 0;1 and 1;1 and 2;
D、2 and 0;2 and 1;2 and 2;
本题考查的是多重循环。
首先介绍一下continue语句的功能:continue语句是跳过循环体中下面尚未执行的语句,回到循环体的开始,继续下一轮的循环。
本题程序运行过程如下:
i=0:
j=0 条件j==1不成立,输出j和i,即0 and 0;
j=1 条件j==1成立,执行continue,跳过System.out.println(j+ "and "+i+";");执行下一轮循环j=2;
j=2 条件j<2不满足,退出内层循环,继续外层循环。
i=1:
j=0 条件j==1不成立,输出j和i,即0 and 1;
j=1 条件j==1成立,执行continue,跳过System.out.println(j+ "and "+i+";");执行下一轮循环j=2;
j=2 条件j<2不满足,退出内层循环,继续外层循环。
i=2:
j=0 条件j==1不成立,输出j和i,即0 and 2;
j=1 条件j==1成立,执行continue,跳过System.out.println(j+ "and "+i+";");执行下一轮循环j=2;
j=2 条件j<2不满足,退出内层循环,继续外层循环。
i=3:条件i<3不满足,结束。
故本题答案为A。
编程题
1、 编写一个Java Application 程序App.java,main程序输入10个整数给数组,通过函数getMinAndMax(int a[])得到这10个整数的最大值和最小值并输出结果。
class App {
static void getMinAndMax(int a[]) {
int min,max;
min = max = a[0];
for(int i=1;i if(a[i]>max)
max=a[i];
if(a[i] min=a[i]; }
System.out.println(“Array’Max Value:”+max);
System.out.println(“Array’Min Value:”+min);
}
public static void main(String[] args) {
int arr[] = {4,6,72,9,14,3,8,23,56,32};
getMinAndMax(arr); } }
2、编写一个完整的Java Application 程序。包含接口ShapeArea, Rectangle
类,Triangle类及Test类,具体要求如下:
⑴接口ShapeArea:
double getArea( ):
求一个形状的面积
double getPerimeter ( ):
求一个形状的周长
⑵类 Rectangle:实现ShapeArea接口,并有以下属性和方法:
① 属性
width: double类型,表示矩形的长 height: double类型,表示矩形的高
② 方法
Rectangle(double w, double h):构造函数
toString( )
方法 :输出矩形的描述信息,如“width=1.0,height=2.0, perimeter=6.0, area=2.0”
⑶类Triangle:实现ShapeArea接口,并有以下属性和方法:
① 属性
x,y,z: double型,表示三角形的三条边
s: 周长的1/2(注:求三角形面积公式为))( )((zsysxss,s=(x+y+z)/2 ,开方可用Math.sqrt(double)方法)
② 方法
Triangle(double x, double y, double z):
构造函数,给三条边和s赋初值。
toString( ):
输出矩形的描述信息,如“three sides:3.0,4.0,5.0,perimeter=12.0,area=6.0”
⑷Test类作为主类要完成测试功能
① 生成Rectangle对象
②
调用对象的toString方法,输出对象的描述信息
interface ShapeArea { double getArea( );
double getPerimeter( );
}
class Rectangle implements ShapeArea { double width,height;
Rectangle(double w,double h) {ko width =w;
height=h;
}
public void toString( )
{
System.out.println("width="+width+",height="+height+", perimeter="+ getPerimeter( )+", area="+ getArea( ));
}
public double getArea( )
{ return width*height;
}
public double getPerimeter( )
{ return 2*(width+height);
} }
class Triangle implements ShapeArea { double x,y,z,s; Triangle(double x, double y, double z) { this.x =x; this.y=y;
this.z=z; s = (x+y+z)/2; }
public void toString( )
{
System.out.println("Three Sides:"+x+","+y+","+z+",Perimeter="+ getPerimeter( )+", area="+ getArea( ));
}
public double getArea( )
{
return Math.sqrt(s*(s-x)*(s-y)*(s-z));
}
public double getPerimeter( )
{ return x+y+z;
} }
class test { public static void main(String[] args) { Rectangle rct = new Rectangle(4,5);
rct.to_String( );
} }
1、下列叙述中,错误的是______。
A、Applet的默认布局管理器是FlowLayout
B、JApplet中增加构件是加到JApplet的内容面板上,不是直接加到JApplet中
C、JApplet的内容面板的默认布局管理器是BorderLayout
D、JApplet的内容面板的默认布局管理器是FlowLayout
本题考的是布局管理器。
向JApplet中增加构件,是把构件添加到Swing Applet的内容面板中;对JApplet设置布局管理器,是对Swing Applet的内容面板进行设置,Swing Applet的内容面板的默认布局管理器是BorderLayout,所以,JApplet的内容面板的默认布局管理器是BorderLayout;而Applet的默认布局管理器是FlowLayout。
故本题答案为D
而japplet是applet的子类
2、 护本地主机,对Applet安全限制中正确的是______。
A、Applet可加载本地库或方法
B、Applet可读、写本地计算机的文件系统
C、Applet可向Applet之外的任何主机建立网络连接
D、Applet不能运行任何本地可执行程序
许多浏览器为了保护本地主机,对Applet作了如下安全限制:
1、Applet不能运行任何本地可运行程序;
2、禁止加载本地库或方法;
3、禁止读、写本地计算机的文件系统;
4、禁止向提供Applet之外的任何主机建立网络连接;
5、不能读取某些系统信息,除了Java版本号、操作系统名或版本号、文件分隔符、路径分隔符以及行分隔符之外,Applet不能获得与本地计算机有关的任何信息,如:用户名、电子邮件地址等;
6、由一个Applet弹出的窗口外观上与一个Application弹出的窗口不同,Applet弹出的窗口中将会有警告提示信息,以帮助用户区分Applet窗口与可信的Application窗口。
故本题答案为D。
3、Java对I/O访问所提供的同步处理机制是______。
A、字节流
B、过滤流
C、字符流
D、压缩文件流
本题考的是过滤流。
Java对I/O访问所提供的同步处理机制是过滤流。一般,使用一个过滤流要求首先把过滤流连接到某个I/O流上,再通过构造方法的参数去指定连接的I/O流。
故本题答案为B。
4、 Panel类的默认布局管理器是______。
A、BorderLayout
B、CardLayout
C、FlowLayout
D、GridBagLayout
本题考的是布局管理器。
FlowLayout是Panel和Applet的默认布局管理器。
故本题答案为C。
5、Java对文件类提供了许多操作方法,能获得文件对象父路径名的方法是______。
A、getAbsolutePath()
B、getParentFile()
C、getAbsoluteFile()
D、getName()
本题考的是File类提供的方法。
getAbsolutePath():得到一个文件的绝对路径名;
getParentFile():得到文件对象父路径名;
getAbsoluteFile():等价于new File(this.getAbsolutePath());
getName():得到一个不包含路径的文件名。
故本题答案为B。
1、Swing与AWT相比新增的布局管理器是______。
A、CardLayout
B、GridLayout
C、GridBagLayout
D、BoxLayout
本题考查的是布局管理器。
Swing继续沿用AWT中的布局管理器,包括FlowLayout、BorderLayout、CardLayout、GridLayout、GridBagLayout,另外Swing新增加了一个BoxLayout布局管理器。
故本题答案为D。
2、下列对Java特性的叙述中,错误的是______。
A、在编写Java子类时可以自由地增加新方法和属性
B、Java的Applet要求编程首先创建JFrame窗口
C、Java语言用解释器执行字节码
D、Java中的类一般都有自己的属性和方法
本题考查的是Applet的概念。
Applet是能够嵌入到HTML页面中,并能够在浏览器中运行的Java类,本身并不一定需要首先创建窗体,但可以使用JApple类来使用Swing构件。
Swing包中的JFrame类与创建窗口有关,是提供给java应用程序用来放置图形用户界面的一个容器。
JApplet类与JFrame一样是顶层的Swing容器。包含Swing构件的Applet必须是JApplet的子类。
故本题答案为B。
3、阅读下面求质数的程序
import java.lang.Math.*;
public class MorePrimesTest{
public static void main(String[] args){
long[] primes=new long[20];
primes[0]=2L;
primes[1]=3L;
long number=5L;
outer:
for(int count=2;count long limit=(long)Math.ceil(Math.sqrt((double)number));
for(int i=1;i if(number ______ primes[i]==0L){
continue outer;
}
}
primes[count++]=number;
}
for(int j=0;j long n=primes[j];
System.out.println(n);
}
}
}
在程序下划线处填入的正确选项是______。
A、&
B、*
C、/
D、%
本题考查的是JAVA程序结构。
所谓质数或称素数,就是一个正整数,除了本身和1以外并没有任何其他因子。任何一个整数,可以写成一串质数相乘的积。
程序中首先定义了包含有20个元素的长整型数组,为数组的第一,第二个元素赋值,并且还定义了一个长整型变量"long number=5L;",然后进入循环,该循环的作用是判断当前变量number的值是否为质数,其中Math.sqrt(double x)方法的作用是求x的平方根,而Math.ceil()方法的作用是求最小的整数但不小于本身(例如:Math.ceil(3.14)则返回4),在本次循环中,需要判断变量number与primes[i]的取余操作,如果变量number与小于自己的平方根取整且小于count的数取余数为0,则跳出循环,将number的值写入数组中,当20个元素填满后,程序依次输出数组元素。
故本题答案为D。
4、在Java中,"目录"被看作是______。
A、文件
B、流
C、数据
D、接口
本题考查的是目录的概念。
目录在Java中作为一种特殊文件,即文件名的列表,通过类File所提供的方法,可得到文件或目录的描述信息(包括名字、路径、长度、可读、可写等),也可以生成新文件、目录、修改文件和目录,查询文件属性,重命名文件或者删除文件。
故本题答案为A。
5、下列带下划线的标识符符合Java命名约定的是______。
A、package com.Bi.hr
B、public class xyz
C、int I
D、void setCustomerName()
本题考查的是Java命名约定。
包的名字应该都是由小写单词组成。它们全都是小写字母,即便中间的单词亦是如此,所以A选项错误。
类名的第一个字母一定要大写,所以B选项错误;
变量的第一个字母应该为小写,所以C选项错误;
与属性相对应的get、set方法为:set(get)+属性名,属性名第一个字母为大写,所以D选项正确。
故本题答案为D。
6、在Java语言中,被称为内存分配的运算符是______。
A、new
B、instance of
C、[ ]
D、( )
本题考查的是JAVA关键字。
Java语言中,程序为对象动态分配内存。Java中内存分配的运算符是new。
故本题答案为A。
计算机二级Java备考冲刺试题及答案 2
一、选择题
1. 下列选项中,不属于Java语言特点的是( )
A. 面向对象
B. 平台无关性
C. 安全性
D. 编译执行
答案:D。Java是解释执行的编程语言,它先将Java源程序编译成字节码文件(.class文件),然后由Java虚拟机(JVM)解释执行字节码文件,而不是编译执行。Java具有面向对象、平台无关性、安全性等特点。
2. 以下标识符中,合法的Java标识符是( )
A. 3abc
B. _abc
C. -abc
D. static
答案:B。Java标识符是以字母、美元符号($)或者下划线(_)开头,后面可以跟字母、数字、美元符号或者下划线的字符序列。A选项以数字开头不合法;C选项以减号开头不合法;D选项“static”是Java的关键字,不能作为标识符。
3. 以下数据类型中,占用内存空间最小的是( )
A. short
B. int
C. long
D. byte
答案:D。在Java中,byte占用1个字节(8位),short占用2个字节,int占用4个字节,long占用8个字节。
4. 下列关于Java数组的说法,正确的是( )
A. 数组的长度可以在运行时改变
B. 数组一旦创建,其元素的类型就不能改变
C. 可以使用new关键字创建数组,但不能直接初始化数组元素
D. 二维数组在内存中是按列存储的
答案:B。A选项,Java数组的长度在创建后不能改变;C选项,可以在创建数组的同时初始化数组元素,例如int[] arr = {1, 2, 3};;D选项,二维数组在内存中是按行存储的。
5. 在Java中,以下代码的输出结果是( )
java
public class Main {
public static void main(String[] args) {
int a = 10;
System.out.println(a++);
}
}
A. 9
B. 10
C. 11
D. 编译错误
答案:B。a++是后自增运算符,先使用a的值,然后再将a的值加1。所以先输出a的当前值10,之后a的值变为11。
6. 以下关于Java方法重载的说法,正确的是( )
A. 方法重载是指在一个类中可以定义多个同名方法,但参数列表必须不同
B. 方法重载是指在不同类中可以定义多个同名方法,参数列表可以相同
C. 方法重载的返回值类型必须不同
D. 方法重载与方法的访问修饰符有关
答案:A。方法重载是在同一个类中定义多个同名方法,但参数的个数、类型或者顺序不同。方法重载与返回值类型和访问修饰符无关。
7. 在Java中,以下接口的定义正确的是( )
java
A. interface MyInterface {
void method();
}
B. abstract interface MyInterface {
void method();
}
C. class MyInterface {
void method();
}
D. interface MyInterface {
private void method();
}
答案:A。接口的定义使用interface关键字,接口中的方法默认是public abstract的,不能使用private等访问修饰符,也不能用abstract关键字修饰接口本身。
8. 以下关于Java异常处理的说法,错误的是( )
A. try - catch块可以捕获并处理异常
B. 可以使用throws关键字在方法声明中抛出异常
C. 所有异常都必须被捕获和处理
D. 异常分为检查异常和非检查异常
答案:C。并不是所有异常都必须被捕获和处理,非检查异常(如RuntimeException及其子类)可以不进行捕获和处理,但检查异常(如IOException等)通常需要在方法中进行处理或者在方法声明中使用throws抛出。
9. 在Java中,用于读取文本文件的类是( )
A. FileInputStream
B. FileReader
C. BufferedReader
D. InputStreamReader
答案:B。FileReader类用于读取字符文件,FileInputStream用于读取字节文件,BufferedReader通常用于缓冲字符输入流以提高读取效率,它一般包装FileReader等字符输入流来使用,InputStreamReader是字节流到字符流的转换桥梁。
10. 以下关于Java多线程的说法,正确的是( )
A. 一个Java程序只能有一个线程
B. 线程是通过继承Thread类或者实现Runnable接口来创建的
C. 多线程可以提高程序的执行速度
D. 线程的优先级越高,就一定先执行
答案:B。A选项,一个Java程序可以有多个线程;C选项,多线程主要是为了提高程序的并发性能,不一定能提高执行速度,因为线程之间的切换等也会有开销;D选项,线程优先级高的线程更有可能先执行,但不是一定先执行,还取决于操作系统的调度等因素。
二、程序填空题
1. 以下程序是计算1 - 100之间的整数之和,请补充完整。
java
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; ____) {
sum += i;
}
System.out.println("1 - 100的和为:" + sum);
}
}
答案:i++。在for循环中,需要在每次循环后更新循环变量i的值,使其能够按照顺序从1递增到100,i++实现了这个功能。
2. 以下程序定义了一个方法,用于判断一个数是否为偶数,请补充完整。
java
public class Main {
public static boolean isEven(int num) {
return ____;
}
public static void main(String[] args) {
int n = 4;
if (____) {
System.out.println(n + "是偶数");
} else {
System.out.println(n + "是奇数");
}
}
}
答案:num % 2 == 0;isEven(n)。在isEven方法中,判断一个数是否为偶数可以通过判断该数除以2的余数是否为0来实现,所以返回num % 2 == 0。在main方法中,调用isEven方法来判断n是否为偶数,所以应该填写isEven(n)。
三、程序改错题
1. 以下程序的目的是交换两个整数的'值,但是程序有错误,请改正。
java
public class Main {
public static void main(String[] args) {
int a = 10, b = 20;
a = b;
b = a;
System.out.println("a = " + a + ", b = " + b);
}
}
答案:
java
public class Main {
public static void main(String[] args) {
int a = 10, b = 20;
int temp = a;
a = b;
b = temp;
System.out.println("a = " + a + ", b = " + b);
}
}
分析:原程序中,先将b的值赋给a,此时a的值变为20,然后再将a(此时为20)的值赋给b,这样并没有实现交换。正确的做法是引入一个临时变量temp,先将a的值保存到temp中,然后将b的值赋给a,最后将temp(原来a的值)赋给b。
2. 以下程序是计算一个整数数组的平均值,但是有错误,请改正。
java
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i + 1];
}
double average = (double)sum / arr.length;
System.out.println("平均值为:" + average);
}
}
答案:
java
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
double average = (double)sum / arr.length;
System.out.println("平均值为:" + average);
}
}
分析:在计算数组元素之和的for循环中,原程序sum += arr[i + 1];会导致数组越界访问(当i为arr.length - 1时),并且没有正确累加数组元素。应该将其改为sum += arr[i];,这样才能正确地将数组中的每个元素累加到sum中。
四、程序设计题
1. 编写一个Java程序,输入一个整数n,计算并输出n的阶乘。
java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数n: ");
int n = scanner.nextInt();
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
System.out.println(n + "的阶乘是:" + result);
}
}
2. 定义一个Student类,包含姓名(name)和成绩(score)两个属性,以及一个方法display()用于输出学生的姓名和成绩。在main方法中创建Student类的对象并调用display()方法。
java
class Student {
private String name;
private double score;
public Student(String name, double score) {
this.name = name;
this.score = score;
}
public void display() {
System.out.println("姓名:" + name + ", 成绩:" + score);
}
}
public class Main {
public static void main(String[] args) {
Student student = new Student("张三", 90.5);
student.display();
}
}
【计算机二级Java备考冲刺试题及答案】相关文章:
计算机二级JAVA冲刺试题及答案02-14
2016计算机二级JAVA冲刺试题及答案02-21
Java经典笔试题(含答案)11-06
2016年计算机二级考试试题(Java)02-21
2017计算机二级考试试题与答案02-11
2016计算机二级考试练习试题及答案02-20
小升初英语冲刺试题(带答案)02-13