JAVA程序设计期末考试题多套含答案复习过程.docx

上传人:b****6 文档编号:5100709 上传时间:2022-12-13 格式:DOCX 页数:46 大小:42.71KB
下载 相关 举报
JAVA程序设计期末考试题多套含答案复习过程.docx_第1页
第1页 / 共46页
JAVA程序设计期末考试题多套含答案复习过程.docx_第2页
第2页 / 共46页
JAVA程序设计期末考试题多套含答案复习过程.docx_第3页
第3页 / 共46页
JAVA程序设计期末考试题多套含答案复习过程.docx_第4页
第4页 / 共46页
JAVA程序设计期末考试题多套含答案复习过程.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

JAVA程序设计期末考试题多套含答案复习过程.docx

《JAVA程序设计期末考试题多套含答案复习过程.docx》由会员分享,可在线阅读,更多相关《JAVA程序设计期末考试题多套含答案复习过程.docx(46页珍藏版)》请在冰豆网上搜索。

JAVA程序设计期末考试题多套含答案复习过程.docx

JAVA程序设计期末考试题多套含答案复习过程

《JAVA程序设计》期末考试试题(五)

一、单选题

1、当某一线程正处于休眠状态,而另一个线程用Thread类中的interrupt()方法中断它时,抛出的异常类型是()。

A)IOExceptionB)RuntimeException

C)InterruptedExceptionD)ClassNotFoundException

2、下面的程序段的功能是()。

Filefile1=newFile("d:

\\xxx\\yyy\\zzz");

file1.mkdirs();

A)在当前目录下生成子目录:

\xxx\yyy\zzzB)生成目录:

e:

\xxx\yyy\zzz

C)在当前目录下生成文件xxx.yyy.zzzD)以上说法都不对

3、应用程序的main方法中有以下语句,则输出的结果是()。

Strings="xxxxxxxxxxxxxxx#123#456#zzzzz";

intn=s.indexOf("#");

intk=s.indexOf("#",n+1);

Strings2=s.substring(n+1,k);

System.out.println(s2);

A)123456B)123C)xxxxxxxxxxxxxxxD)zzzzz

4、关于下面的程序Test.java说法正确的是()。

publicclassTest{

Stringx="1";

inty;

publicstaticvoidmain(Stringargs[]){

intz=2;

System.out.println(x+y+z);

}

}

A)3B)102C)12D)程序有编译错误

5、应用程序的main方法中有以下语句,则输出的结果是()。

intb[][]={{1,1,1},{2,2},{3}};

intsum=0;

for(inti=0;i

for(intj=0;j

sum+=b[i][j];

}

}

System.out.println("sum="+sum);

A)10B)6C)9D)13

6、应用程序的main方法中有以下语句,则执行后输出的结果是()。

int[]x={125,21,5,168,98};

intmin=x[0];

for(inti=1;i

if(x[i]

min=x[i];

}

System.out.println(min);

A)125B)5C)98D)168

7、应用程序的main方法中有以下语句,则输出的结果是()。

Hashtablehashtable=newHashtable();

hashtable.put("100","aaa");

hashtable.put("200","bbb");

hashtable.put("300","ccc");

System.out.println(hashtable.get("300").toString()

+hashtable.get("200").toString()

+hashtable.get("100").toString());

A)aaaB)bbbC)cccD)cccbbbaaa

8、以下关于java异常说法不正确的是()。

A)Throwable类是Java语言中Error类和Exception类的父类。

B)当异常对象是Exception类(或其子类)的实例时,能通过Java虚拟机或者throw语句抛出该异常对象,并能通过try…catch…finally处理。

C)如果只用一个catch块捕捉多个异常对象,则catch子句中的参数类型应是所有异常对象的父类。

D)以上说法都不对。

9、下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下不存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,则文件test.txt的内容是()。

importjava.io.*;

publicclassTest{

publicstaticvoidmain(Stringargs[]){

try{

Strings="ABCDE";

byteb[]=s.getBytes();

FileOutputStreamfile=newFileOutputStream("test.txt",true);

file.write(b);

file.close();

}

catch(IOExceptione){

System.out.println(e.toString());

}

}

}

