JAVA语言程序设计期末考试试题及答案3.pdf
《JAVA语言程序设计期末考试试题及答案3.pdf》由会员分享,可在线阅读,更多相关《JAVA语言程序设计期末考试试题及答案3.pdf(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JAV A语言程序设计考试试题及部分答案一、单选题:(每题1 分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。1.下列语句序列执行后,k的值是(B)。i nt m=3,n=6,k=0;w h i l e(m+)(一 n)+k;A)0 B)1 C)2 D)32.设 i、j 为 i nt 型变量名,a为 i nt 型数组名,以下选项中,正确的赋值语句是(B)。A)i =i +2 B)a 0 =7;C)i+j;D)a(0)=6 6;3 .Ja v a 语言的类间的继承关系是(B)。A)多重的B)单重的C)线程的D)不能继承4 .设有定义i n
2、t i =6 则执行以下语句后,i的值为(C)。i +=i -1;A)1 0 B)1 2 1 C)1 1 D)1 0 05 .下列选项中,用于在定义子类时声明父类名的关键字是(C)。A)i nt e r f a c e B)p a c k a g e C)e x t e nd s D)c l a s s6 .若已定义 b yt e x=1 1,2 2,3 3,-6 6;其中0 W k W 3,则对x 数组元素错误的引用是(C)。A)x 5-3 B)x k C)x k+5 D)x 0 7.下列语句序列执行后,c h i 的值是(B)oc h a r c h l=,A ,ch2-W ;i f(c
3、h l +2 j)i-;e l s e j一;A)1 5 B)1 6 C)7 D)89 .下列语句序列执行后,k的值是(C)oint i=10,j=18,k=30;switch(j-i)case 8:k+;case 9:k+=2;case 10:k+=3;default:k/=j;)A)31 B)32 C)2 D)3310.下面语句执行后,i 的值是(B)0for(int i=0,j=l;j y|x z B)x!=yC)z (y+x)D)x y&!(x 3);A)16 B)8 C)4 D)213.以下由for语句构成的循环执行的次数是(B)。for(int i=0;true;i+);A)有语法
4、错,不能执行B)无限次0执行1次 D)一次也不执行14.定义类头时能使用的修饰符是(C)oA)private B)static C)abstract D)protected15.设 int型变量a、b,float型变量x、y,char型变量c h 均已正确定义并赋值,正确的switch语句是D )oA)switch(x+y)B)switch(ch+1 )C)switch ch D)switch(a+b);16.下列最终属性i 的定义中,正 确 的 是()。A)static final int i=100;B)final int i=l.2;C)final i=w;D)final char i;
5、17.下列类定义中,不正确的是(C)oA)class x B)class x extends y .C)static class x implements yl,y2 .D)public class x extends Applet .18.设 x、y 为已定义的类名,下列声明x 类的对象xl的语句中正确的是()。A)static x xl;B)public x xl=new x(int 123);C)y xl;D)x xl=x();19.设 i、j、k 为 类 x 中定义的int型变量名,下列类x 的构造函数中不正确的是(B)。A)x(int m).B)void x(int m).C)x(i
6、nt m,int n).D)x(int h,int m,int n).20.下列方法定义中,正确的是(A)。A)int x()char ch=a;return(int)ch;B)void x().return true;C)int x().return true;D)int x(int a,b)return a+b;21.用于定义类成员的访问控制权的一组关键字是(D )。A)class,float,double,publicB)float,boolean,int,longC)char,extends,float,doubleD)public,private,protected22.不能构成循环
7、的语句是(C)0A)for 语句 B)while 语句 C)switch 语句 D)do_ while 语句23.下列程序段执行后b 3 的结果是(D )ob ool e a n b l=t r u e,b 2,b 3;24=b l?b l :b 2;A)0 B)1 C)t r u e D)f a l s e2 5 下面数据结构中,属于非线性的是(B)。A)线性表B)树 C)队 列 D)堆栈1 1.设有定义i nt i=1 2 3;l ong j=4 5 6;下面赋值不正确的语句是(D)。A)j=i;B)j=(l ong)i;C)i=(i nt)j;D)i=j;二、填空题:(每空1 分)1 .
8、构造函数一没一有返回值。2 .Ja v a 语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为f l oa t和 d ou b l e 两种具体类型。3 .创建类对象的运算符是 ne w o4 .当整型变量n 的值不能被1 3 除尽时,其 值 为 f a l s e 的 Ja v a 语言表达式是_n%1 3=0 o5 .在 Ja v a 语言中,所有的数组都有一个l e ng h t 属性,这个属性存储了该数组的元素个数。6 .定义类就是定义一种抽象的 父类,它是所有具有一定共性的对象的抽象描述。7.在 Ja v a 语言中,使用_ 平 台无关、ja v a 虚拟机 等技术,实现
9、软件重用。8.表达式3/6 *5的计算结果是0。9.下面是一个类的定义:p u b l i c c l a s s _ i nt My c l a ss(i n t x,y;M y c l a ss(i n t i,_ _ _=0 _ _ _ _)/构造函数(x=i;y=j;1 0.下面是一个J a v a Ap p l i c a t i o n 的主类的定义,其功能是输出所有命令行参数。i m p o r t j a v a.i o.*;p u b l i c c l a ss M y Cl a ss(p u b l i c st a t i c v o i d m a i n(S t r
10、 i n g a r g s)(i f(a r g s.l e n g t h !=_ 0 _)fo r(i n t i=0;i a r g s,l e n g t h;i+)S y st e m,o u t.p r i n t i n (_ i=+i);e l se S y st e m,o u t.p r i n t i n(没有命令行参数);)1 1 下面是一个小程序的主类m y p r o g r a m 的定义,其中A、B 是该主类所在源程序中已定义的另两个类的类名:i m p o r t j a v a a wt.*;i m p o r t j a v a a p p l e t.
11、*;p u b l i c c l a ss m y p r o g r a m e xt e n d s Ap p l e t 定义小程序的主类(A a;B b;p u b l i c m y p r o g r a m _ _ i n i t ()a=n e w A();b=_ _ n e w_ B();)1 2 .J a v a 的复合数据类型有:类、数组和接口等。J a v a 的简单数据类型有:数值类型(整形和浮点类型),自负类型和布尔类型1 3 .表达式3/6*5的计算结果是_0 o1 4 .定 义 初 值 为 10的 1 0 次 方 的 长 整 型 变 量 I v a r 的语句
12、是:l o n g1 v a r=l*e l 0。1 5 .顺序结构、分支结构(或称选择结构)、循环结构 是结构化程序设计的三种基本流程控制结构。1 6.以下方法m的功能是求两参数之积的整数部分。i n t m (fl o a t x,fl o a t y )_ _ _ _ _ _k=(int)x*y;1 7._J a v a 源程序文件编译后产生的文件称为一字节码文件,其扩展名为_ _.clas s o1 8.J a v a 和 C+都是面向对象的程序设计语言。三、程序分析:(每题4 分)1.下面是一个排序的程序:i m p o r t j a v a.i o.*;p u b l i c c
13、 l a ss T e st 5 6_ S o r t(p u b l i c st a t i c v o i d m a i n(S t r i n g a r g s)(i n t a=4 2,99,5,63,95,3 6,2,69,2 0 0,96);S y st e m.o u t.p r i n t i n (排序前的数据序列:);S h o wAr r a y(a);S o r t(a);S y st e m.o u t.p r i n t i n(排序后的数据序列:);S h o wAr r a y(a);)p u b l i c st a t i c v o i d S o
14、r t(i n t x)(i n t w;fo r(i n t i=l;i x.l e n g t h;i+)(fo r (i n t j=0;j xj+l j)W=xj ;xj =xj+l ;xj+l =w;/*i f(i=l|i=2)S h o wAr r a y(x);i f(i=2)b r e a k;*/p u b l i c st a t i c v o i d S h o wAr r a y(i n t b )fo r (i n t i=0;i 4 2 b l =99b 2 =5 b 3 =63 b 4 =95 b 5 =3 6b 6=2 b 7=69b 8 =2 0 0 b 9
15、 =96b 0 =4 2 b El =5 b 2 =63 b =95 b 4 =3 6b 5 =2 b 6=69b 7=99b 8=96b 9=2 0 0b 0 =5 b l =4 2 b 2 =63 b 3 =3 6b 4 =2 b 5 =69b 6 =95 b 7 =96b 899b 9 =2 0 0排序后的数据序列:b 0 =5 b l =4 2 b 2 =63 b =3 6b 4 =2 b 5 =69b 6=95 b 7=96b 8=99b 9=2 0 02 .请写下程序的输出结果:p u b l i c c l a ss T e st 5 2(S t r i n g st r l=/
16、H e l l o,J a v a wo r l d!t”;S t r i n g st r 2=,/H e l l o,st u d e n t s!;p u b l i c st a t i c v o i d m a i n(S t r i n g a r g s)(S y st e m,o u t.p r i n t(st r l);S y st e m,o u t.p r i n t l n(st r 2);)输出结果:3.请写下程序的输出结果:p u b l i c c l a ss T 2 _ 4 p u b l i c st a t i c v o i d m a i n(S
17、t r i n g a r g s)i n t i,j;c h a r c=,*;fo r (i=0;i 5;i+)(fo r(j=0;j y;S y st e m.o u t.p r i n t I n (,xy=,/+f l a g);fl a g二z w;S y st e m,o u t.p r i n t I n (Z,z w=,+f l a g);)四、问答题:(每 题5分,)1 .J a v a的接口和C+的虚类的相同和不同处。由于J a v a不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性
18、,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是p u b l i c s t a t i c,所有方法默认情况下是p u b l i c.一个类可以实现多个接口。2 .垃圾回收的优点和原理。并考虑2种回收机制。J a v a语言中一个显著的特点就是引入了垃圾回收机制,使C+程序员最头疼的内存管理的问题迎刃而解,它使得J a v a程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,J a v a中的对象不再有 作用域”的概念,只有对象的引用才有“作用域垃圾回收可以有效的防止内存泄露,有效的使用可以使用
19、的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。3,谈谈 f i na l,f i na l l y,f i na l i z e 的区别。F i na l一修 饰 符(关键字)如果一个类被声明为f i na l,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为a b s t ra c t的,又被声明为f i na l的。将变量或方法声明为f i na l,可以保证它
20、们在使用中不被改变。被声明 为f i na l的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为f i na l的方法也同样只能使用,不能重载。F i na l l y 一再异常处理时提供f i na l l y块来执行任何清除操作。如果抛出一个异常,那么相匹配的c a t c h子句就会执行,然后控制就会进入f i na l l y块(如果有的话)。F i na l i z e 一方法名。J a v a技术允许使用f i na l i z e ()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的
21、。它 是 在O b j e c t类中定义的,因此所有的类都继承了它。子 类 覆 盖f i n a l i z e O方法以整理系统资源或者执行其他清理工作。f i n a l i z e()方法是在垃圾收集器删除对象之前对这个对象调用的。4,数组有没有l e n gt h()这个方法?S t r i n g有没有l e n gt h()这个方法?举例说明使用方法?数组没有l e n gt h()这个方法,有 l e n gt h的属性。S t r i n g有有l e n gt h()这个方法。5.Ja v a 中的异常处理机制的简单原理和应用。当 JA V A 程序违反了 JA V A 的
22、语义规则时,JA V A 虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JA V A 类库内置的语义检查。例如数组下标越界,会 引 发 I n d e x Ou t Of B o u n d s Ex c e p t i o n;访 问 n u l l 的对象时会引发N u l l Po i n t e r Ex c e p t i o n.另一种情况就是JA V A 允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用t hr o w 关键字引发异常。所有的异常都是 j a v a.l a n g.T ho w a b l e 的子类。五、程序设计
23、:(每题1 1 分,共 3 3 分)1、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如 我A B C 4,应该截为 我A B ,输入“我 A B C 汉 DEF”,6,应该输出为 我A B C 而不是 我A B C+汉的半个2、编程求解:所有两位整数能被3 整除的数的和,以及不能被3 整除的数的各位数字之和。3、设计一个程序求解e的值。精度达到1.0 e-6,4、请设计一个对N 个数进行排序的程序一、选择题(每道题只有一个正确答案,每小题2 分,共 3 0 分)1 5 道题1、关于Ja v a 语言叙述错误的是:(C )A.Ja
24、 v a 语言具有跨平台性B.Ja v a 是一种面向对象的语言C.Jav a语言中的类可以多继承D.Jav a的垃圾收集机制自动回收程序已不再使用的对象2、以下叙述正确的是:(B )的确台aA.构造方法必须是pu b l i c方法B.mai n 方法必须是pu b l i c方法C.Jav a应用程序的文件名可以是任意的D.构造方法应该声明为v oi d类型3、关于Jav a中数据类型叙述正确的是:(B )A、整型数据在不同平台下长度不同B.b ool e an 类型数据只有2 个值,t ru e 和 f al s eC.数组属于简单数据类型D.Jav a中的指针类型和C 语言的一样4、设
25、 i n t x=l,f l oat y=2,则表达式 x/y 的值是:(D )A.0B.1C.2D.以上都不是5、以下语句有语法错的是:(A )A.i n t x=l;y=2;z=3B.f or(i n t x=10,y=0;x0;x+);C.wh i l e (x5);D.f or(;);6、关于类和对象的叙述正确的是:(A )A.Jav a的类分为两大部分:系统定义的类和用户自定义的类B.类的静态属性和全局变量的概念完全一样,只是表达形式不同C.类的成员至少有一个属性和一个方法D.类是对象的实例化7、以下有关构造方法的说法,正确的是:(A )A.一个类的构造方法可以有多个B.构造方法在类
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 语言程序设计 期末考试 试题 答案
限制150内