temp=score[index];
}
}
A.求最大数
B.求最小数
C.找到数组最后一个元素
D.编译出错
16.在Java中,关于构造方法,下列说法错误的是()
a)构造方法的名称必须与类名相同
b)构造方法可以带参数
c)构造方法不可以重载
d)构造方法绝对不能有返回值
17.执行下面代码结果()
for(inti=0;;){
System.out.println("这是"+i);
break;
}
A、语法错误,缺少表达式2和表达式3
B、死循环
C、程序什么都不输出
D、输出:
这是0
18.下列选项中关于Java中super关键字的说法正确的是()。
A、super关键字是在子类对象内部指代其父类对象的引用
B、super关键字不仅可以指代子类的直接父类,还可以指代父类的父类
C、子类通过super关键字只能调用父类的方法,而不能调用父类的属性
D、子类通过super关键字只能调用父类的属性,而不能调用父类的方法
19.Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是()
a)C不仅继承了B中的成员,同样也继承了A中的成员
b)C只继承了B中的成员
c)C只继承了A中的成员
d)C不能继承A或B中的成员
20.以下关于抽象类和接口的说法错误的是()
A.抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承。
但是一个类却可以实现多个接口。
B.在抽象类中可以没有抽象方法
C.实现抽象类和接口的类必须实现其中的所有方法,除非它也是抽象类。
接口中的方法都不能被实现
D.接口中定义的变量默认是publicstaticfinal型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。
E.接口中的方法都必须加上public关键字。
二、多选题(10*2=20分)
1.关于类的描叙正确的是()
A.在类中定义的变量称为类的成员变量,在别的类中可以直接使用
B.局部变量的作用范围仅仅在定义它的方法内,或者是在定义它的控制流块中
C.使用别的类的方法仅仅需要引用方法的名字即可
D.一个类的方法使用该类的另一个方法时可以直接引用方法名
2.下列关于字符串的描叙中错误的是()(选择两项)
A.字符串是对象
B.String对象存储字符串的效率比StringBuffer高
C.可以使用StringBuffersb="这里是字符串"声明并初始化StringBuffer对象sb
D.String类提供了许多用来操作字符串的方法:
连接,提取,查询等
3.下面关于数组的说法中,错误的是()(选择两项)
A.在类中声明一个整数数组作为成员变量,如果没有给它赋值,数值元素值为空
B.数组可以在内存空间连续存储任意一组数据
C.数组必须先声明,然后才能使用
D.数组本身是一个对象
4.给定java代码如下所示,在A处新增下列()方法,是对cal方法的重载(选择两项)
publicclassTest
{
publicvoidcal(intx,inty,intz)
{
}
//A
}
A.publicintcal(intx,inty,floatz){return0;}
B.publicintcal(intx,inty,intz){return0;}
C.publicvoidcal(intx,intz){}
D.publicviodcal(intz,inty,intx){}
5.在Java中,下面对于构造函数的描述错误的是()(选择两项)
A、类不一定要显式定义构造函数
B、构造函数的返回类型是void
C、如果构造函数不带任何参数,那么构造函数的名称和类名可以不同
D、一个类可以定义多个构造函数
6.在Java接口中,下列选项中有效的方法声明是()。
(选择二项)
A、publicvoidaMethod();
B、voidaMethod();
C、protectedvoidaMethod();
D、privatevoidaMethod();
7.已知如下代码:
1:
classExample{
2:
Stringstr;
3:
publicExample(){
4:
str="example";
5:
}
6:
publicExample(Strings){
7:
str=s;
8:
}
9:
}
10:
classDemoextendsExample{
11:
}
12:
publicclassTest{
13:
publicvoidf(){
14:
Exampleex=newExample("Good",12);
15:
Demod=newDemo("Good");
16:
}}
哪句语句会导致错误?
A、line3
B、line6
C、line10
D、line14
E、line15
8.下面哪一个是合法的数组声明和构造语句()
A.int[]ages=newint[100];
B.intages=newint[100];
C.intages[]=newint[100];
D.int[]ages=newint(100);
9.Java面向对象的特性包括()
A.多态
B.继承
C.封装
D.派生
E.抽象
10.用下面那个修饰符修饰的变量,可以在不同包的子类方法?
()
A.public
B.private
C.protected
D.默认的
三、填空题(20分)
1.当你尝试编译以下程序的时候,运行结果是什么__1____
abstractclassBase{
abstractpublicvoidmyfunc();
publicvoidanother(){
System.out.println("Anothermethod");
}
}
publicclassAbsextendsBase{
publicstaticvoidmain(Stringargv[]){
Absa=newAbs();
a.amethod();
}
publicvoidmyfunc(){
System.out.println("Myfunc");
}
publicvoidamethod(){
myfunc();
}
}
2、以下程序通过线程的方式实现两个窗口同步卖票的程序,请在程序适当地方将代码补充完整实现给功能,并能保证卖出的票不会出现坐位相同或坐位为负数的情况;
publicclassTicketThreadDemo{
publicstaticvoidmain(String[]args){
TicketThreadticket=newTicketThread();
//创建两个线程,共享ticket资源,并启动
Threadta=______2__________
ta.start();
Threadtb=____________3________________
tb.start();
}
}
classTicketThread__4__________{
privateinttickets=20;
//实现线程方法并实现互斥
public_5voidrun(){
while(true){
if(tickets>0){
try{
Thread.sleep(1000);//先让线程暂停1秒种
System.out.println(Thread.currentThread().getName()
+"卖出一张票"+tickets--);
}catch(Exceptione){
e.printStackTrace();
}
}
}
}
}
3.以下程序是通过实现接口的方式来创建了一个计时器的功能,在显示的窗体中显示计时的数字,请将代码补充完整;
importjava.awt.Frame;
importjava.awt.Label;
publicclassCountFrameextendsFrame_6_{
//实例化一个label标签
Labellabel=newLabel("100",1);
publicCountFrame(){
//把label标签添加到窗体上
this.add(label);
//设置窗体的大小
this.setSize(150,50);
//实例化时间线程类
this.setVisible(true);
}
//实现线程方法
Publicvoidrun(){
for(inti=1;i<=100;i++){
label.setText(String.valueOf(i));
try{
Thread.sleep(1000);
}catch(Exceptione){
e.printStackTrace();
}
}
}
publicstaticvoidmain(Stringargs[]){
//启动线程并运行该窗体
CountFramecf=newCountFrame();
_____________7____________
}
}
4.生成0到100之间的随机数的方法__8.
5.面向对象的特征包括封装、_______9_________、__________10________和抽象;
四、简答题(5*4=20分)
1、final, finally, finalize的区别;
2、List、Map、Set三个接口,存取元素时,各有什么特点
3、请说明try、catch、throw、throws和finally各自的作用?
4、编写程序用线程模拟用存折和卡取款的程序(即一个账号有一个存折和一张卡)?
5、用JDBC技术编写程序连接数据库,并查询出Account表的信息。