JAVA实用教程题库.docx
《JAVA实用教程题库.docx》由会员分享,可在线阅读,更多相关《JAVA实用教程题库.docx(30页珍藏版)》请在冰豆网上搜索。
JAVA实用教程题库
山东财经大学2012--2013学年第2学期期末试题
Java语言程序设计(06200081)试卷(A)
题号
一
二
三
四
五
六
七
八
九
十
总分
得分
签字
注意事项:
所有的答案都必须写在答题纸(答题卡)上,答在试卷上一律无效。
一、单选择题
1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为()。
A.javaB..class
C.htmlD..exe
2、设x=1,y=2,z=3,则表达式y+=z--/++x的值是()。
A.3B.3.5
C.4D.5
3、不允许作为类及类成员的访问控制符的是()。
A.publicB.private
C.staticD.protected
4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。
A.staticvoidmethod()B.publicvoidmethod()
C.finalvoidmethod()D.abstractvoidmethod()
5.Javaapplication中的主类需包含main方法,以下哪项是main方法的正确形参?
()
A、StringargsB、Stringargs[]C、CharargD、StringBufferargs[]
6.以下关于继承的叙述正确的是()。
A、在Java中类只允许单一继承
B、在Java中一个类只能实现一个接口
C、在Java中一个类不能同时继承一个类和实现一个接口
D、在Java中接口只允许单一继承
7.以下哪个不是Java的原始数据类型()
A、intB、BooleanC、floatD、char
9.若需要定义一个类变量或类方法,应使用哪种修饰符?
()
A、staticB、packageC、privateD、public
10.给出下面代码,关于该程序以下哪个说法是正确的?
()
publicclassPerson{
staticintarr[]=newint[5];
publicstaticvoidmain(Stringa[])
{
System.out.println(arr[0]); }
}
A、编译时将产生错误B、编译时正确,运行时将产生错误
C、输出零D、输出空
9.下列哪些语句关于Java内存回收的说明是正确的?
()
A、程序员必须创建一个线程来释放内存
B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
11.以下代码段执行后的输出结果为()
intx=3;
inty=10;
System.out.println(y%x);
A、-1B、2C、1D、3
12.有以下程序片段,下列哪个选项不能插入到行1。
()
1.
2.publicclassInteresting{
3.//dosth
4.}
A、importjava.awt.*;B、packagemypackage;
C、classOtherClass{}D、publicclassMyClass{}
13.设有下面两个赋值语句:
a=Integer.parseInt(“12”);
b=Integer.valueOf(“12”).intValue();
下述说法正确的是()。
A、a是整数类型变量,b是整数类对象。
B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且值相等。
D、a和b都是整数类型变量并且值相等。
16.类Parent、Child定义如下:
1.publicclassParent
2.{publicfloataFun(floata,floatb)throws
3.IOException{}
4.}
5.publicclassChildextendsParent{
6.
7.}
将以下哪种方法插入行6是不合法的。
()
A、floataFun(floata,floatb){}
B、publicintaFun(inta,intb)throwsException{}
C、publicfloataFun(floatp,floatq){}
D、publicintaFun(inta,intb)throwsIOException{}
17.在使用interface声明一个接口时,只可以使用()修饰符修饰该接口。
A、privateB、protectedC、privateprotectedD、public
18、有以下方法的定义,请选择该方法的返回类型()。
ReturnTypemethod(bytex,doubley)
{
return(short)x/y*2;
}
A、byteB、shortC、intD、double
19、关于以下代码段的说法正确的是()
1.Strings="abcde";
2.StringBuffers1=newStringBuffer("abcde");
3.if(s.equals(s1))
4.s1=null;
5.if(s1.equals(s))
6.s=null;
A、第1行编译错误,String的构造器必须明确调用
B、第3行编译错误,因为s与s1有不同的类型
C、编译成功,但执行时在第5行有异常抛出
D、编译成功,过程中也没有异常抛出
20、编译并运行以下程序,以下描述哪个选项是正确的()
1.classX{
2.protectiedStringtoString()i{
3.returnsuper.toString();}
4.}
A、编译通过运行无异常B、编译通过但运行时出错
C、行2出错,不能成功编译D、不能成功编译,行3出错
1、如下哪个是Java中的标识符()
A、publicB、superC、3numberD、width
2、如下哪个是Java中的标识符()
A、fieldnameB、superC、3numberD、#number
3、已知如下定义:
Strings="story";下面哪个语句不是合法的()
A、s+="books";B、s=s+100;
C、intlen=s.length;D、Stringt=s+“abc”;
4、如下哪个是Java中有效的关键字()
A、nameB、helloC、falseD、good
5、下面的代码段执行之后count的值是什么()
intcount=1;
for(inti=1;i<=5;i++){
count+=i;
}
System.out.println(count);
A、5B、1C、15D、16
6、定义一个类,必须使用的关键字是()
A、publicB、classC、interfaceD、static
7、定义一个接口必须使用的关键字是()
A、publicB、classC、interfaceD、static
1、下列程序段执行后的结果是()。
Strings=newString("abcdefg");
for(inti=0;iSystem.out.print(s.charAt(i));
}
A)acegB)ACEGC)abcdefgD)abcd
2、有整型数组:
int[]x={12,35,8,7,2};,则调用方法Arrays.sort(x)(//自小到大排序)后,数组x中的元素值依次是().
A)2781235B)1235872
C)3512872D)8712352
4、应用程序的main方法中有以下语句,则输出的结果是()。
Strings1=newString("abc");
Strings2=newString("abc");
booleanb1=s1.equals(s2);
booleanb2=(s1==s2);
System.out.print(b1+""+b2);
A)truefalseB)falsetrueC)truetrueD)falsefalse
7、应用程序的main方法中有以下语句,则输出的结果是()。
Strings="12345#aaa#bbb#67890";
intn=s.indexOf("#");5
intk=s.indexOf("#",n+1);6---》9
intm=s.indexOf("#",k+1);10----》13
Strings2=s.substring(m+1);14
System.out.println(s2);
A)123456B)67890C)aaaD)bbb
8、下面程序段执行后b的值是()。
Integerinteg=newInteger(9);
booleanb=integinstanceofObject;
A)9B)trueC)1D)false
9、应用程序Test.java的源程序如下,在命令行键入:
javaTestaaabbc
回车后输出的结果是()。
publicclassTest{
publicstaticvoidmain(Stringargs[]){
intk1=args.length;//3
intk2=args[1].length();//2
System.out.print(k1+""+k2);
}
}
A)32B)12C)13D)33
10、应用程序的main方法中有以下语句,则输出的结果是()。
intb[][]={{1},{2,2},{2,2,2}};
intsum=0;//此处应该出错了
for(inti=0;ifor(intj=0;j
sum*=b[i][j];
}
}
System.out.println("sum="+sum);
A)32B)11C)2D)3
11、应用程序的main方法中有以下语句,则执行后输出的结果是()。
int[]x={125,21,5,168,98};
intmax=x[0];
for(inti=1;iif(x[i]>max)
max=x[i];
}
System.out.println(max);
A)125B)5C)98D)168
12、程序Test.java编译运行后输出的结果是()。
publicclassTest{
Strings1="java";
publicstaticvoidmain(Stringargs[]){
intz=2;
Testt=newTest();
System.out.println(t.s1+z);
}
}
A)java2B)2C)没有输出结果D)java
13、应用程序的main方法中有以下语句,则输出的结果是()。
Strings1="0.5",s2="12";
doublex=Double.parseDouble(s1);
inty=Integer.parseInt(s2);
System.out.println(x+y);
A)12.5B)120.5C)12D)“12.5”
3、应用程序的main方法中有以下语句,则输出的结果是()。
Strings="xxxxxxxxxxxxxxx#123#456#zzzzz";
intn=s.indexOf("#");
intk=s.indexOf("#",n+1);
Strings2=s.substring(n+1,k);
System.out.println(s2);
A)123456B)123C)xxxxxxxxxxxxxxxD)zzzzz
4、关于下面的程序Test.java说法正确的是()。
publicclassTest{
Stringx="1";
inty;
publicstaticvoidmain(Stringargs[]){
intz=2;
System.out.println(x+y+z);
}
}
A)3B)102C)12D)程序有编译错误
5、应用程序的main方法中有以下语句,则输出的结果是()。
intb[][]={{1,1,1},{2,2},{3}};
intsum=0;
for(inti=0;ifor(intj=0;j
sum+=b[i][j];
}
}
System.out.println("sum="+sum);
A)10B)6C)9D)13
6、应用程序的main方法中有以下语句,则执行后输出的结果是()。
int[]x={125,21,5,168,98};
intmin=x[0];
for(inti=1;iif(x[i]min=x[i];
}
System.out.println(min);
A)125B)5C)98D)168
1.关于选择结构下列哪个说法正确?
( )
A.if语句和else语句必须成对出现
B.if语句可以没有else语句对应
C.switch结构中每个case语句中必须用break语句
D.switch结构中必须有default语句
2.while循环和do…while循环的区别是:
( )
A.没有区别,这两个结构任何情况下效果一样
B.while循环比do…while循环执行效率高
C.while循环是先循环后判断,所以循环体至少被执行一次
D.do…while循环是先循环后判断,所以循环体至少被执行一次
4.下列修饰符中与访问控制无关的是 ( )
A.private B.public
C.protectedD.final
5.void的含义:
( )
A.方法没有返回值 B.方法体为空
C.没有意义 D. 定义方法时必须使用
6.return语句:
( )
A.只能让方法返回数值 B.方法都必须含有
C.方法中可以有多句return D.不能用来返回对象
7.关于对象成员占用内存的说法哪个正确?
( )
A.同一个类的对象共用同一段内存
B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间
C.对象的方法不占用内存
D.以上都不对
8.下列说法哪个正确?
A.不需要定义类,就能创建对象
B.对象中必须有属性和方法
C.属性可以是简单变量,也可以是一个对象
D、属性必须是简单变量
9.下列说法哪个正确?
( )
A、一个程序可以包含多个源文件
B、一个源文件中只能有一个类
C、一个源文件中可以有多个公共类
D、一个源文件只能供一个程序使用
10.关于方法main()的说法哪个正确?
( )
A.方法main()只能放在公共类中
Bmain()的头定义可以根据情况任意更改
C.一个类中可以没有main()方法
D.所有对象的创建都必须放在main()方法中
11.构造函数何时被调用?
( )
A、创建对象时 B、类定义时
C、使用对象的方法时 D、使用对象的属性时
12. 抽象方法:
( )
A、可以有方法体
B、可以出现在非抽象类中
C、是没有方法体的方法
D、抽象类中的方法都是抽象方法
13.关于继承的说法正确的是:
( )
A、子类将继承父类所有的属性和方法。
B、子类将继承父类的非私有属性和方法。
C、子类只继承父类public方法和属性
D、子类只继承父类的方法,而不继承属性
14.关于构造函数的说法哪个正确?
( )
A、一个类只能有一个构造函数
B、一个类可以有多个不同名的构造函数
C、构造函数与类同名
D、构造函数必须自己定义,不能使用父类的构造函数
15.this和super:
A、都可以用在main()方法中
B、都是指一个内存地址
C、不能用在main()方法中
D、意义相同
16.关于super的说法正确的是:
A、是指当前对象的内存地址
B、是指当前对象的父类对象的内存地址
C、是指当前对象的父类
D、可以用在main()方法中
17.覆盖与重载的关系是 ( )
A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中
B.覆盖方法可以不同名,而重载方法必须同名
C.final修饰的方法可以被覆盖,但不能被重载
D.覆盖与重载是同一回事
18.关于接口哪个正确?
( )
A、实现一个接口必须实现接口的所有方法
B.一个类只能实现一个接口
C.接口间不能有继承关系
D.接口和抽象类是同一回事
1.请说出下列代码的执行结果:
Strings="abcd";
Strings1=newString(s);
if(s==s1)System.out.println("thesame");
if(s.equals(s1))System.out.println("equals");
A. thesameequalsB. equals
C. thesameD. 什么结果都不输出
2.下列有关Java中接口的说法哪个是正确的?
A. 接口中含有具体方法的实现代码
B. 若一个类要实现一个接口,则用到“implements”关键字
C. 若一个类要实现一个接口,则用到“extends”关键字
D. 接口不允许继承
3.下列代码的执行结果是什么?
Strings1="aaa";
s1.concat("bbb");
System.out.println(s1);
A. Thestring"aaa".
B. Thestring"aaabbb".
C. Thestring"bbbaaa".
D. Thestring"bbb".
一.判断题
1.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。
(√)
2.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。
(×)
3.Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。
(×)
4.构造方法用于创建类的实例对象,构造方法名应与类名相同,返回类型为void。
(×)
6.拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。
(√)
8.静态初始化器是在其所属的类加载内存时由系统自动调用执行。
(√)
9.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。
(×)
二、填空题
1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。
3、设x=2,则表达式(x++)/3的值是0。
4、若x=5,y=10,则x=y的逻辑值分别为true和false。
5、抽象(abstract)方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
最终(final)方法是不能被当前类的子类重新定义的方法。
6、创建一个名为MyPackage的包的语句是packageMyPackage;,
该语句应该放在程序的位置为:
应该在程序第一句。
7、设有数组定义:
intMyIntArray[]={10,20,30,40,50,60,70};则执行以下几个语句后的输出结果是120。
ints=0;
for(inti=0;iif(i%2==1)
s+=MyIntArray[i];
System.out.println(s);
8、在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。
1.定义类的保留字是(class),定义接口的保留字是(interface)。
4.构造方法是一种特殊的成员方法,构造方法名与(类名)相同。
5.Java语言只允许单继承,指每个类只能有一个(父类)。
6.Java源程序的扩展名是(.java),经过编译后的程序的扩展名是(.class)。
1、如果将类MyClass声明为public,它的文件名称必须是(MyClass.java)才能正常编译。
2、Java程序中的单行注释符是(//),多行注释符是(/**/)。
3、Java中布尔类型的常量有两种,它们是(true)和(false)。
4、Java中用于定义小数的关键字有两个:
(float)和(double),后者精度高于前者。
5、Java中用于两个数相等比较的运算符是:
(==),用于不相等比较的运算符是(!
=)。
6、在Java中定义一个字符串类型的变量str的语句是:
(St