A)ABCABCB)ABCDEC)TestD)ABCDEABCDEABCDE

10、下面说法不正确的是()?

A)列表(List)、集合(Set)和映射(Map)都是java.util包中的接口。

B)List接口是可以包含重复元素的有序集合。

C)Set接口是不包含重复元素的集合。

D)Map接口将键映射到值,键可以重复,但每个键最多只能映射一个值。

二、多选题

1、下面哪些关键字能用来控制对类成员的访问()?

A)publicB)protectedC)privateD)default

2、下面关于Java中异常处理try块的说法正确的是()?

A)try块后通常应有一个catch块,用来处理try块中抛出的异常。

B)catch块后必须有finally块。

C)可能抛出异常的方法调用应放在try块中。

D)对抛出的异常的处理必须放在try块中

3、线程对象的生命周期中,通常经历下面哪些状态()。

A)新建B)运行C)就绪D)死亡

4、定义如下的二维数组b,下面的说法正确的是()。

intb[][]={{1,2,3},{4,5},{6,7,8}}};

A)b.length的值是3。

B)b[1].length的值是3。

C)b[1][1]的值是5。

D)二维数组b的第一行有3个元素

5、类B是一个抽象类,类C是类B的非抽象子类,下列创建对象x1的语句中正确的是()。

A)Bx1=newB();B)Bx1=newC();

C)Cx1=newC();D)Cx1=newB();

6、下面关于进程、线程的说法正确的是()。

A)进程是程序的一次动态执行过程。

一个进程在其执行过程中,可以产生多个线程——多线程,形成多条执行线索。

B)线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的控制流。

线程本身不能自动运行,栖身于某个进程之中,由进程启动执行。

C)Java多线程的运行与平台相关。

D)对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。

对于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务。

7、下面关于外部类和内部类成员的相互访问的规则中,正确的选项是()。

A)内部类可以直接访问外部类的成员

B)外部类可以直接访问内部类的成员

C)外部类不能访问内部类的成员

D)外部类可通过创建内部类的实例来访问内部类的成员

三、程序阅读题

1、阅读下面的程序代码,并回答问题(❶问3分,❷问3分,共6分)。

Strings1=newString("abcde");

Strings2=newString("abcde");

booleanb1=s1.equals(s2);

booleanb2=s1==s2;

System.out.print(b1+""+b2);

❶程序段执行后,在命令行的输出结果如何?

❷解释输出

(1)的结果的原因?

答案:

❶truefalse

❷equals方法比较两个字符串的内容是否相等;运算符“==”判断两个对象是否指向同一个引用,即是否为同一个对象。

2、阅读下面的程序,并回答问题(❶问3分,❷问3分,共6分)。

importjava.io.*;

publicclassTest{

publicstaticvoidmain(Stringargs[])throwsIOException{

BufferedReaderbuf=newBufferedReader(

newInputStreamReader(System.in));

while(true){

Stringstr=buf.readLine();

if(str.equals("quit"))

break;

intx=Integer.parseInt(str);

System.out.println(x*x);

}

}

}

编译运行上面的程序:

❶从键盘输入10,回车后输出的结果如何?

❷从键盘输入exit,回车后程序能正确执行吗?

为什么?

答案:

❶100

❷不能;因为方法Integer.parseInt(str)不能将字符串“exit”转化为整数,抛出异常。

3、写出下面的程序编译、运行后的结果(6分)。

publicclassTest{

publicstaticvoidmain(Stringargs[]){

newStudent("Tom",'m',90,88);

newStudent("Jack",'m',66,89);

newStudent("Mary",'f',76,86);

System.out.println("name\tsex\tchinese\tenglish");

Student.print();

}

}

classStudent{

protectedStringname;

protectedcharsex;

protectedintchinese;

protectedintenglish;

protectedStudentnext;

staticStudentlist;

Student(Stringname,charsex,intchinese,intenglish){

this.name=name;

this.sex=sex;

this.chinese=chinese;

this.english=english;

this.next=list;

list=this;

}

staticvoidprint(){

Studentfriend=list;

if(friend==null)

System.out.println("Thelistisempty.");

else{

do{

System.out.println(friend.toString());

friend=friend.next;

}while(friend!

=null);

}

}

publicStringtoString(){

returnnewString(name+"\t"+sex+"\t"+chinese+"\t"+english);

}

}

