}
}
问题:
如果将方法Sort()中的一对注释符(/**/)去掉,程序输出的结果是什么?
排序前的数据序列:
b[0]=42b[1]=99b[2]=5b[3]=63b[4]=95b[5]=36b[6]=2b[7]=69b[8]=200b[9]=96
b[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[])
{
}
}
输出结果:
3.请写下程序的输出结果:
publicclassT2_4{
publicstaticvoidmain(String[]args)
{
inti,j;
charc='*';
for(i=0;i<5;i++)
{
for(j=0;j<=i;j++)
}
}
}
输出结果:
4、请写下程序的输出结果:
publicclassex2_2
{
publicstaticvoidmain(Stringargs[])
{
intx,y;
byteb=6;
floatz=1.234f;
doublew=1.23;
booleanflag;
x=12;
y=300;
flag=x>y;
flag=z>w;
}
}
四、问答题:
(每题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中的异常处理机制的简单原理和应用。
五、程序设计:
(每题11分,共33分)
1、编程:
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。
2、编程求解:
所有两位整数能被3整除的数的和,以及不能被3整除的数的各位数字之和。
3、设计一个程序求解e的值。
精度达到1.0e-6,
4、请设计一个对N个数进行排序的程序
一、选择题(每道题只有一个正确答案,每小题2分,共30分)15道题
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)
?
?
A.0
?
?
B.1
?
?
C.2
?
?
D.以上都不是
5、以下语句有语法错的是:
(A)
?
?
A.intx=1;y=2;z=3
?
?
B.for(intx=10,y=0;x>0;x++);
?
?
C.while(x>5);
?
?
D.for(;;);
6、关于类和对象的叙述正确的是:
(A)
A.Java的类分为两大部分:
系统定义的类和用户自定义的类
B.类的静态属性和全局变量的概念完全一样,只是表达形式不同
C.类的成员至少有一个属性和一个方法
D.类是对象的实例化
7、以下有关构造方法的说法,正确的是:
(A)
?
?
A.一个类的构造方法可以有多个
?
?
B.构造方法在类定义时被调用
?
?
C.构造方法只能由对象中的其它方法调用
?
?
D.构造方法可以和类同名,也可以和类名不同
8、以下有关类的继承的叙述中,正确的是:
(D)
?
?
A.子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性
?
?
B.子类只能继承父类的方法,不能继承父类的属性
?
?
C.子类只能继承父类的非私有属性,不能继承父类的方法
?
?
D.子类不能继承父类的私有属性
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.long
?
?
B.sizeof
?
?
C.instanceof
?
?
D.const
14、为实现进程之间的通信,需要使用下列那种流才合适?
(D)
?
?
A.Datastream
?
?
B.Filestream
?
?
C.Bufferedstream
?
?
D.Pipedstream
15、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?
(D)
?
?
A.ActionListener
?
?
B.MouseListener
?
?
C.MouseMotionListern
?
?
D.ItemListener
二、填空题(每空1分,共20分)
1、面向对象程序设计所具有的基本特征是:
___抽象性___,_封装性___,_继承性__,_多态性__
2、数组x定义如下
?
?
intx[][]=newint[3][2]
?
?
则x..length的值为____3________,
?
?
?
?
x[0].length的值为_____2_______。
3、Java中实现多线程一般使用两种方法,一是___继承Thread类_________,二是_____实现Runnable方法__________
4、Java的图形用户界面设计中,有很多布局管理器用来摆放组件的位置,一般用到的布局管理器有(列出四种即可)__FlowLayout_____,___GridLayout_____,__BorderLayout_____,___CardLayout_______
5、Applet常用的方法是:
__init()_、__run()__、__stop()__和destroy()。
三、阅读程序,写出程序的输出结果(每题5分,共20分)
1、classA{
privateintprivateVar;
A(int_privateVar){
?
?
?
?
?
?
privateVar=_privateVar;
}
booleanisEqualTo(AanotherA){
if(this.privateVar==anotherA.privateVar)
returntrue;
else
returnfalse;
}
?
?
?
?
}
程序的输出结果为:
____false_____
?
?
2、classA{
?
?
doublef(doublex,doubley){
?
?
returnx*y;
?
?
}
?
?
}
?
?
classBextendsA{
?
?
doublef(doublex,doubley){
?
?
returnx+y;
?
?
}
?
?
}
?
?
publicclassTest{
?
?
publicstaticvoidmain(Stringargs[]){
?
?
Bobj=newB();
?
?
?
?
}
?
?
1.下面哪些是short型的取值范围[C]
A.-27–27-1
B.0–216-1
C.-215–215-1
D.-231–231-1
2.下面哪些是合法的标识符[ABE]
A.$persons
B.TwoUsers
C.*point
D.this
E._endline
3.哪些是将一个十六进制值赋值给一个long型变量[D]
A.longnumber=345L;
B.longnumber=0345;
C.longnumber=0345L;
D.longnumber=0x345L;
4.下面的哪些程序片断可能导致错误。
[BD]
A.
Strings="Gonewiththewind";
Stringt="good";
Stringk=s+t;
B.
Strings="Gonewiththewind";
Stringt;
t=s[3]+"one";
C.
Strings="Gonewiththewind";
Stringstandard=s.toUpperCase();
D.
Strings="homedirectory";
Stringt=s-"directory";
5.在//pointx处的哪些声明是合法的[DE]
classPerson{
privateinta;
publicintchange(intm){returnm;}
}
publicclassTeacherextendsPerson{
publicintb;
publicstaticvoidmain(Stringarg[]){
Personp=newPerson();
Teachert=newTeacher();
inti;
//pointx
}
}
A.i=m;
B.i=b;
C.i=p.a;
D.i=p.change(30);
E.i=t.b;
6.当Frame的大小被改变时,Frame中的按钮的位置也可能被改变,请问此时使用的是什么布局管理器[B]
A.BorderLayout
B.FlowLayout
C.CardLayout
D.GridLayout
7.给出下面的代码片断
1publicvoidcreate(){
2VectormyVect;
3myVect=newVector();
4}
下面的哪些陈述是正确的?
[ADE]
A.第二行的声明不会为变量myVect分配内存空间。
//指的是堆空间,只是在栈中分配;这里不用较真.自己理解就好;
B.第二行的声明分配一个到Vector对象的引用的内存空间。
C.第二行语句创建一个Vector类对象。
D.第三行语句创建一个Vector类对象。
E.第三行语句为一个Vector类对象分配内存空间。
//分配栈空间,相当于指针,但是不分配"到Vector对象的引用的空间";选项二的意思是分配了堆空间;
8.下面的哪些答案可以用以表示八进制值8?
[A]
A.010
B.0x10
C.08