Java期末考试真题道附答案解析.docx
《Java期末考试真题道附答案解析.docx》由会员分享,可在线阅读,更多相关《Java期末考试真题道附答案解析.docx(25页珍藏版)》请在冰豆网上搜索。
Java期末考试真题道附答案解析
Java单项选择题详解
一、单项选择题(本大题共100题,小计分)
1. 访问权限修饰符有public、private、protected与默认修饰符〔没有写任何修饰符〕,他们既可以用来修饰类,也可以用来修饰类中的成员,使用private修饰符的成员可见情况有〔 〕
A、同一类[正确选项];
B、不同包中的子类;
C、同一包中的非子类;
D、同一包中的子类;
参照答案:
A
2.以下关于变量的表达哪个是错的?
〔 〕
A、局部变量在使用前必须被初始化;
B、实例变量是类的成员变量;
C、实例变量用关键字static声明;
D、在方法中定义的局部变量在该方法被执行时创立;
参照答案:
C
在类的声明中,属性是用变量来表示的。
这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。
类的每个对象维护它自己的一份实例变量的副本。
3. 关于以下程序段,正确的说法是〔 〕
1. String s1=〞abc〞+〞def〞;
2. String s2=new String〔s1〕;
3. if〔s1==s2〕
4. System.out.println(“==succeeded〞);
5. if(s1.equals(s2))
6. System.out.println(“.equals() succeeded〞);
A、行6执行,行4不执行;
B、行4与行6都将执行;
C、行4执行,行6不执行;
D、行4、行6都不执行;
参照答案:
A
4. 以下程序代码段运行后,变量x的结果是( )
intx=0;
inty=3;
switch(y){
case1:
x++;
case2:
x++;x++;
case3:
x++;x++;x++;
case4:
x+=4;
}
A、10;
B、6;
C、7;
D、3;
参照答案:
C
5. A类被打包在packageA,B类被打包在packageB,且B类被声明为public,且有一个成员变量x被声明为protected控制方式。
C类也位于packageA包,且继承了B类。
那么以下说法正确的选项是〔 〕
A、A类的实例不能访问到B类的实例;
B、A类的实例能够访问到B类一个实例的x成员;
C、C类的实例不能访问到B类的实例;
D、C类的实例可以访问到B类一个实例的x成员[正确选项];
参照答案:
D
6. 以下Java常见事件类中哪个是鼠标事件类?
〔 〕
A、WindowEvent;
B、KeyEvent;
C、InputEvent;
D、MouseEvent[正确选项];
参照答案:
D
7. 关于以下程序代码的说明正确的选项是〔 〕
1.class HasStatic{
2. private static int x=100;
3. public static void main(String args[ ]){
4. HasStatic hs1=new HasStatic( );
5. hs1.x++;
6. HasStatic hs2=new HasStatic( );
7. hs2.x++;
8. hs1=new HasStatic();
9. hs1.x++;
10. HasStatic.x--;
11. System.out.println(“x=〞+x);
12. }
13. }
A、程序通过编译,输出结果为:
x=102[正确选项];
B、10行不能通过编译,因为x是私有静态变量;
C、5行不能通过编译,因为引用了私有静态变量;
D、程序通过编译,输出结果为:
x=103;
参照答案:
A
8. 编译运行以下程序后,关于输出结果的说明正确的选项是〔 〕
public class Conditional{
public static void main(String args[ ]){
int x=4;
System.out.println(“value is “+((x>4)99.9:
9));
}
}
A、输出结果为:
valueis99.99;
B、输出结果为:
[正确选项];
C、编译错误;
D、输出结果为:
valueis9;
参照答案:
B
9. 编译运行下面的代码会发生什么( )
publicclassTestextendsThread{
privateStringsThreadName;
publicstaticvoidmain(Stringargv[]){
Testh=newTest();
h.go();
}
Test(){
}
Test(Strings){
sThreadName=s;
}
publicStringgetThreadName(){
returnsThreadName;
}
publicvoidgo(){
Testfirst=newTest("first");
first.start();
Testsecond=newTest("second");
second.start();
}
publicvoidstart(){
for(inti=0;i<2;i++){
System.out.println(getThreadName()+i);
try{
Thread.sleep(100);
}catch(InterruptedExceptione){
System.out.println(e.getMessage());
}
}
}
}
A、运行时错误;
B、输出first0,second0,first1,second1;
C、编译错误;
D、输出first0,first1,second0,second1.[正确选项];
参照答案:
D
说明:
将 publicvoidstart(){改为:
publicvoidrun(){那么交替输出
10. java程序运行时,用于判定一个对象实例的类型运算符是〔 〕
A、==;
B、instanceof[正确选项];
C、以上都对;
D、equal;
参照答案:
B
11. 以下哪一项不是Java保存字?
〔 〕
A、abstract;
B、sizeof[正确选项];
C、super;
D、break;
参照答案:
B
12. 当处理的数据量很多,或向文件输出很屡次小数据,一般使用的流是〔 〕
A、DataOutputStream;
B、PipedOutputStream;
C、BufferedOutputStream[正确选项];
D、;
参照答案:
C
13. 获取一个不包含路径的文件名的方式为〔 〕
A、StringgetPath();
B、StringgetAbslutePath();
C、StringgetParent();
D、StringgetName()[正确选项];
参照答案:
D
14. Java应用程序的入口方法是〔 〕
A、main〔〕[正确选项];
B、init〔〕;
C、paint〔〕;
D、start〔);
参照答案:
A
15. 以下不属于输入流的read()成员函数的是〔 )
A、intread(intline)[正确选项];
B、intread();
C、intread(byteb[]);
D、intread(byteb[],intoffset,intlen);
参照答案:
A
16. 下面关于Java语言中实例方法与类方法的说法,哪项是对的?
〔 〕
A、实例方法可以直接通过类名调用;
B、类方法可以操作实例变量也可以操作类变量;
C、实例方法可以操作实例变量也可以操作类变量;
D、类方法可以直接通过类名调用[正确选项];
参照答案:
D
说明:
类方法是属于整个类的,而实例方法是属于类的某个对象的。
17. 监听事件与处理事件〔 〕
A、都由Listener完成;
B、由Listener与构件分别完成;
C、都由相应事件Listener处登记过的构件完成[正确选项];
D、由Listener与窗口分别完成;
参照答案:
C
18. 类Test1定义如下:
1.public class Test1{
2. public float aMethod〔float a,float b〕{ }
3.
4.}
将以下哪种方法插入行3是不合法的。
〔 〕
A、publicfloataMethod〔floatc,floatd〕{}[正确选项];
B、privatefloataMethod〔inta,intb,intc〕{};
C、publicfloataMethod〔floata,floatb,floatc〕{};
D、publicintaMethod〔inta,intb〕{};
参照答案:
A
19. 当要将一文本文件当作一个数据库访问,读完一个纪录后,跳到另一个纪录,它们在文件的不同地方时,一般使用〔 〕类访问。
A、BufferedOutputStream;
B、;
C、PipedOutputStream;
D、RandomAccessFile[正确选项];
参照答案:
D
20. java中用来抛出异常的关键字是 ( )
A、throw[正确选项];
B、finally;
C、catch;
D、try;
参照答案:
a
21. 以下数组初始化形式正确的选项是( )
A、intt4[][];t4={1,2,3,4,5,6};;
B、intt2[][]={1,2,3,4,5,6};;
C、intt1[][]={{1,2},{3,4},{5,6}};[正确选项];
D、intt3[3][2]={1,2,3,4,5,6};;
参照答案:
C
22. 异常包含以下哪些内容?
〔 〕
A、程序事先定义好的可能出现的意外情况;
B、程序中的语法错误;
C、程序执行过程中遇到的事先没有预料到的情况[正确选项];
D、程序的编译错误;
你的选择为:
(得分0.0分);
23. 下面哪个关键字不是用来控制对类成员的访问的?
〔 〕
A、public;
B、private;
C、default [正确选项];
D、protected;
24. 以下整型数据类型中,需要内存空间最少的是〔 〕
A、byte[正确选项];
B、long;
C、short;
D、int;
25. Character流与Byte流的区别是〔 〕
A、前者是块读写,后者是字节读写[正确选项];
B、二者没有区别,可以互换使用;
C、前者带有缓冲,后者没有;
D、每次读入的字节数不同;
Character是字符的意思,Byte是字节的意思,所以Character流是字符读写,Byte流是字节读写
26. 当把一个程序、线程或代码段的输出连接到另一个程序、线程或代码段的输入时,应使用的流是〔 〕
A、BufferedOutputStream;
B、PipedOutputStream[正确选项];
C、;
D、DataOutputStream;
27. 以下有关子类继承父类构造函数的描述正确的选项是( )
A、子类必须通过super关键字调用父类的构造函数[正确选项];
B、创立子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数;
C、子类无法继承父类的构造函数;
D、子类无条件地继承父类不含参数的构造函数;
28. 在异常处理中,如释放资源、关闭文件、关闭数据库等由( )来完成
A、finally子句[正确选项];
B、try子句;
C、throw子句;
D、catch子句;
29. 执行完以下代码int[] x=newint[10];后,以下哪项说明是正确的〔 〕
A、x[9]未定义;
B、x[9]为0[正确选项];
C、x[0]为空;
D、x[10]为0;
30. Java语言正确的常量修饰符应该是〔 〕
A、staticfinal;
B、static;
C、final;
D、publicstaticfinal[正确选项];
31.以下选项中哪一个是表达式1+2+"aa"+3的值〔 〕
A、"3aa3"[正确选项];
B、"12aa3";
C、"aa3";
D、"12aa";
32. 哪个关键字可以抛出异常?
〔 〕
A、throws;
B、finally;
C、throw[正确选项];
D、try;
33. Java的JVM是指〔 〕
A、由Java操作的家用设备〔通常是一个漂亮的小烤箱〕;
B、Java源代码的编译器;
C、运行Java所需的硬件设备;
D、Java字节代码的解释程序[正确选项];
34. 关于异常,以下说法正确的选项是( )
A、异常是一种对象[正确选项];
B、一旦程序运行,异常将被创立;
C、为了保证程序运行速度,要尽量防止异常控制;
D、没有正确答案;
35. 所有异常类的父类〔 〕
A、Exception;
B、Throwable[正确选项];
C、AWTError;
D、Error;
36. 关于以下application的说明,正确的选项是〔 〕
1.class StaticStuff
2.{
3. static int x=10;
4. static {x+=5;}
5. public static void main〔String args[]〕
6. {
7. System.out.println(“x=〞+x);
8. }
9. static {x/=3;}
10. }
A、编译通过,执行结果为:
x=3;
B、4行与9行不能通过编译,因为缺少方法名与返回类型;
C、9行不能通过编译,因为只能有一个静态初始化器;
D、编译通过,执行结果为:
x=5[正确选项];
37. 下述4行代码组成的小程序总共创立String对象的个数为:
〔 〕
Strings1="abc";
Strings2=newString("abc");
Strings3="abc";
Strings4=newString("abc");
A、1;
B、4;
C、2;
D、3[正确选项];
38. 以下哪一项说法最好地描述了Java中的对象?
〔 〕
A、对象是方法的集合,这些方法在小程序窗口或应用程序窗口中产生图形元素,或者计算与返回值;
B、对象是通过import命令引入到程序中的所有事情;
C、对象是一种数据构造,它具有操作数据的方法[正确选项];
D、对象是一组具有共同的构造与行为的类;
39. 以下说法中错误的一项为哪一项〔 〕
A、线程就是程序[正确选项];
B、多线程用于实现并发;
C、多线程是指一个程序的多个执行流;
D、线程是一个程序的单个执行流;
40. 如果str表示一个String对象“73〞,那么以下哪些表达式将会把这个字符串转换为int值73?
请选出正确答案。
〔 〕
A、Integer.getInt(str);
B、(newInteger(str)).intValue()[正确选项];
C、((int)str);
D、Integer.intValue(str);
41. 运行jar文件中class文件需要在java命令后面加的参数为( )
A、cp[正确选项];
B、-verbose;
C、-g;
D、-d;
42. 以下程序段运行后,变量x,y,z的值描述正确的选项是〔 〕
intx=1;
inty=(x++)*2;
intz=(--y)*3;
A、x的值是1,y的值是1,z的值是6;
B、x的值是2,y的值是1,z的值是3[正确选项];
C、x的值是1,y的值是2,z的值是3;
D、x的值是2,y的值是1,z的值是6;
43. 以下常见的系统定义的异常中,哪个是输入、输出异常〔 〕
A、IOException[正确选项];
B、;
C、ClassNotFoundException;
D、UnknownHostException;
44. 下面关于事件监听的说明,哪一个语句是正确的?
〔 〕
A、组件不允许附加多个监听器;
B、如果多个监听器加在一个组件上,那么事件只会触发一个监听器;
C、监听器机制允许按照我们的需要,任意调用addXxxxListener方法屡次,而且没有次序区别[正确选项];
D、所有组件,都不允许附加多个监听器;
45. 使用以下哪个保存字可以使只有在定义该类的包中的其他类才能访问该类?
〔 〕
A、不使用保存字[正确选项];
B、private;
C、abstract;
D、protected;
46. 对于catch子句的排列,以下哪种是正确的( )
A、子类在先,父类在后[正确选项];
B、有继承关系的异常不能在同一个try程序段内;
C、父类在先,子类在后;
D、先有子类,其他如何排列都无关;
47. 关于类继承的说法,正确的选项是〔 〕
A、接口与类都允许多继承;
B、Java接口允许多继承[正确选项];
C、接口与类都不允许多继承;
D、Java类允许多重继承;
48. 但凡从中央处理器流向外部设备的数据流称为〔 〕
A、文件流;B、输入流;C、输出流[正确选项];D、字符流;
49. 运行如下代码的结果是〔 〕
publicclassMyObj{
intx=3;
publicMyObj(intx){
this.x=x;
}
publicstaticvoidmain(String[]args){
MyObjobj=newMyObj(50);
System.out.println(obj.x);
}
}
A、编译错误;B、3;C、50[正确选项];D、编译通过,但运行错误;
50. 在Java中,关于CLASSPATH环境变量的说法不正确的选项是〔 〕
A、编译器用它来搜索各自的类文件;
B、解释器用它来搜索各自的类文件;
C、CLASSPATH设置之后不可修改,但可以将目录添加到该环境变量中[正确选项];
D、CLASSPATH是一个目录列表;
51. 以下不是Java的输入输出流的是〔 〕
A、字符流;B、文本流[正确选项];C、文件流;D、字节流;
52. JavaJDK中编译的命令是〔 )
A、javac[正确选项];B、javah;C、jdb;D、java;
53. Java语言的类间的继承关系是( )
A、多重的;B、单重的[正确选项];C、不能继承;D、线程的;
54. 当方法遇到异常又不知如何处理时,以下哪种说法是正确的( )
A、嵌套异常;B、声明异常[正确选项];C、捕获异常;D、抛出异常;
55. Java语言具有许多优点与特点,以下选项中,哪个反映了Java程序并行机制的特点?
〔 〕
A、跨平台;
B、平安性;
C、多线性[正确选项];
D、可移植;
56. 有整型数组:
int[]x={2,33,88,5,10};,那么调用方法Arrays.sort(x)后,数组x中的元素值依次是〔 〕
A、88102335;
B、25103388[正确选项];
C、53321088;
D、88331052;
你的选择为:
(得分0.0分);
57.