答案:

namesexchineseenglish

Maryf7686

Jackm6689

Tomm9088

《JAVA程序设计》期末考试试题(六)

一、填空题

1.定义类的保留字是(class),定义接口的保留字是(interface)。

2.Socket通常也称为(套接字),用于描述(IP地址)和(端口)。

3.线程的优先级在

(1)至(10)之间,数值越大(任务越紧急)。

4.构造方法是一种特殊的成员方法,构造方法名与(类名)相同。

5.Java语言只允许单继承,指每个类只能有一个(父类)。

6.Java源程序的扩展名是(.java),经过编译后的程序的扩展名是(.class)。

7.在一个时间只能由一个线程访问的资源称为(临界资源)。

访问临界资源的代码(临界代码)。

8.在多线程系统中,多个线程之间有(同步)和(互斥)两种关系。

二、选择题

1.关于选择结构下列哪个说法正确?

 (  )

A.if语句和else语句必须成对出现

B.if语句可以没有else语句对应

C.switch结构中每个case语句中必须用break语句

D.switch结构中必须有default语句

2.while循环和do…while循环的区别是:

  (  )

A.没有区别,这两个结构任何情况下效果一样

B.while循环比do…while循环执行效率高

C.while循环是先循环后判断,所以循环体至少被执行一次

D.do…while循环是先循环后判断,所以循环体至少被执行一次

3.关于for循环和while循环的说法哪个正确?

 (  )

A.while循环先判断后执行,for循环先执行后判断。

B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果

C.两种循环任何时候都不可以替换

D.两种循环结构中都必须有循环体,循环体不能为空

4.下列修饰符中与访问控制无关的是 (  )

A.private   B.public

C.protectedD.final

5.void的含义:

  (  )

A.方法没有返回值   B.方法体为空

C.没有意义    D. 定义方法时必须使用

6.return语句:

  (  )

A.只能让方法返回数值    B.方法都必须含有

C.方法中可以有多句return  D.不能用来返回对象

7.关于对象成员占用内存的说法哪个正确?

  (  )

A.同一个类的对象共用同一段内存

B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间

C.对象的方法不占用内存

D.以上都不对

8.下列说法哪个正确?

A.不需要定义类,就能创建对象

B.对象中必须有属性和方法

C.属性可以是简单变量,也可以是一个对象

D、属性必须是简单变量

9.下列说法哪个正确?

  (  )

A、一个程序可以包含多个源文件

B、一个源文件中只能有一个类

C、一个源文件中可以有多个公共类

D、一个源文件只能供一个程序使用

10.关于方法main()的说法哪个正确?

(  )

A.方法main()只能放在公共类中

Bmain()的头定义可以根据情况任意更改

C.一个类中可以没有main()方法

D.所有对象的创建都必须放在main()方法中

11.构造函数何时被调用?

  (  )

A、创建对象时     B、类定义时

C、使用对象的方法时  D、使用对象的属性时

12. 抽象方法:

  (  )

A、可以有方法体

B、可以出现在非抽象类中

C、是没有方法体的方法

D、抽象类中的方法都是抽象方法 

13.关于继承的说法正确的是:

  (  )

A、子类将继承父类所有的属性和方法。

B、子类将继承父类的非私有属性和方法。

C、子类只继承父类public方法和属性

D、子类只继承父类的方法,而不继承属性

14.关于构造函数的说法哪个正确?

  (  )

A、一个类只能有一个构造函数

B、一个类可以有多个不同名的构造函数

C、构造函数与类同名

D、构造函数必须自己定义,不能使用父类的构造函数

15.this和super:

A、都可以用在main()方法中

B、都是指一个内存地址

C、不能用在main()方法中

D、意义相同

16.关于super的说法正确的是:

A、是指当前对象的内存地址

B、是指当前对象的父类对象的内存地址

C、是指当前对象的父类

D、可以用在main()方法中

