12级java笔试题.docx
《12级java笔试题.docx》由会员分享,可在线阅读,更多相关《12级java笔试题.docx(17页珍藏版)》请在冰点文库上搜索。
12级java笔试题
《CoreJava》-笔试试卷
一、选择题(共30题,每题1分,满分30分)
1)在Java中,包有多种用途,但不包含()。
A.将类组合成较小的单元,便于使用
B.有助于避免命名冲突
C.有助于提高运行效率
D.允许在更广的范围内保护类、数据和方法
2)在Java中,包com中定义了类TestUtil,在com的子包util中定义了同名类TestUtil,给定如下Java代码,编译运行时,将发生()。
packagenet;
importcom.util.TestUtil;
importcom.TestUtil;
publicclassTest{
publicstaticvoidmain(String[]args){
TestUtiltestutil=newTestUtil();
}
}
A.创建了一个com.TestUtil对象
B.创建了一个com.util.TestUtil对象
C.创建了一个com.TestUtil对象和一个com.util.TestUtil对象
D.编译无法通过
3)编译并运行下面的Java代码,()会出现在输出结果中。
publicclassTest{
publicstaticvoidmain(Stringargs[]){
for(inti=0;i<3;i++){
for(intj=3;j>=0;j--){
if(i==j)
continue;
System.out.println("i="+i+"j="+j);
}
}
}
}
A.i=0j=3
B.i=0j=0
C.i=2j=0
D.i=0j=2
E.i=1j=1
4)分析下面的Java代码片段,编译运行后的输出结果是()。
for(inti=0;i<6;i++){
intk=++i;
while(k<5){
System.out.print(i);
break;
}
}
A.024
B.02
C.123
D.13
5)给定如下Java程序的方法结构,则方法体实现语句正确的是()。
publicStringchange(inti){
//方法体
}
A.return100;
B.return'a';
C.returni+"";
D.returni;
6)给定Java代码如下所示,则编译运行后,输出结果是()。
publicclasstest{
staticinti;
publicintaMethod(){
i++;
returni;
}
publicstaticvoidmain(Stringargs[]){
Testtest=newTest();
test.aMethod();
System.out.println(test.aMethod());
}
}
A.编译出错,i没有初始化
B.1
C.2
D.3
7)在Java中,如果要在字符串类型对象s="java"中,得到字母'v'出现的位置,可使用以下()语句。
A.s.matches('v');
B.s.charAt('v');
C.s.indexOf('v');
D.s.substring('v');
8)给定某Java程序的main方法如下,该程序编译运行后的结果是()。
publicstaticvoidmain(String[]args){
Stringstr=null;
str.concat("abc");
str.concat("def");
System.out.println(str);
}
A.输出:
null
B.输出:
abcdef
C.编译错误
D.运行时出现异常
9)给定如下Java代码片段,编译运行的结果是()。
inti=0,j=-1;
switch(i){
case0,1:
j=1;
case2:
j=2;
}
System.out.print("j="+j);
A.程序编译出错
B.输出:
j=1
C.输出:
j=2
D.输出:
j=0
10)在Java语言中,有如下代码:
switch(x){
case100:
System.out.println("Onehundred");
break;
case200:
System.out.println("Twohundred");
break;
case300:
System.out.println("Threehundred");
break;
}
下列x的定义中,那些可以使上段代码不出现非检查异常()。
A.doublex=100;
B.Stringx="100";
C.charx=100;
D.intx=100;
11)在Java类中,使用以下()声明语句来定义公有的int型常量MAX。
A.publicintMAX=100;
B.finalintMAX=100;
C.publicstaticintMAX=100;
D.publicstaticfinalintMAX=100;
12)分析如下所示的Java代码,其中this关键字的意思是()。
publicclassTest{
privateStringname;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;//this关键字所在的行
}
}
A.name属性
B.Test类的内部指代自身的引用
C.Test类的对象引用Test类的其他对象
D.指所在的方法
13)Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是()。
A.C不仅继承了B中的公有成员,同样也继承了A中的公有成员
B.C只继承了B中的成员
C.C只继承了A中的成员
D.C不能继承A或B中的成员
14)给定如下一个Java源文件Child.java,编译并运行Child.java,以下结果正确的是()。
classParent1{
Parent1(Strings){
System.out.println(s);
}
}
classParent2extendsParent1{
Parent2(){
System.out.println("parent2");
}
}
publicclassChildextendsParent2{
publicstaticvoidmain(String[]args){
Childchild=newChild();
}
}
A.编译错误:
没有找到构造器Child()
B.编译错误:
没有找到构造器Parent1()
C.正确运行,没有输出值
D.正确运行,输出结果为:
parent2
15)分析如下所示的Java代码,则选项中的说法正确的是()。
classParent{
publicStringname;
publicParent(StringpName){
this.name=pName;
}
}
publicclassTestextendsParent{//1
publicTest(StringName){//2
name="hello";//3
super("kitty");//4
}
}
A.第2行错误,Test类的构造函数中参数名称应与其父类构造函数中的参数名相同
B.第3行错误,应使用super关键字调用父类的name属性,改为super.name="hello";
C.第4行错误,调用父类构造方法的语句必须放在子类构造方法中的第一行
D.程序编译通过,无错误
16)给定Java代码如下所示,则编译运行后,输出结果是()。
classParent{
publicvoidcount(){
System.out.println(10%3);
}
}
publicclassChildextendsParent{
publicvoidcount(){
System.out.println(10/3);
}
publicstaticvoidmain(Stringargs[]){
Parentp=newChild();
P.count();
}
}
A.1
B.1.0
C.3
D.3.333333333333333
17)分析如下Java代码,如果想在控制台上输出“B类的test()方法”,则在横线处应填入()。
classA{
publicvoidtest(){
System.out.println("A类的test()方法");
}
}
classBextendsA{
publicvoidtest(){
System.out.println("B类的test()方法");
}
publicstaticvoidmain(Stringargs[]){
}
}
A.Aa=newB();
a.test();
B.Aa=newA();
a.test();
C.Bb=newA();
b.test();
D.Bb=newB();
b.test();
18)编译运行如下Java代码,输出结果是()。
classBase{
publicvoidmethod(){
System.out.print("Basemethod");
}
}
classChildextendsBase{
publicvoidmethodB(){
System.out.print("ChildmethodB");
}
}
classSample{
publicstaticvoidmain(String[]args){
Basebase=newChild();
}
}
运行以上代码会出现以下那种情况()。
A.完全正确,运行成功
B.出现检查异常
C.出现非检查异常
D.有错误不能编译
19)在Java接口中定义常量,下面语法错误的是()。
A.staticintMALE=1;
B.finalintMALE=1;
C.intMALE=1;
D.privateintMALE=1;
20)给定如下Java程序代码,在横线处加入()语句,可以使这段代码编译通过。
interfaceParent{
publicintcount(inti);
}
publicclassTestimplementsParent{
publicintcount(inti){
returni%9;
}
publicstaticvoidmain(String[]args){
________________
inti=p.count(20);
}
}
A.Testp=newTest();
B.Parentp=newTest();
C.Parentp=newParent();
D.Testp=newParent();
21)1.publicclassBlip{
2.protectedintblipvert(intx){return0;}
3.}
4.classVertextendsBlip{
5.//z在这里插入代码
6.}
在第五行单独插入下边的方法,能编译成功的是()多选。
A.publicintblipvert(intx){return0;};
B.privateintblipvert(intx){return0;};
C.privateintblipvert(longx){return0;};
D.protectedlongblipvert(intx){return0;};
E.protectedintblipvert(longx){return0;};
F.protectedlongblipvert(longx){return0;};
G.protectedlongblipvert(intx,inty){return0;};
22)classPass{
publicstaticvoidmain(String[]args){
intx=5;
Passp=newPass();
p.doStuff(x);
System.out.println("mainx="+x);
}
voiddoStuff(intx){
System.out.println("doStuffx="+x++);
}
}
结果是();
A.编译失败
B.运行时抛出异常
C.doStuffx=6mainx=6
D.doStuffx=5mainx=5
E.doStuffx=5mainx=6
F.doStuffx=6mainx=5
23)classX{
X(){System.out.println
(1);}
X(intx){
this();
System.out.println
(2);
}
}
classYextendsX{
Y(){
super(3);
}
Y(inty){
this();
System.out.println(4);
}
publicstaticvoidmain(String[]args){
newY(5);
}
}
结果是();
A.13
B.134
C.1234
D.2134
E.2143
F.4321
G.编译错误
24)
packagetest;
classTarget{
publicStringname="hello";
}
那些类可以直接改变变量name的值()
A.所有类
B.只有Target类
C.所有在test包中的类
D.所有继承Target的类
25)
1interfaceAnimal{
2voidmakeNoise();
3}
4classHorseimplementsAnimal{
5Longweight=1200L;
6@Override
7publicvoidmakeNoise(){
8System.out.println("whinny");
9}
10}
11publicclassIcelandicextendsHorse{
12@Override
13publicvoidmakeNoise(){
14System.out.println("vinny");
15}
16publicstaticvoidmain(String[]args){
17Icelandici1=newIcelandic();
18Icelandici2=newIcelandic();
19Icelandici3=newIcelandic();
20i3=i1;i1=i2;i2=null;i3=i1;
21}
22}
当第20行执行完时有几个对象被回收();(java垃圾回收机制)
A.0
B.1
C.2
D.3
E.4
F.6
二、填空题
1、Math.round(11.5)等于_________Math.round(-11.5)等于_________
2、swtich______(能、不能)作用在byte上,_______(能、不能)作用在long上,_______(能、不能)作用在String上.
3、数组_______(有、没有)length()这个方法。
String_______(有、没有)这个方法。
4、以下三条语句返回结果是:
A:
“beijing”==“beijing”___________;
B:
“beijing”.equalsIgnoreCase(newString(“beijing”));__________
5、String______(可以、不可以)被继承,原因_____________________________________(填不可以的写出原因)
6、构造器Constructor________(可以、不可以)被override,因为____________________________
7、Strings=newString(“xyz”);创建了_______个StringObject。
是___________________________
8、下面哪些类可以被继承_________
1)java.lang.Thread(T)
2)java.lang.Number(T)
3)java.lang.Double(F)
4)java.lang.Math(F)
5)java.lang.Void(F)
6)java.lang.Class(F)
7)java.lang.ClassLoader(T)
9、List,Set,Map是___________________________(判断是接口还是类),___________继承自Collection接口。
10、说出一些常用的类,包,接口,请各举5个________________、__________________________、
——————————————————————。
三、问答题
1、abstractclass和interface有什么区别?
2、静态变量和实例变量的区别?
3、接口是否可继承接口?
抽象类是否可实现(implements)接口?
抽象类是否可继承实体类(concreteclass)?
4、重载和覆盖的区别?
5、运用List、Map、Set,存取元素时,各有什么特点?
6、java中类有哪几种修饰符?
分别写出他们修饰类时的作用范围?
四、编程题
1、Java编程,打印昨天的当前时刻。
2、编码转换:
写一段程序将GB2312编码的字符串转换为ISO-8859-1编码的字符串。
3、写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数。
4、开发基于控制台的质数判断系统。
具体要求如下:
(1)接受输入正整数N。
(2)判断N是否为质数。
(3)在控制台打印出计算结果,如图-1所示。
系统运行界面如图-1所示。
5.在控制台打印出计算机d盘的文件和目录列表。
6、编写java类,运用线程模拟现实工作中消费者和生产者之间的关系。