JAVA期末试题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AVA期末试题及答案
1.使用Java语言编写的源程序保存时的文件扩展名是()。
(A).class (B).java(C).cpp (D).txt
2.设int a=-2,则表达式a>>>3的值为()。
(A)0 (B)3 (C)8(D)-1
3.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是()。
(A)a[0]; (B)a[a.length-1];
(C)a[3]; (D)int i=1; a[i];
4.在类的定义中可以有两个同名函数,这种现象称为函数()。
(A)封装(B)继承
(C)覆盖(D)重载
5.在类的定义中构造函数的作用是()。
(A)保护成员变量(B)读取类的成员变量
(C)描述类的特征(D)初始化成员变量
6.下面关键字中,哪一个不是用于异常处理语句()。
(A)try (B)break
(C)catch (D)finally
7.类与对象的关系是()。
(A)类是对象的抽象(B)对象是类的抽象
(C)对象是类的子类(D)类是对象的具体实例
8.下面哪一个是Java中不合法的标识符()。
(A)$persons (B)twoNum
(C)_myVar (D)*point
9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。
(A)static void method( )
(B)public void method( )
(C)final void method( )
(D)abstract void method( )
10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的()。
(A)ArrayList myList=new Object( )
(B)List myList=new ArrayList( )
(C)ArrayList myList=new List( )
(D)List myList=new List( )
11.Java源文件和编译后的文件扩展名分别为()
(A) .class和 .java (B).java和 .class
(C).class和 .class (D) .java和 .java
12.在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成一些画图操作。
(A) start( ) (B) stop( )
(C) init( ) (D) paint( )
13.对于一个Java源文件,import, class定义以及package正确的顺序是:
(A) package,import,class (B) class,import,package
(C) import,package,class (D) package,class,import
14.下面哪个是非法的:
(A) int I = 32; (B) float f = 45.0;
(C) double d = 45.0; (D) char c = ‘u’;//符号错
15.Java语言使用的字符码集是
(A) ASCII (B) BCD
(C) DCB (D) Unicode
16. 如果一个类的成员变量只能在所在类中使用,则该成员变量必须使用的修饰是
(A) public (B) protected
(C) private (D) static
17.下面关于main方法说明正确的是
(A) public main(String args[ ])
(B) public static void main(String args[ ])
(C) private static void main(String args[ ])
(D) void main()
18.哪个关键字可以对对象加互斥锁?( )
(A) transient (B) synchronized
(C) serialize (D) static
19.关于抽象方法的说法正确的是( )
(A)可以有方法体 (B) 可以出现在非抽象类中
(C) 是没有方法体的方法(D) 抽象类中的方法都是抽象方法
20.java.io包的File类是
(A)字符流类(B) 字节流类
(C) 对象流类 (D) 非流类
21.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?()
A、String args
B、String args[]
C、Char arg
D、StringBuffer args[]
22.以下代码段执行后的输出结果为()
int x=-3; int y=-10;
System.out.println(y%x);
A、-1
B、2
C、1
D、3
23.以下关于继承的叙述正确的是()。
A、在Java中类只允许单一继承
B、在Java中一个类只能实现一个接口
C、在Java中一个类不能同时继承一个类和实现一个接口
D、在Java中接口只允许单一继承
24. 若有定义:byte[] x={11,22,33,-66};
其中0≤k≤3,则对x数组元素错误的引用是()
A)x[5-3]
B)x[k]
C)x[k+5]
D)x[0]
25.paint()方法使用哪种类型的参数? ()
A、Graphics
B、Graphics2D
C、String
D、Color
26.以下哪个不是Java的原始数据类型()
A、int
B、Boolean
C、float
D、char
27.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。
这种面向对象程序特性称为()
A)隐藏
B)重写
C)重载
D) Java不支持此特性
28.以下有关构造方法的说法,正确的是:()
A.一个类的构造方法可以有多个
B.构造方法在类定义时被调用
C.构造方法只能由对象中的其它方法调用。
D.构造方法可以和类同名,也可以和类名不同
29.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行()。
A、init()
B、start()
C、destroy()
D、stop()
30.给出下面代码,关于该程序以下哪个说法是正确的?()
public class Person{
static int arr[] = new int[5];
public static void main(String a[])
{
System.out.println(arr[0]); }
}
A、编译时将产生错误
B、编译时正确,运行时将产生错误
C、输出零
D、输出空
31、有以下方法的定义,请选择该方法的返回类型()。
ReturnType method(byte x, double y)
{
return (short)x/y*2;
}
A、byte
B、short
C、int
D、double
32.下列类定义中哪些是合法的抽象类的定义?()
A、abstract Animal{abstract void growl();}
B、class abstract Animal{abstract void growl();}
C、abstract class Animal{abstract void growl();}
D、abstract class Animal{abstract void growl(){System.out.println(“growl”);};}
33.有以下程序片段,下列哪个选项不能插入到行1。
()
1.
2.public class Interesting{
3.//do sth
4. }
A、import java.awt.*;
B、package mypackage;
C、class OtherClass{ }
D、public class MyClass{ }
34. 设有下面两个赋值语句:
a = Integer.parseInt(“12”);
b = Integer.valueOf(“12”).intValue();
下述说法正确的是()。
A、a是整数类型变量,b是整数类对象。
B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且值相等。
D、a和b都是整数类型变量并且值相等。
35.在编写Java Applet程序时,需在程序的开头写上( )语句。
A、import java.awt.* ;
B、import java.applet.Applet ;
C、import java.io.* ;
D、import java.awt.Graphics ;
36.下列哪一项不属于Swing的顶层容器?()
A)JApplet B)JTree C)JDialog D)JFrame
37. 为了使包ch4在当前程序中可见,可以使用的语句是()。
A)import ch4.*; B)package ch4.*;
C)ch4 import; D)ch4 package;
38. 请问所有的异常类皆继承哪一个类?()。
A)java.io.Exception B)ng.Throwable
C)ng.Exception D)ng.Error
39.进行Java基本的GUI设计需要用到的包是()。
A)java.io B)java.sql C)java.awt D)java.rmi
40. 当点击鼠标或者拖动鼠标时,触发的事件是下列的哪一个?()
A)KeyEvent B)ActionEvent C)ItemEvent D)MouseEvent
填空题:
1.数组x定义:String x[ ][ ]=new int[3][2]; x[0 ][0 ]=”abc”, x[0 ][1]=”12345”;
则 x.length 的值为______2___,x[0][1].length( ) 的值为__5___。
2、Java语言的变量由变量名、_修饰符_、变量属性、_初值___组成。
3、当程序中需要抛出异常时,应该使用_catch_子句,当需要在方法中声明可能抛出的异常类型,应该使用_______子句。
4、java.applet包中的________类定义了Applet与其运行环境之间的一个标准接口。
5、Java语言中提供的GUI功能主要由java.awt包和_java.swing_包中的类和接口实现。
6、Java源程序文件和字节码文件的扩展名分别为_.java___和__.class___。
7、Java语言的类型检查机制要求对于没有返回值的方法,在其前面必须加___void___进行说明。
8、类是Java语言的一种_______数据类型。
9、在Java语言中,所有的对象均通过___________运算符分配内存,并对内存进行自动管理。
10、每个Java Application程序可以包括许多方法,但是必须有且只能有一个______方法,统一格式为__________,它是程序执行的入口。
11、若要在程序中定义一个公用的int型的类成员变量MAX_LENGTH,且该变量的值保持常数值1000,则定义该变量的语
句是_____________________。
12、子类必须通过_super_关键字调用父类有参数的构造函数。
13、在Java语言中,所有的类都是类__Object__的子类。
14、在Java程序中,通过类的定义只能实现单重继承,但通过__接口__ 的定义可以实现多重继承关系。
15、如果在Java程序中,需要使用java.util包中的所有类,则应该在程序开始处加上语句_import java.util.*_。
16、下列程序的运行结果是__01234_______________
public class ex2 {
public static void main(String[] args)
{
for(int cnt=0;cnt<10;cnt++)
{
if(cnt==5)
break;
System.out.print(cnt);
}}}
17、下列程序的运行结果是______4_________
import java.io.*;
public class ATest{
public static void main(String args[])
{
SubClass sb = new SubClass( );
System.out.println(sb.fun( ));
}}
class SuperClass{
int a =24 , b =5 ;
}
class SubClass extends SuperClass
{
int fun( )
{
return a%b;
}
}
18、分析下列程序,填上空白处的语句
class point //定义坐标类
{ int x,y;
test(int a,int b)
{x=a;y=b;}
}
class rec_extends point __________//定义长方形类
{
int length,width;
rec(int a1,int b1,int l,int w)
{super(a1,b1);
length=l;width=w;
}}
class test
{public static void main(String args[])
{
___test r1=new test(“0”, “0”, “10”, “20”)__________________
//定义名为r1的对象同时初始化坐标为0,0,长度为10,宽度为20
r1.print();
}}
19、Java 源文件中最多只能有__________1___________个公共类,其它类的个数不限。
20、在 Java 中所有实现的多维数组,实际上是由一维数组构成的_数组的数组。
21、设 x =15 ,则表达式 ( x + + )/4 的值是___3_______________。
22、___抽象______方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
23、 ____run()______方法用于定义线程的执行体. _____start()______方法用于启动线程.
24、String str1=”abc”;
String str2=new String(“abc”);
System.out.println(str1==str2);则程序运行后输出结果为:_____fault________
25、Java语言中,有一个类是所有类或接口的父类,这个类的名称是 ____Object______。
26、当启动 Applet 程序时,首先调用的方法是_____________________。
27、Java语言是一种完全的_____________________程序设计语言。
28. 如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是____Applet_____
类的子类并且存储该源程序文件的文件名为。
29. 设 int x = 2 ,则表达式 (x++)/3 的值是_____0_______________。
30. Java提供的访问权限修饰符有4个,即:public、_private、protected和友元。
31. Java中有两种常用的字符串类,一个是String,另一个是_____________________。
32. Java实现多线程的方法有两种,一种方法是通过创建_____________________类的子类实现多线程,另一种方法是定义
一个实现
_____________________接口的类。
33. Java不支持多继承。
但它允许一个类同时实现多个__接口____,这就相当于部分实现了多继承。
34. Java源文件中,__________import___________语句位于package语句之后、类定义之前。
35. __OutputStreamWriter__类是OutputStream类的子类,用来处理以文件作为数据输出的数据流。
三、编程题:
1.编写一个输出"Hello World!"的程序,用两种方式实现(Application、Applet)。
2.编写一个Java Application,接收从键盘输入的10个整数,并输出其中的最大、最小以及平均值。
要求:将计算功能
定义在一个类中,由主类接收输入,再用数组的方式传递给实现计算的类的方法,再输出结果。
3.编写一个程序,
RealPart : int型,代表复数的实数部分
ImaginPart : int型,代表复数的虚数部分
String ToString( ) : 把当前复数对象的实部、虚部组合成 a+bi 的字符串形式,其中 a 和 b分别为实部和虚部的数据。
4.求10个数中的最大值并输出。
5.建立一个学生类,其中成员变量为学号,姓名,及三门课成绩。
另外建立一个包含主方法的类,定义2个学生类的对象,求出这2个学生三门课总分的最高分,并将最高分这个学生的信息输出。
6.编写一个Application,接受用户输入的帐号和密码,给三次输入机会.
7.定义一个圆类circle,它有一个变量radius(半径)、若干个构造函数和一个求圆的面积的方法。
在主类test的main()
方法中随机生成一个100以内的整数,通过构造函数的参数传递给radius,调用圆类circle中的方法计算并输出圆的面积。
8.编写Applet程序模拟屏幕保护程序,在屏幕上随机画圆。
圆的位置和半径是随机的。
50毫秒后再随机画下一个圆,一旦
画满了50个圆,就清除屏幕。
然后重新开始画圆。
9.请编写一个实现如下功能的Application:比较从键盘输入的两个整数是否相等,并根据比较结果显示“相等”或“不
相等”。
10.请编写一个Applet,其中包含两个标签(一个用于给出提示信息,另一个用来输出结果)和一个文本框。
要求从文本
框中获取用户给出的一个整数,并将该数的绝对值在标签上输出。
11.编写一个Application,利用数组求出”HELLO”,”JAVA””PROGRAM”三个字符串的平均长度。
12.SQL Server 中有一个名为 friends 的表,如下图,利用JDBC编程实现显示表中记录信息。
一:
1、application程序
public class a
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}
2、applet程序
public class b extends java.applet.Applet
{
public paint(java.awt.Graphics g)
{
g.outstring("Hello World!",10,10);
}
}
二:
private float shibu;
private float xubu;
{
this(0,0);
}
this.shibu=shibu;
this.xubu=xubu;
}
{
ex();
result.shibu=this.shibu+p.shibu;
result.xubu=this.xubu+p.xubu;
System.out.print("加法果为:"+result.shibu+"+"+result.xubu+"i"); }
public static void main(String[] args) {
fushu1.Add(fushu2);
}
}
三:
import ng.*;
public class COMplex {
int RealPart;
int ImagePart;
COMplex(){
RealPart=0;
ImagePart=0;
}
COMplex(int real,int image){
RealPart=real;
ImagePart=image;
}
COMplex repart = new COMplex();
repart.RealPart=this.RealPart+a.RealPart;
repart.ImagePart=this.ImagePart+a.ImagePart;
return repart;
}
void ToString( ) {
System.out.println(this.RealPart+"+"+this.ImagePart+"i");
}
public static void main(String args[]){
COMplex C1=new COMplex(2,3);
COMplex C2=new COMplex(4,6);
COMplex C3=new COMplex();
// C3.ToString();
}
}
四:
import java.util.Scanner;
public class Test {
public static void main(String args[]){
int num[]=new int[10];
int max;
Scanner scan=new Scanner(System.in); System.out.print("请输入10个数字:");
for(int i=0; i<10; i++){
num[i]=scan.nextInt();
}
max=num[0];
for(int i=1; i<10; i++){
if(max<num[i]) max=num[i];
}
System.out.println("最大值是"+max);
}
五:
//学生类
public class Student{
private String stu_id;
private String stu_name;
private float math;
private float chinese;
public void setStu_id(String stu_id){
this.stu_id=stu_id;
}
public String getStu_id(){
return stu_id;
}
public void setStu_name(String stu_name){ this.stu_name=stu_name;
}
public String getStu_name(){
return stu_name;
}
public void setMath(float math){
this.math=math;
}
public float getMath(){
return math;
}
public void setChinese(float chinese){
this.chinese=chinese;
}
public float getChinese(){
return chinese;
}
}
public
}
}
//主方法的类
public class Start{
public static void main(String[] args){
Student stu1=new Student();
stu1.setStu_id("No1");
stu1.setStu_name("张三");
stu1.setMath(89.5f);
stu1.setChinese(70f);
stu1.s
Student stu2=new Student();
stu2.setStu_id("No2");
stu2.setStu_name("李四");
stu2.setMath(79.5f);
stu2.setChinese(90f);
float stu2Sum
if(stu1Sum > stu2Sum){
System.out.println ("总分最高分为:"+stu1Sum);
System.out.println ("学号:"+stu1.getStu_id()); System.out.println ("姓名:"+stu1.getStu_name()); System.out.println ("数学:"+stu1.getMath());
System.out.println ("语文:"+stu1.getChinese());
}else if(stu1Sum < stu2Sum){
System.out.println ("总分最高分为:"+stu2Sum);
System.out.println ("学号:"+stu2.getStu_id()); System.out.println ("姓名:"+stu2.getStu_name()); System.out.println ("数学:"+stu2.getMath());
System.out.println ("语文:"+stu2.getChinese());
}else{
System.out.println ("总分一样高为:"+stu1Sum);
System.out.println ("学号:"+stu1.getStu_id()); System.out.println ("姓名:"+stu1.getStu_name()); System.out.println ("数学:"+stu1.getMath());
System.out.println ("语文:"+stu1.getChinese());
System.out.println ("学号:"+stu2.getStu_id()); System.out.println ("姓名:"+stu2.getStu_name()); System.out.println ("数学:"+stu2.getMath());
System.out.println ("语文:"+stu2.getChinese());
}
}
}
九:
import java.util.Scanner;
public class COMPare {
public static void main(String args []){
Scanner tr=new Scanner(System.in);
int b=tr.nextInt();
int a=tr.nextInt();
if(a==b)
System.out.println("相等");
else
System.out.println("不相等");
}
}
十一:
class Average {
public static void main(String args[]) {
String array[] = new String[3];
array[0] = "HELLO";
array[1] = "JAVA";
array[2] = "PROGRAM";
int total = array[0].length();
total += array[1].length();
total += array[2].length();
System.out.println("平均字符串长度为: " + total/3);
}
}
JAVA复习卷
一、选择题(2’*15=30’)
1、如下哪个是Java中的标识符( )
A、fieldname
B、super
C、3number
D、#number
2、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( )。
A. 3
B. 3. 5
C. 4
D. 5
3、下面的代码段执行之后count的值是什么( )
int count = 1;
for (int i = 1; i <= 5; i++) {
count += i;
}
System.out.println(count);
A、5
B、1
C、15
D、16
4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的
形式为( )。
A. static void method( )
B. public void method( )
C. final void method( )
D. abstract void method( )
5、下列程序段执行后的结果是( )。
String s = new String("abcdefg");
for (int i=0; i<s.length(); i+=2){
System.out.print(s.charAt(i));
}
A) aceg B) ACEG C) abcdefg D) abcd
6、下面程序段执行后b的值是( )。
Integer integ =new Integer(9);
boolean b = integ instanceof Object;
A) 9 B) true C) 1 D) false
7.关于 for循环和 while循环的说法哪个正确?()
A.while循环先判断后执行,for循环先执行后判断。
B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换
D.两种循环结构中都必须有循环体,循环体不能为空
8.关于对象成员占用内存的说法哪个正确?()
A.同一个类的对象共用同一段内存
B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间
C.对象的方法不占用内存
D.以上都不对
9.关于继承的说法正确的是:()
A、子类将继承父类所有的属性和方法。
B、子类将继承父类的非私有属性和方法。
C、子类只继承父类public方法和属性
D、子类只继承父类的方法,而不继承属性
10.覆盖与重载的关系是()
A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中
B.覆盖方法可以不同名,而重载方法必须同名
C.final修饰的方法可以被覆盖,但不能被重载
D.覆盖与重载是同一回事
11、下面哪一个import命令可以为我们提供编写网络应用程序的类()
A、import java.sql.*;
B、import java.util.*;
C、import java.io.*;
D、import .*;
12、如果容器组件p的布局是BorderLayout,则在p的下边中添加一个按钮b,应该使用的语句是()
A、p.add(b);
B、p.add(b,"North");
C、p.add(b,"South");
D、b.add(p,"North");
13、Frame对象默认的布局管理器是()
A、FlowLayout
B、BorderLayout
C、CardLayout
D、null
14、如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象()
A、FileInputStream
B、FileOutputStream
C、DataOutputStream
D、FileWriter
15、下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下不存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,则文件test.txt 的内容是( )。
import java.io.*;
public class Test {。