17.覆盖与重载的关系是  (  )

A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中

B.覆盖方法可以不同名,而重载方法必须同名

C.final修饰的方法可以被覆盖,但不能被重载

D.覆盖与重载是同一回事

18.关于接口哪个正确?

  (  )

A、实现一个接口必须实现接口的所有方法

B.一个类只能实现一个接口

C.接口间不能有继承关系

D.接口和抽象类是同一回事

19.异常包含下列哪些内容?

  (  )

A.程序执行过程中遇到的事先没有预料到的情况

B.程序中的语法错误  

C.程序的编译错误

D.以上都是

20.   对于已经被定义过可能抛出异常的语句,在编程时:

  (  )

A、必须使用try/catch语句处理异常,或用throws将其抛出

B.如果程序错误,必须使用try/catch语句处理异常

C.可以置之不理

D.只能使用try/catch语句处理

21.  字符流与字节流的区别在于(  )

A.前者带有缓冲,后者没有

B.前者是块读写,后者是字节读写

C.二者没有区别,可以互换使用

D.每次读写的字节数不同

22.下列流中哪个不属于字节流  (  )

A.FileInputStream

B.BufferedInputStream

C.FilterInputStream

D.InputStreamReader

三、程序填空题

1.publicclassSum{

publicstaticvoidmain(String[]args){

intj=10;

System.out.println("jis:

"+j);

calculate(j);

System.out.println("Atlast,jis:

"+j);

}

staticvoidcalculate(intj){

for(inti=0;i<10;i++)

j++;

System.out.println("jincalculate()is:

"+j);

}

}

输出结果为:

jis:

 

(1)

jincalculate()is:

(2)

Atlastjis:

 (3)

答案:

(1)10;

(2)20;(3)10。

2.按要求填空

abstractclassSuperAbstract{

voida(){…}

abstractvoidb();

abstractintc(inti);

}

interfaceAsSuper

{

voidx();

}

abstractclassSubAbstractextendsSuperAbstractimplementsAsSuper

{

publicvoidb(){…}

abstractStringf();

}

publicclassInheritAbstractextendsSubAbstract{

publicvoidx(){…}

publicintc(inti){…}

publicStringf(){…}

publicstaticvoidmain(Stringargs[]){

InheritAbstractinstance=newInheritAbstract();

instance.x();

instance.a();

instance.b();

instance.c(100);

System.out.println(instance.f());

}

}

在以上这段程序中:

抽象类有:

SuperAbstract和 

(1)  (写出类名)

非抽象类有:

       

(2)  (写出类名)

接口有:

         (3)  (写出接口名)

AsSuper中的x()方法是(4)方法,所以在InheritAbstract中必须对它进行(5)       

答案:

(1)SuperAbstract;

(2)InheritAbstract;

(3)AsSuper;

(4)抽象;

(5)覆盖和实现。

3.按注释完成程序

publicclassLeaf{

privateinti=0;//此属性值用于检验

Leafincrement(){//定义方法increment(),返回值是Leaf类的对象

i++;

return

(1);//将当前对象的地址作为返回值返回

}

voidprint(){

System.out.println("i="+i);

}

publicstaticvoidmain(Stringargs[]){

Leafx=

(2);//创建Leaf类的对象x

x.increment().increment().increment().print();

}//多次调用方法increment(),返回的都是x的地址,i值表示调用次数

}

输出结果为i=(3)

答案:

(1)this;

(2)newLeaf();

(3)3

4.  按注释提示完成文件复制的程序

//FileStream源代码如下:

importjava.io.*;

classFileStream{

publicstaticvoidmain(Stringargs[]){

try{

FileinFile=newFile("file1.txt");//指定源文件

FileoutFile=newFile("file2.txt");//指定目标文件

FileInputStreamfis=

(1);

FileOutputStreamfos=newFileOutputStream(outFile);

intc;

//逐字节从源文件中输入,再输出到fos流

while((c=fis.read())!

=-1)

(2);

fis.close();

fos.close();

}

catch(Exceptione){

System.out.println("FileStreamsTest:

"+e);

}

}

}

答案:

(1)newFileInputStr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1