JAVA语言程序设计期末考试试题及答案.docx

上传人:b****5 文档编号:27690744 上传时间:2023-07-04 格式:DOCX 页数:47 大小:75.11KB
下载 相关 举报
JAVA语言程序设计期末考试试题及答案.docx_第1页
第1页 / 共47页
JAVA语言程序设计期末考试试题及答案.docx_第2页
第2页 / 共47页
JAVA语言程序设计期末考试试题及答案.docx_第3页
第3页 / 共47页
JAVA语言程序设计期末考试试题及答案.docx_第4页
第4页 / 共47页
JAVA语言程序设计期末考试试题及答案.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

JAVA语言程序设计期末考试试题及答案.docx

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

JAVA语言程序设计期末考试试题及答案.docx

JAVA语言程序设计期末考试试题及答案

JAVA语言程序设计考试试卷及部分答案

一、单选题:

(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。

1.下列语句序列执行后,k的值是(B)。

intm=3,n=6,k=0。

while((m++)<(--n))++k。

A)0B)1C)2D)3

2.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是(B)。

A)i=i+2B)a[0]=7。

C)i++---j。

D)a(0)=66。

3.Java语言的类间的继承关系是(B)。

A)多重的B)单重的C)线程的D)不能继承

4.设有定义inti=6。

,则执行以下语句后,i的值为(C)。

i+=i-1。

A)10B)121C)11D)100

5.下列选项中,用于在定义子类时声明父类名的关键字是(C)。

A)interfaceB)packageC)extendsD)class

6.若已定义byte[]x={11,22,33,-66}。

其中0咏W3,则对x数组元素错误的引用是(C)。

A)x[5-3]B)x[k]C)x[k+5]D)x[0]

7.下列语句序列执行后,charch1='A',ch2='W'。

if(ch1+2

if(i-1>j)i--。

elsej--。

A)15B)16C)7D)89.下列语句序列执行后,inti=10,j=18,k=30。

switch(j-i){case8:

k++。

case9:

k+=2。

case10:

k+=3。

default:

k/=j。

}

A)31B)32C)2D)3310.下面语句执行后,for(inti=0,j=1。

j<5

ch1的值是(B)

i的值是(D)。

k的值是(C)

i的值是(B)。

j+=3)i=i+j。

A)4B)5C)6D)7

11.设有定义floatx=3.5f,y=4.6f,z=5.7f;则以下的表达式中,值为true的是

(B)。

 

A)x>y||x>zB)x!

=y

C)z>(y+x)D)x

(x

12.下列语句序列执行后,i的值是(D)。

inti=16。

do{i/=2。

}while(i>3)。

A)16B)8C)4D)2

13.以下由for语句构成的循环执行的次数是(B)。

for(inti=0。

true。

i++)。

A)有语法错,不能执行B)无限次

C)执行1次D)一次也不执行14.定义类头时能使用的修饰符是(C)。

A)privateB)staticC)abstractD)protected

15.设int型变量a、b,float型变量x、y,char型变量ch均已正确定义并赋值,正确的switch语句是D)。

A)switch(x+y)B)switch(ch+1)

{}{}

C)switchchD)switch(a+b)。

{}{}

16.下列最终属性i的定义中,正确的是()。

A)staticfinalinti=100。

B)finalinti=1.2。

C)finali='w'。

D)finalchari。

17.下列类定义中,不正确的是(C)

A)classx{}

B)classxextendsy{}

C)staticclassximplementsy1,y2{}

D)publicclassxextendsApplet{}

18.设x、y为已定义的类名,下列声明x类的对象x1的语句中正确的是()。

A)staticxx1。

B)publicxx1=newx(int123)。

C)yx1。

D)xx1=x()。

19.设i、j、k为类x中定义的int型变量名,下列类x的构造函数中不正确的是(B)。

A)x(intm){...}B)voidx(intm){...}

C)x(intm,intn){...}D)x(inth,intm,intn){...}

20.下列方法定义中,正确的是(A)。

A)intx(){charch='a'。

return(int)ch。

}

B)voidx(){...returntrue。

}

C)intx(){...returntrue。

}

D)intx(inta,b){returna+b。

}

21.用于定义类成员的访问控制权的一组关键字是(D)。

A)class,float,double,public

B)float,boolean,int,long

C)char,extends,float,double

D)public,private,protected

22.不能构成循环的语句是(C)。

A)for语句B)while语句C)switch语句D)do__while语句

23.下列程序段执行后b3的结果是(D)。

booleanb1=true,b2,b3。

24=b1?

b1:

b2。

