Java程序设计慕课版自测试题5套及答案大学期末复习资料.docx
《Java程序设计慕课版自测试题5套及答案大学期末复习资料.docx》由会员分享,可在线阅读,更多相关《Java程序设计慕课版自测试题5套及答案大学期末复习资料.docx(21页珍藏版)》请在冰点文库上搜索。
Java程序设计慕课版自测试题5套及答案大学期末复习资料
自测试卷一
笔试试卷
姓名:
笔试时间:
1.编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为()
A..javaB..classC..htmlD..exe
2.抽象类和抽象方法有哪些规则?
3.不允许作为类及类成员的访问控制符是()。
A.publicB.privateC.staticD.protected
4.设x=1,y=2,z=3,则表达式y+=z--/++x值是()。
A.3B.3.5C.4D.5
5.任何一个Java程序都默认引入一个包,这个包的名字是________________。
6.匿名类的特点有哪些?
7.匿名类的一般格式是________________。
8.面向对象的三大特性有哪些?
9.简述成员变量和局部变量的作用范围?
10.构造方法的特点是什么?
11.关于下面程序片段,结论正确的是()。
Stringa=”Java”;
Stringb=”Java”;
Stringx=”Ja”;
Stringy=”va”;
Stringc=x+y;
A.a和b指向同一个实例对象,a和c指向同一个实例对象
B.a和b指向同一个实例对象,a和c不指向同一个实例对象
C.a和b不指向同一个实例对象,a和c指向同一个实例对象
D.a和b不指向同一个实例对象,a和c不指向同一个实例对象
12.关于多态性的说法正确的是()。
A.一个类中不能有同名的方法
B.子类中不能有和父类中同名的方法
C.子类中可以有和父类中同名且参数相同的方法
D.多态性就是方法的名字可以一样,但返回的类型必须不一样
13.关于继承的说法,正确的是()。
A.超类的对象就是子类的对象
B.一个类可以有几个超类
C.一个类只能有一个子类
D.一个类只能有一个超类
14.下面的方法重载正确的是()。
A.intfun(inta,floatb){}floatfun(inta,floatb){}
B.floatfun(inta,floatb){}floatfun(intx,floaty){}
C.floatfun(floata){}floatfun(floata,floatb){}
D.floatfun1(inta,floatb){}floatfun2(inta,floatb){}
15.输入输出流一般分为__________________________________________。
自测试卷二
笔试试卷
姓名:
笔试时间:
1.执行下面代码后,描述正确的是()
inta,b,c;
a=1;
b=2;
c=(a+b>3?
a++:
b++)
A.a的值是2,b的值是3
B.a的值是1,b的值是3
C.a的值是2,b的值是2
D.c的值是false
2.将类的成员的访问权限设置为默认的,则该成员被()
A.同一包中的类访问
B.其他包中的类访问
C.所有的类访问
D.所有的类的子类访问
3.有关类的说法,正确的是()。
A.类具有封装性,所以类的数据是不能被访问的
B.类具有封装性,但可以通过类的公共接口访问类中的数据
C.声明一个类时,必须使用public修饰符
D.每个类中必须有main方法,否则程序无法运行
4.编译一个定义了两个类和三个方法的Java源文件,总共会生成()个字节码文件。
A.5个字节码文件,以“.java”为扩展名
B.2个字节码文件,以“.java”为扩展名
C.5个字节码文件,以“.class”为扩展名
D.2个字节码文件,以“.class”为扩展名
5.关于super的说法正确的是()。
A.是指当前对象的内存地址
B.是指当前对象的父类对象的内存地址
C.是指当前对象的父类
D.可以用在main()方法中
6.若x=5,y=10,则x=y的逻辑值分别是_________和_________。
7.创建一个名为MyFirstPackage的包,那么在程序中该包的语句是_________,该语句位于程序的位置是:
_________。
8.如何理解面向对象的多态特性?
9.List接口、Set接口、Map接口和Collection接口的主要特征是什么?
10.HashMap类,在重写hashCode()方法时需要遵循的原则是?
11.下面的代码,编译运行时,结果是()
publicclassTest{
publicstaticvoidmain(Stringargs[]){
for(inti=0;i<3;i++){
System.out.print(i);
}
System.out.print(i);
}
}
A.编译时报错
B.正确运行,输出012
C.正确运行,输出123
D.正确运行,输出0123
12.下面代码中,编译时会发生错误的是()。
classParent{}
classChildextendsParent{
publicstaticvoidmain(String[]args){
Parentp1=newChild();//第一行
Parentp2=newParent();//第二行
Childc1=newChild();//第三行
Childc2=newParent();//第四行
}
}
A.第一行
B.第二行
C.第三行
D.第四行
13.下面给定的代码,
Publicstaticvoidmain(String[]args){
System.out.print(“Hello”+args[1]);
}
从命令行中传参:
peopleworldnation,该程序的运行结果是()。
A.Hellopeople
B.Helloworld
C.Hellopeopleworldnation
D.运行出现异常
14.Java语言中,尝试对null对象进行操作时,会产生()类型的异常。
A.ArithmeticException
B.NullPointerException
C.IOException
D.EOFException
15.请列举出三种常见的过滤器及其作用。
自测试卷三
笔试试卷
姓名:
笔试时间:
1.下面合法的标识符是()。
A.#_poundB._underscoreC.5InterstateD.class
2.下面()赋值语句不会出现编译警告或错误的是。
A.floatf=1.3;
B.charc=”a”;
C.byteb=257;
D.inti=10;
3.字符流和字节流的区别在于()。
A.前者带有缓冲,后者没有
B.前者是块读写,后者是字节读写
C.二者没有区别,可以互换使用
D.每次读写的字节数不同
4.下列流中哪个不属于字节流()。
A.FileInputStreamB.BufferedInputStream
C.FilterInputStreamD.InputStreamReader
5.Java语言中,Stringstr=”123456789”,System.out.println(str.indexOf(“5”)),输出结果是()。
A.6B.5C.4D.3
6.x=2,y=3,z=4,则表达式z*=y++*--x的值是_________________。
7.接口和抽象类的用法区别是什么?
8.Java是一种不支持多重继承的语言,但是我们可以通过___________实现。
9.FileInputStream是_______,BufferedWriter是_______,ObjectOutputStream是_______。
10.构造函数何时会被调用?
()
A.创建对象时B.可以出现在非抽象类中
C.是没有方法体的方法D.抽象类中的方法都是抽象方法
11.在使用interface声明一个接口时,只可以使用_______修饰符修饰该接口。
12.下面的java代码运行结果是()。
importjava.io.*;
publicclassB{
publicstaticvoidmain(String[]args){
inti=12;
System.out.println(i*=++i);
}
}
A.145
B.169
C.156
D.无法编译
13.Java中,byte数据类型的取值范围是()。
A.-256~255
B.-255~255
C.-128~127
D.-127~128
14.Java中的布局管理器,下列说法错误的是()。
A.FlowLayout以由上到下的方式从左到右排列组件
B.BorderLayout使用“东”、“西”,“南”,“北”,“居中”来指定组件的位置
C.GridLayout可以创建网格布局,网格布局中各组件的大小可以任意调整
D.可以通过容器的setLayout方法为容器指定布局管理器
15.Java中,关于HashMap类的描述,错误的是()。
A.HashMap使用键/值的形式保存数据
B.HashMap能够保证其中元素的顺序
C.HashMap允许将null用作键
D.HashMap允许将null用作值
自测试卷四
笔试试卷
姓名:
笔试时间:
1.下列选项中哪个是Java的有效关键字?
()
A.nameB.helloC.falseD.good
2.Frame对象默认的布局管理器是()。
A.FlowLayoutB.BorderLayoutC.CardLayoutD.null
3.下列哪一个import命令可以使我们在程序中创建输入/输出流对象。
()
A.importjava.sql.*;B.importjava.util.*;
C.importjava.io.*;D.import.*;
4.下面哪一个import命令可以为我们提供编写网络应用程序的类()。
A.importjava.sql.*;B.importjava.util.*;
C.importjava.io.*;D.import.*;
5.一般造成死锁必须同时满足的4个条件是?
6.Java程序中的单行注释的符号是___________,多行注释的符号是___________。
7.当声明一个数组intarr[]=newint[5];时,这代表这个数组所保存的变量类型是________,数组名是________,数组的长度是________,数组下标的使用范围是________。
8.假设x=13,y=14,则表达式x%y!
=0的值是________,其数据类型是________。
9.下列哪一项不属于Swing的顶层容器?
()
A.JAppletB.JTreeC.JDialogD.JFrame
10.覆盖和重载的关系是()。
A.覆盖只能发生在父类与子类之间,而重载可以发生在同一个类中
B.覆盖方法可以不同名,而重载方法必须同名
C.final修饰的方法可以被覆盖,但不能被重载
D.覆盖与重载是同一回事
11.关于this和super的说法正确的是()。
A.都可以用在main()方法中
B.都是指一个内存地址
C.不能用在main()方法中
D.意义相同
12.Java中的字符类型采用的是Unicode编码方案,每个Unicode码占用()个比特位。
A.8B.16C.32D.64
13.关于while循环和do…while循环的区别是()。
A.没有区别,这两个结构任何情况下效果一样
B.while循环比do…while循环执行效率高
C.while循环是先循环后判断,所以循环体至少被执行一次
D.do…while循环是先循环后判断,所以循环体至少被执行一次
14.Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点()。
A.安全性
B.多线程
C.跨平台
D.可移植
15.什么是重载?
什么是覆盖?
它们二者之间有怎样的区别与联系?
自测试卷五
笔试试卷
姓名:
笔试时间:
1.以下对封装描述正确的是()。
A.只能对一个类中的方法进行封装,不能对属性进行封装
B.如果子类继承了父类,对于弗雷中进行封装的方法,子类仍可直接调用
C.封装的意义不大,因此在编码时尽量不要使用
D.封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性
2.一下不是Object类的方法是()。
A.clone()
B.finalize()
C.toString()
D.hasNext()
3.以下对自定义异常描述错误的是()。
A.自定义异常必须继承Exception
B.自定义异常可以继承自Error
C.自定义异常可以更加明确定位异常出错的位置和给出详细出错信息
D.程序已经提供了丰富的异常类,使用自定义异常没有意义
4.以下对TCP和UDP描述正确的是()。
A.TCP不能提供数据的可靠性
B.UDP能够保证数据库的可靠性
C.TCP数据传输效率高于UPD
D.UPD数据传输效率高于TCP
5.在开发JDBC应用程序时,使用DriverManager类的getConnection()方法建立与数据源链接语句为:
Connectioncon=DriverManager.getConnection(“jdbc:
odbc:
news”);其中,“news”表示的是________________。
6.________________接口以键值对的方式存储对象。
7.下列关于对象序列化描述正确的是()。
A.使用FileOutputStream可以将对象进行传输
B.使用PrintWriter可以将对象进行传输
C.使用ObjectOutputStream类完成对象存储,使用ObjectInputStream类完成对象读取
D.对象序列化的所属类不需要Serializable接口
8.使用JDBC连接数据库的顺序是()。
A.加载驱动
B.导入驱动包
C.发送并处理SQL语句
D.建立于数据库的连接
E.关闭连接
9.下面语句中,break的作用是________________。
for(inti=0;i<10;i++){
if(aData[i]==TargetData){
FoundID=i;
break;
}
}
10.在Swing中,如何设置组件的边框()
A.通过根窗格的setBorder函数设置某个组件的边框
B.通过内容窗格的setBorder函数设置某个组件的边框
C.通过组件的setBorder函数设置
D.通过框架的setBorder函数设置某个组件的边框
11.结构化程序设计所规定的的三种基本控制结构是()。
A.输入、处理、输出B.树形、网形、环形
C.顺序、选择、循环D.主程序、子程序、函数
12.下面的程序中,s的最终结果是_________。
publicclassdai{
publicstaticvoidmain(String[]args){
inti,s=0;
inta[]={10,20,30,40,50,60,70,80,90};
for(i=0;iif(a[i]%3==0)
s+=a[i];
System.out.println("s="+s);
}
}
}
13.下列程序,输出的结果是___________________________。
publicclasscook{
publicstaticvoidmain(String[]args){
inti,j;
inta[]={5,9,6,8,7};
for(i=0;iintk=i;
for(j=i;jif(a[j]k=j;
inttemp=a[i];
a[i]=a[k];
a[k]=temp;
}
for(i=0;iSystem.out.print(a[i]+"");
}
}
}
14.下面的程序输出的结果是__________________。
intx=5,y=6,z=4;
if(x+y>z&&x+z>y&&z+y>x)
System.out.println("是汽车");
else
System.out.println("是飞行器啊");
15.在进行方法覆盖时,需要注意什么?
自测题库参考答案
自测试卷1答案
1、B
2、
(1)抽象类必须使用abstract修饰符来修饰,抽象方法必须使用abstract修饰符来修饰。
(2)抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器创建抽象类的实例,即使抽象类里不包含抽象方法,这个抽象类也不能创建实例。
(3)抽象类可以包含属性、方法(普通方法和抽象方法)、构造器、初始化块、内部类、枚举类。
抽象类的构造器不能用于创建实例,主要是用于被其子类调用。
(4)含有抽象方法的类(包括直接定义了一个抽象方法;继承了一个抽象父类,但没有完全实现父类包含的抽象方法;以及实现了一个接口(本书第六章详细介绍),但没有完全实现接口包含的抽象方法三种情况)只能被定义成抽象类。
3、C
4、A
5、java.lang
6、
(1)匿名类可以继承父类的方法也可以重写父类的方法。
(2)匿名类可以访问外嵌类中的成员变量和方法,在匿名类中不能声明静态变量和静态方法。
(3)使用匿名类时,必须在某个类中直接使用匿名类创建对象。
(4)在使用匿名类创建对象时,要直接使用父类的构造方法。
7、newClassName(){
……
}
8、封装、继承和多态
9、
(1)成员变量:
在类中声明,在整个类中有效。
(2)局部变量:
在方法内或方法内的复合代码块(就是方法内部,“{”与“}”之间的代码)中声明的变量。
在复合代码块声明的变量,只在当前复合代码块中有效;在复合代码块外、方法内声明的变量在整个方法内都有效。
10、
构造方法是一种特殊的方法,它的名字必须与它所在类的名字完全相同,并且没有返回值,也不需要使用关键字void进行标识。
11、B
12、C
13、D
14、C
15、字节输入流、字节输出流、字符输入流和字符输出流
自测试卷2答案
1、B
2、A
3、B
4、D
5、B
6、truefalse
7、packageMyFirstPackage程序的第一行
8、
string本身是不可改变的,它只能赋值一次,每一次内容发生改变,都会生成一个新的对象,然后原有的对象引用新的对象,而每一次生成新对象都会对系统性能产生影响,这会降低.NET编译器的工作效率。
而StringBuilder类则不同,每次操作都是对自身对象进行操作,而不是生成新的对象,其所占空间会随着内容的增加而扩充,这样,在做大量的修改操作时,不会因生成大量匿名对象而影响系统性能。
9、
(1)Collection接口是List接口和Set接口的父接口,通常情况下不被直接使用;
(2)List接口实现了Collection接口,List接口允许存放重复的对象,按照对象的插入顺序排列;
(3)Set接口实现了Collection接口,Set接口不允许存放重复的对象,按照自身内部的排序规则排列;
(4)Map接口以键值对(key-value)的形式存放对象,其中键(key)对象不可以重复,值(value)对象可以重复,按照自身内部的排序规则排列。
10、
(1)不唯一原则:
不必为每个对象生成一个唯一的哈希码,只要通过hashCode方法生成的哈希码能够利用get()方法得到利用put()方法添加的映射关系就可以;
(2)分散原则:
生成哈希码的算法应尽量使哈希码的值分散一些,不要很多哈希码值都集中在一个范围内,这样有利于提高由HashMap类实现的Map集合的性能。
11、A
12、D
13、D
14、B
15、
BufferedReader:
该过滤器用来对流的数据加以处理再输出。
LineNumberReader:
该过滤器也是一种缓冲流,可用来记录读入的行数。
PrintWriter:
该过滤器用来将输出导入某种设备。
自测试卷3答案
1、B
2、D
3、D
4、D
5、C
6、12
7、
(1)接口中只能包含抽象方法,不能包含普通方法;抽象类中可以包含普通方法。
(2)接口中不能定义静态方法;抽象类中可以定义静态方法。
(3)接口中只能定义静态常量属性,不能定义普通属性;抽象类里可以定义静态常量属性,也可以定义普通属性。
(4)接口不能包含构造器;抽象类可以包含构造器,抽象类里的构造器为了让其子类调用并完成初始化操作。
(5)接口中不能包含初始化块,但抽象类可以包含初始化块。
(6)一个类最多只能有一个直接父类,包括抽象类;但是一个类可以实现多个接口。
8、接口
9、字节流字符流对象流
10、A
11、public
12、C
13、C
14、C
15、B
自测试卷4答案
1、C
2、B
3、C
4、D
5、
(1)互斥条件:
线程使用的资源必须至少有一个是不能共享的;
(2)请求与保持条件:
至少有一个线程必须持有一个资源并且正在等待获取一个当前被其他线程持有的资源;
(3)非剥夺条件:
分配的资源不能从相应的线程中被强制剥夺;
(4)循环等待条件:
第一个线程等待其他线程,后者又在等待第一个线程序。
6、///**/
7、intarr50到4
8、trueboolean
9、B
10、A
11、C
12、B
13、D
14、B
15、
重载是指在同一个类中定义了多个名字相同而内容不同的成员方法;覆盖则是指在子类中定义了与父类具有相同名字的成员方法。
重载和覆盖的区别在于:
重载是存在于同一个类的不同方法之间的多态关系,它们主要通过参数李表中的参数个数、参数的数据类型和参数的顺序等方面的不同来区分;而覆盖是存在于父类与子类之间的多态关系,它们在引用时通过指出所属类的类名来区分。
自测试卷5答案
1、D
2、D
3、C
4、D
5、数据源的名称
6、java.util.M