02多项选择题分析.docx
《02多项选择题分析.docx》由会员分享,可在线阅读,更多相关《02多项选择题分析.docx(28页珍藏版)》请在冰豆网上搜索。
02多项选择题分析
72.下面哪几个函数是public void example(){...}的重载函数?
A、 public void example( int m){...}
B、public int example(){...}
C、public void example2(){...}
D、 public int example ( int m, float f){...}
答:
A,D
Java中的重载函数,指的是函数的方法名相同并且参数表不同
73.给出下面的代码段:
public class Base{
int w, x, y ,z;
public Base(int a,int b)
{
x=a; y=b;
}
public Base(int a, int b, int c, int d)
{
// assignment x=a, y=b
w=d;
z=c;
}
}
在代码说明// assignment x=a, y=b处写入如下哪几个代码是正确的?
A、 Base(a,b);
B、x=a, y=b;
C、x=a; y=b;
D、this(a,b);
答:
C,D
A选项的写法语法错误;B选项x=a后面用逗号也是不正确的。
C,D均正确,调用自身的其它构造方法使用this关键字。
74.已知如下定义:
String s = "story";
下面哪个表达式是合法的?
A、 s += "books";
B、char c = s[1];
C、int len = s.length;
D、String t = s.toLowerCase();
答:
A,D
B的错误是String是一个对象,而不是一个char类型的数组;C的错误是String没有length这个属性,只有一个length()的方法。
76.如下哪些字串是Java中的标识符?
A、 fieldname
B、super
C、3number
D、#number
E、$number
答:
A,E
77.如下哪些是Java中有效的关键字?
A、 const
B、NULL
C、false
D、this
E、 native
答:
A,C,D,E
B选项为大写,故不是Java中有效的关键字,如为null,则是。
78.如下哪些是Java中正确的整数表示?
A、22
B、0x22
C、022
D、22H
答:
A,B,C
A为十进制,B为十六进制,C为8进制,D错误。
80.下面哪些是正确的?
A、 >> 是算术右移操作符.
B、>> 是逻辑右移操作符.
C、>>> 是算术右移操作符
D、>>> 是逻辑右移操作符
答:
A,D
81.下面哪个赋值语句是合法的?
A、float a = 2.0
B、double b = 2.0
C、int c = 2
D、long d = 2
答:
B,C,D
由于小数的字面值为double,A选项的赋值有丢失精度的危险,所以不合法。
83.下面哪个语句是创建数组的正确语句?
A、 float f[][] = new float[6][6];
B、float []f[] = new float[6][6];
C、float f[][] = new float[][6];
D、float [][]f = new float[6][6];
E、float [][]f = new float[6][];
答:
A,B,C,D
85.已知如下的命令执行 java MyTest a b c
请问哪个语句是正确的?
A、 args[0] = "MyTest a b c"
B、args[0] = "MyTest"
C、args[0] = "a"
D、args[1]= 'b'
答:
C, D
args数组代表的是Java程序传入的参数,不包括类名,下标由0开始。
88.已知如下代码:
public class Test
{
public static void main(String arg[])
{
int i = 5;
do {
System.out.println(i);
} while (--i>5)
System.out.println("finished");
}
}
执行后的输出是什么?
A、 5
B、4
C、6
D、Finished
E、None
答:
A,D
--i的值为i的值,但执行该表达式后i的值为4,所以选择A和D。
89.下面代码执行后的输出是什么?
outer:
for(int i=0;i<3; i++)
inner:
for(int j=0;j<2;j++)
{
if(j==1) continue outer;
System.out.println(j+ "and "+i);
}
A、 0 and 0
B、0 and 1
C、0 and 2
D、1 and 0
E、1 and 1
F、1 and 2
G、2 and 0
H、 2 and 1
I、 2 and 2
答:
A,B,C
continue后跟标签的时候会跳出循环到标签位置继续下一次循环。
90、已知如下代码:
switch (m)
{
case 0:
System.out.println("Condition 0");
case 1:
System.out.println("Condition 1");
case 2:
System.out.println("Condition 2");
case 3:
System.out.println("Condition 3");break;
default:
System.out.println("Other Condition");
}
当m 的值为什么时输出"Condition 2"?
A、 0
B、1
C、2
D、3
E、4
F、None
答:
A,B,C
为0,1,2时都会执行case2标签的语句,因为case0和1的时候没有break。
92、Java中如下哪个约束符是正确的?
A、 private
B、public
C、protected
D、protect
E、friend
答:
A,B,C
Java中权限约束符有三个public,protected,private。
93.如果类中的成员变量可以被同一包访问,则使用如下哪个约束符?
A、 private
B、public
C、protected
D、no modifier
E、final
答:
B,D
public约束符可以被所有类访问,当然也包括同一包的类。
96、已知如下类说明:
public class Test {
private float f = 1.0;
int m = 12;
static int n=1;
public static void main(String arg[]) {
Test t = new Test();
// some code...
}
}
如下哪个使用是正确的?
A、 t.f
B、this.n
C、Test.m
D、Test.n
答:
A,D
由于是在同一个类的内部,所以直接访问属性f是可以的,故A正确。
由于n是一个静态属性,所以不能通过this修饰符来修饰,故B错误。
由于m不是静态的,所以不能在一个静态方法里面引用它,故C错误。
同理,D正确。
98、已知如下类定义:
class Base {
public Base (){ //... }
public Base ( int m ){ //... }
protected void fun( int n ){ //... }
}
public class Child extends Base{
// member methods
}
如下哪句可以正确地加入子类中?
A、 private void fun( int n ){ //...}
B、void fun ( int n ){ //... }
C、protected void fun ( int n ) { //... }
D、public void fun ( int n ) { //... }
答:
C,D
AB的错误是因为子类覆盖父类的方法时,访问权限修饰符的权限不能够比父类的更窄。
99、如下哪个语句是正确的?
A、 In Java single inheritance is allowed, which makes code more reliable.
B、A subclass inherits all methods ( including the constructor ) from the superclass.
C、 A class can implement as many interfaces as needed.
D、When a class implements an interface, it can define as many methods of the interface as needed.
答:
A,C
B的错误是因为在Java中构造方法是不能被继承的。
D的错误是因为继承接口的类还可以自己定义其它的方法,而不限于接口中定义的方法。
100.在如下源代码文件Test.java中, 哪个是正确的类定义?
A、 public class test {
public int x = 0;
public test(int x)
{
this.x = x;
}
}
B、public class Test{
public int x=0;
public Test(int x) {
this.x = x;
}
}
C、public class Test extends T1, T2 {
public int x = 0;
public Test (int x) {
this.x = x;
}
}
D、 public class Test extends T1{
public int x=0;
public Test(int x){
this.x = x;
}
}
E、protected class Test extends T2{
public int x=0;
public Test(int x){
this.x=x;
}
}
答:
B,D
A的错误是因为在Test.java中定义的public类的类名必须跟文件名一致;
C的错误是因为在Java的类之间不能够多继承;
E的错误是因为外部类只能使用public、final或者不加访问修饰符。
102、如下哪个方法可以从WindowEvent获取事件源?
A、 getFrame()
B、getID()
C、getSource()
D、getWindow()
答:
C,D
103、以下哪个有关事件监听器的语句是正确的?
A、 Multiple listeners can be attached to one component.
B、Only one listener can be attached to one component.
C、One listener can receive and process the events from multiple components.
D、One listener can receive and process the events from only one component.
答:
A,C
105、下面哪个事件监听器在Java中有事件适配器?
A、 MouseListener
B、KeyListener
C、ActionListener
D、ItemListener
E、WindowListener
答:
A,B,E
107、已知如下说明:
TextArea ta = new TextArea ("Hello", 5, 5);
请问哪个语句是正确的?
A、 The maximum number of characters in a line is 5.
B、The displayed height is 5 lines otherwise constrain.
C、The displayed string can use multiple fonts.
D、The displayed strings are editable.
答:
B,D
109、下面哪个不是Java中的容器?
A、 ScrollPane
B、Canvas
C、Scrollbar
D、Applet
E、Dialog
答:
B,C
这里的容器指的是在awt中。
110、下面哪个方法可用于定义新线程类?
A、 implement the Runnable interface
B、add a run() method in the class
C、create an instance of Thread
D、extend the Thread class
答:
A,D
实现Runnable接口或者继承Thread类均可以定义新线程类。
111、下面哪个stream是node流?
A、 FileInputStream
B、BufferedInputStream
C、PushbackInputStream
D、ByteArrayInputStream
答:
A,D
112、哪个类可用于处理Unicode?
A、 InputStreamReader
B、BufferedReader
C、Writer
D、PipedInputStream
答:
A,B
114.下面哪些是合法的标识符?
[ABE]
A.$persons
B.TwoUsers
C.*point
D.this
E._endline
Java中使用的标识符可以是大写和小写字母、数字、下划线(_)、美元符号($)的任意组合,首字母不能是数字,且不能与关键字冲突,所以C和D均是错误的。
116.下面的哪些程序片断可能导致错误?
[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";
B的错误在于把String看做一个数组,而实际上它是一个对象。
D的错误是String没有减运算。
117.在//pointx处的哪些声明是合法的?
[DE]
classPerson{
privateinta;
publicintchange(intm){
returnm;
}
}
publicclassTeacherextendsPerson{
publicintb;
publicstaticvoidmain(Stringargs[]){
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.
A的错误在于m在Teacher中并未声明;B的错误是不能够在静态方法中引用非静态字段;C的错误是a为private,故不能直接访问。
119下面的哪些陈述是正确的?
[ADE]
A.第二行的声明不会为变量myVect分配内存空间。
B.第二行的声明分配一个到Vector对象的引用的内存空间。
C.第二行语句创建一个Vector类对象。
D.第三行语句创建一个Vector类对象。
E.第三行语句为一个Vector类对象分配内存空间。
121.哪些不是Java关键字?
[AB]
A.TRUE
B.sizeof
C.const
D.super
E.void
123.下面关于继承的哪些叙述是正确的?
[AD]
A.在java中只允许单一继承。
B.在java中一个类只能实现一个接口。
C.在java中一个类不能同时继承一个类和实现一个接口。
D.java的单一继承使代码更可靠。
在java中一个类只能有一个直接父类,但是可以实现多个接口,在继承的同时可以实现接口,之所以取消多继承的原因是多继承使得代码产生很多问题,而使用单一继承则可以使代码更可靠。
125.下面哪些不是java的原始数据类型?
[BC]
A.short
B.Boolean
C.unit
D.float
Java的原始数据类型一共就八个,分别是:
byte,short,int,long,boolean,char,float,double。
注意这些是大小写敏感的,而Boolean是booelan的封装类(wrapperclass)。
126.使用"<<"和">>"操作符的哪些陈述是对的?
[AC]
A.00000100000000000000000000000000<<5gives
10000000000000000000000000000000
B.00000100000000000000000000000000<<5gives
11111100000000000000000000000000
C.11000000000000000000000000000000>>5gives
11111110000000000000000000000000
D.11000000000000000000000000000000>>5gives
00000110000000000000000000000000
Java的移位操作符一共有三种,分别是”>>”,”>>>”,”<<”,执行的操作分别是有符号右移,无符号右移,左移,有符号右移的意思是说移入的最高位和原最高符号位相同,无符号右移是移入位始终补零,左移时最低位始终补零,最高位被舍弃。
移位操作符另一个非常值得注意的特点是其右操作数是取模运算的,意思是说对于一个int型数据而言,对它移位32位的结果是保持不变而非变成零,即:
a>>32的结果是a而不是0,同理,对long型数是对右操作数取64的模,a>>64==a;还有一点需要注意的是移位操作符”>>>”只对int型和long型有效,对byte或者short的操作将导致自动类型转换,而且是带符号的。
137、给出下面的不完整的方法:
1)
2){success=connect();
3}if(success==-1){
4}thrownewTimedOutException();
5}}
6}}
已知TimedOutException不是一个RuntimeException。
下面的哪些声明可以被加入第一行完成此方法的声明?
[BC]
A.publicvoidmethod()
B.publicvoidmethod()throwsException
C.publicvoidmethod()throwsTimedOutException
D.publicvoidmethod()throwTimedOutException
E.publicthrowTimedOutExceptionvoidmethod()
TimedOutException不是一个RuntimeException。
下面的哪些声明可以被加入第一行完成此方法的声明。
如果程序在运行的过程中抛出异常,而这个异常又不是RuntimeException或者Error,那么程序必须捕获这个异常进行处理或者声明抛弃(throws)该异常,捕获异常可以使用try{}catch(){}语句,而抛弃异常在方法声明是声明,在方法的声明后面加上throwsXxxxException,抛弃多个异常时在各异常间使用逗号(,)分隔,题目中的程序在运行时抛出的不是一个RuntimeException,所有必须捕获或者抛弃,而程序又没有捕获,所有应该在方法声明中声明抛弃。
由于Exception是所有异常的父类,所有当然也可以代表RuntimeException了。
139、哪些类可以作为FileInputStream类的构造方法的参数?
[BD]
A.InputStream
B.File
C.FileOutputStream
D.String
此题同样是要求熟悉基础API,FileInputStream类的构造方法有三个,可接受的参数分别是:
File、FileDescriptor、String类的一个对象。
144、下面关于变量及其范围的陈述哪些是对的?
[ACD]
A.实例变量是类的成员变量。
B.实例变量用关键字static声明。
C.在方法中定义的局部变量在该方法被执行时创建
D.局部变量在使用前必须被初始化。
类中有几种变量,分别是:
局部变量(英文可以为:
local\automatic\temporary\stackvariable)是定义在方法里的变量;实例变量(英文为:
instancevariable)是在方法外而在类声明内定义的变量,有时也叫成员变量;类变量(英文为:
classvariable)是用关键字static声明的实例变量,他们的生存期分别是:
局部变量在定义该变量的方法被调用时被创建,而在该方法退出后被撤销;实例变量在使用newXxxx()创建该类的实例时被创建,而其生存期和该类的实例对象的生存期相同;类变量在该类被加载时被创建,不一定要用newXxxx()创建,所有该类的实例对象共享该类变量,其生存期是类的生存期。
任何变量在使用前都必须初始化,但是需要指出的是局部变量必须显式初始化,而实例变量不必,原始类型的实例变量在该类的构造方法被调用时为它分配的缺省的值,整型是0,布尔型是false,而浮点型是0.0f,引用类型(类类型)的实例变量的缺省值是null(没有进行实际的初始化,对它的使用将引起NullPointException),类变量的规则和实例变量一样,不同的是类变量的初始化是在类被加载时。
1