A)0B)1C)trueD)false

25下面数据结构中,属于非线性的是(B)。

A)线性表B)树C)队列D)堆栈

11.设有定义inti=123。

longj=456。

下面赋值不正确的语句是(D)。

A)j=i。

B)j=(long)i。

C)i=(int)j。

D)i=j。

二、填空题:

(每空1分)

1.构造函数_没__有返回值。

2.Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和___double两种具体类型。

3.创建类对象的运算符是__new。

4.当整型变量n的值不能被13除尽时,其值为false的Java语言表达式是__n%13==0。

5.在Java语言中,所有的数组都有一个lenght属性,这个属性存储了该数组的__元素个数。

6.定义类就是定义一种抽象的父类,它是所有具有一定共性的对象的

抽象描述。

7.在Java语言中,使用__平台无关___、___java虚拟机___等技术,实现软件重

8.表达式3/6*5的计算结果是0。

9.下面是一个类的定义:

publicclass_intMyclass

{

intx,y。

Myclass(inti,___=0)//构造函数

{

x=i。

y=j。

}

}

10.下面是一个JavaApplication的主类的定义,其功能是输出所有命令行参数。

importjava.io.*。

publicclassMyClass

{

publicstaticvoidmain(Stringargs[])

{

if(args.length!

=_0__)

for(inti=0。

i

i++)

System.out.println(_"i="+i)。

elseSystem.out.println(没有命令行参数)。

}

11下面是一个小程序的主类myprogram的定义,其中A、B是该主类所在源程序中已定义的另两个类的类名:

importjavaawt.*;

importjavaapplet.*;

publicclassmyprogramextendsApplet//定义小程序的主类

{

Aa。

Bb。

publicmyprogram___init()

{a=newA();b=___new__B()。

}

}

12.Java的复合数据类型有:

类、数组和___接口等。

Java的简单数据类型有:

数值类型(整形和浮点类型),自负类型和布尔类型

13.表达式3/6*5的计算结果是_0。

14.定义初值为10的10次方的长整型变量lvar的语句是:

long

lvar=1*e10。

15.顺序结构、分支结构(或称选择结构)、__循环结构是结构化程序设计

的三种基本流程控制结构。

16.以下方法m的功能是求两参数之积的整数部分。

intm(floatx,floaty)

{k=(int)x*y。

}

17.Java源程序文件编译后产生的文件称为字节码文件,其扩展名为

___.class。

18.Java和c++都是面向对象的程序设计语言

三、程序分析:

(每题4分)

1.下面是一个排序的程序:

importjava.io.*。

publicclassTest56_Sort

{

publicstaticvoidmain(Stringargs[])

{

int[]a={42,99,5,63,95,36,2,69,200,96}。

System.out.println(排序前的数据序列:

)。

ShowArray(a)。

Sort(a)。

System.out.println(排序后的数据序列:

)。

ShowArray(a)。

}

publicstaticvoidSort(int[]x)

{

intw。

for(inti=1。

i

i++)

{

for(intj=0。

j

j++)

if(x[j]>x[j+1])

{w=x[j]。

x[j]=x[j+1]。

x[j+1]=w。

}

/*if(i==1||i==2)ShowArray(x)。

if(i==2)break。

*/

}

}

publicstaticvoidShowArray(intb[])

{

for(inti=0。

i

i++)

System.out.print("b[i"+i+"]="+b[i])。

System.out.println()。

}

}

问题:

如果将方法Sort()中的一对注释符(/**/)去掉,程序输出的结果是什么?

排序前的数据序列:

b[0]=42b[1]=99b[2]=5b[3]=63b[4]=95b[5]=36b[6]=2b[7]=69b[8]=200b[9]=96b[0]=42b[1]=5b[2]=63b[3]=95b[4]=36b[5]=2b[6]=69b[7]=99b[8]=96b[9]=200

b[0]=5b[1]=42b[2]=63b[3]=36b[4]=2b[5]=69b[6]=95b[7]=96b[8]=99b[9]=200排序后的数据序列:

b[0]=5b[1]=42b[2]=63b[3]=36b[4]=2b[5]=69b[6]=95b[7]=96b[8]=99b[9]=200

2.请写下程序的输出结果:

publicclassTest52

Stringstr1="Hello,Javaworld!

\t"。

Stringstr2="Hello,students!

"。

publicstaticvoidmain(Stringargs[]){

System.out.print(str1)。

System.out.println(str2)。

}

}

输出结果:

3.请写下程序的输出结果:

publicclassT2_4{

publicstaticvoidmain(String[]args){

inti,j。

charc='*'。

for(i=0。

i<5。

i++)

{

for(j=0。

j<=i。

j++)

System.out.print("*")。

System.out.println()。

}

}

输出结果:

4、请写下程序的输出结果:

publicclassex2_2

{

publicstaticvoidmain(Stringargs[])

{

intx,y。

byteb=6。

floatz=1.234f。

doublew=1.23。

booleanflag。

x=12。

y=300。

flag=x>y。

System.out.println("x>y=="+flag)。

flag=z>w。

System.out.println("z>w=="+flag)。

}

}

四、问答题:

(每题5分,)

1.Java的接口和C++的虚类的相同和不同处。

由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。

与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。

当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是publicstatic,所有方法默认情况下是public.一个类可以实现多个接口。

2.垃圾回收的优点和原理。

并考虑2种回收机制。

Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的

内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。

由于有个垃圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。

垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。

垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。

回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。

3,谈谈final,finally,finalize的区别。

Final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新

的子类,不能作为父类被继承。

因此一个类不能既被声明为abstract的,又被声明为final的。

将变量或方法声明为final,可以保证它们在使用中不被改变。

被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。

被声明为final的方法也同样只能使用,不能重载。

Finally—再异常处理时提供finally块来执行任何清除操作。

如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果有的话)。

Finalize-方法名。

Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。

这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。

它是在Object类中定义的,因此所有的类都继承了它。

子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。

finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。

4,数组有没有length()这个方法?

String有没有length()这个方法?

举例说明使用方法?

数组没有length()这个方法,有length的属性。

String有有length()这个方法。

5.Java中的异常处理机制的简单原理和应用。

当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。

违反语义规则包括2种情况。

一种是JAVA类库内置的语义检查。

例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException.另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。

所有的异常都是java.lang.Thowable的子类。

五、程序设计:

(每题11分,共33分)

1、编程:

编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。

但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。

2、编程求解:

所有两位整数能被3整除的数的和,以及不能被3整除的数的各位数字之和

3、设计一个程序求解e的值。

精度达到1.0e-6,

4、请设计一个对N个数进行排序的程序

1、

关于Java语言

叙述错误

C

A

.Java

言具

B

.Java

是一

种面

C

.Java

语言

中的

D.

Java的垃

圾收集机

制自动回

收程

已不

再使

用的对象

2、

以下叙

述正确

的是:

B

确台

a

A

.构

造方

法必

public

B

.main

方法必

public

C

.Java应

用程序的文

件名

任意

D

.构造

方法

应该

声明

void

3、

关于Java

中数据

类型叙

述正

(B

A

、整型

数据在不同

长度不

B.

boolean

类型数

据只有

2个

true

和false

C

.数

组属

于简

D

.Java中的指

针类型

C

的一

4、

设intx=1,floaty=2,

则表达式

x/

y

是:

(D

、选择题(每道题只有一个正确答案,每小题

2分,共30分)15道题

A

0

C

2

D

5

、以下

法错

是:

A

A.

int

x=1

?

y=2

?

z=3

B.

for

(int

x

=10,y=0

?

x>0;

x++)

C

while

(x>5)

D

for(

6、

关于类

叙述正

的是:

(A

B

1

A.Java的类分为两大部分:

系统定义的类和用户自定义的类

B.类的静态属性和全局变量的概念完全一样,只是表达形式不同

C.

的成员至

一个

属性

和一

个方法

D

类是

例化

7、以

有关构造方

的说法,

正确的

是:

(A)

A

一个类

造方

法可

有多个

B

构造方

在类

定义

被调用

C.

构造方法只

对象

中的其

方法调用

D.

造方法可以和

同名,

也可

以和

类名不同

8、以

有关类的继

承的

述中,

正确的是

(D)

A•子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性

B.子类只能继承父类的方法,不能继承父类的属性

C.子类只能继承父类的非私有属性,不能继承父类的方法

9

、下

列属

器的组

B)

A

JButton

B

JPane

C

Canvas

D

JTextArea

10

void

含义

C)

A

方法

体为

B

.定

的方

没有

形参

C

的方法

有返

回值

D.

方法

回值不

加算

术运算

11

、关

Java

常的叙述

确的是:

D)

A.

常是

编写过程

码的语

法错误

B.

常是

编写过程

码的逻

辑错误

C.

异常

后程序

行马

上中止

D

可以

和处

理的

12

、所

有的异

皆继承哪

类?

C)

A

java.io.Exception

B

java.lang.Throwable

C

java.lang.Exception

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

当前位置:首页 > 工作范文 > 制度规范

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

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