《JAVA程序设计》含答案可编辑修改word版Word文档格式.docx
《《JAVA程序设计》含答案可编辑修改word版Word文档格式.docx》由会员分享,可在线阅读,更多相关《《JAVA程序设计》含答案可编辑修改word版Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
A.只能让方法返回数值B.方法都必须含有
C.方法中可以有多句returnD.不能用来返回对象
11、关于对象成员占用内存的说法哪个正确?
(B)A.同一个类的对象共用同一段内存
B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存
D.以上都不对
12、下列说法哪个正确?
(C)A.不需要定义类,就能创建对象B.对象中必须有属性和方法C.属性可以是简单变量,也可以是一个对象D、属性必须是简单变量
13、下列说法哪个正确?
(A)A、一个程序可以包含多个源文件B、一个源文件中只能有一个类
C、一个源文件中可以有多个公共类D、一个源文件只能供一个程序使用
14、关于方法main()的说法哪个正确?
(C)A.方法main()只能放在公共类中
Bmain()的头定义可以根据情况任意更改
C.一个类中可以没有main()方法D.所有对象的创建都必须放在main()方法中
15、构造函数何时被调用?
A
A、创建对象时
B、类定义时
C、使用对象的方法时
D、使用对象的属性时
16、抽象方法:
(C)A、可以有方法体
B、可以出现在非抽象类中C、是没有方法体的方法
D、抽象类中的方法都是抽象方法
17、关于继承的说法正确的是:
(B)A、子类将继承父类所有的属性和方法。
B、子类将继承父类的非私有属性和方法。
C、子类只继承父类public方法和属性
D、子类只继承父类的方法,而不继承属性
18、关于构造函数的说法哪个正确?
(C)A、一个类只能有一个构造函数
B、一个类可以有多个不同名的构造函数C、构造函数与类同名
D、构造函数必须自己定义,不能使用父类的构造函数C
19、this和super:
()A、都可以用在main()方法中B、都是指一个内存地址
C、不能用在main()方法中D、意义相同
20、关于super的说法正确的是:
(C)A、是指当前对象的内存地址
B、是指当前对象的父类对象的内存地址
C、是指当前对象的父类D、可以用在main()方法中
21、覆盖与重载的关系是(A)
A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中B.覆盖方法可以不同名,而重载方法必须同名
C.final修饰的方法可以被覆盖,但不能被重载D.覆盖与重载是同一回事
22、关于接口哪个正确?
A、实现一个接口必须实现接口的所有方法B.一个类只能实现一个接口C.接口间不能有继承关系D.接口和抽象类是同一回事
23、异常包含下列哪些内容?
(A)A.程序执行过程中遇到的事先没有预料到的情况B.程序中的语法错误
C.程序的编译错误D.以上都是
24、对于已经被定义过可能抛出异常的语句,在编程时:
(A)A、必须使用try/catch语句处理异常,或用throws将其抛出B.如果程序错误,必须使用try/catch语句处理异常C.可以置之不理
D.只能使用try/catch语句处理
25、当某一线程正处于休眠状态,而另一个线程用Thread类中的interrupt()
方法中断它时,抛出的异常类型是(C)。
A)IOExceptionB)RuntimeException
C)InterruptedExceptionD)ClassNotFoundException
26、下面的程序段的功能是(D)。
Filefile1=newFile("
d:
\\xxx\\yyy\\zzz"
);
file1.mkdirs();
A)在当前目录下生成子目录:
\xxx\yyy\zzzB)生成目录:
e:
\xxx\yyy\zzzC)在当前目录下生成文件xxx.yyy.zzzD)以上说法都不对
27、应用程序的main方法中有以下语句,则输出的结果是(B)。
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
28、关于下面的程序Test.java说法正确的是(D)。
publicclassTest{
Stringx="
1"
inty;
publicstaticvoidmain(Stringargs[]){intz=2;
System.out.println(x+y+z);
}
A)3B)102C)12D)程序有编译错误
29、应用程序的main方法中有以下语句,则输出的结果是(A)。
intb[][]={{1,1,1},{2,2},{3}};
intsum=0;
for(inti=0;
i<
b.length;
i++){
for(intj=0;
j<
b[i].length;
j++){sum+=b[i][j];
System.out.println("
sum="
+sum);
A)10B)6C)9D)13
30、应用程序的main方法中有以下语句,则执行后输出的结果是(B)。
int[]x={125,21,5,168,98};
intmin=x[0];
for(inti=1;
x.length;
i++){if(x[i]<
min)
min=x[i];
System.out.println(min);
A)125B)5C)98D)168
31、应用程序的main方法中有以下语句,则输出的结果是(D)。
Hashtablehashtable=newHashtable();
hashtable.put("
100"
"
aaa"
200"
bbb"
300"
ccc"
System.out.println(hashtable.get("
).toString()
+hashtable.get("
).toString());
A)aaaB)bbbC)cccD)cccbbbaaa
32、以下关于java异常说法不正确的是(D)。
A)Throwable类是Java语言中Error类和Exception类的父类。
B)当异常对象是Exception类(或其子类)的实例时,能通过Java虚拟机或者
throw语句抛出该异常对象,并能通过try…catch…finally处理。
C)如果只用一个catch块捕捉多个异常对象,则catch子句中的参数类型应是所有异常对象的父类。
D)以上说法都不对。
33、下列程序段执行后的结果是(A)。
Strings=newString("
abcdefg"
for(inti=0;
s.length();
i+=2){System.out.print(s.charAt(i));
A)acegB)ACEGC)abcdefgD)abcd
34、有整型数组:
int[]x={12,35,8,7,2};
则调用方法Arrays.sort(x)后,数组x中
的元素值依次是(
)。
A)278
12
35
B)12358
7
2
C)35128
D)8712
35、应用程序的main方法中有以下语句,则输出的结果是(A)。
Strings1=newString("
abc"
Strings2=newString("
booleanb1=s1.equals(s2);
booleanb2=(s1==s2);
System.out.print(b1+"
"
+b2);
A)truefalseB)falsetrueC)truetrueD)falsefalse
36、应用程序的main方法中有以下语句,则输出的结果是(B)。
x"
12345"
y"
67890"
a"
abcde"
));
A)aB)abcdeC)12345D)67890
37、应用程序的main方法中有以下语句,则输出的结果是(B)。
Strings="
12345#aaa#bbb#67890"
intn=s.indexOf("
intk=s.indexOf("
n+1);
intm=s.indexOf("
k+1);
Strings2=s.substring(m+1);
A)123456B)67890C)aaaD)bbb
38、下面程序段执行后b的值是(B)。
Integerinteg=newInteger(9);
booleanb=integinstanceofObject;
A)9B)trueC)1D)false
39、应用程序Test.java的源程序如下,在命令行键入:
javaTestaaabbc
回车后输出的结果是(A)。
publicstaticvoidmain(Stringargs[]){intk1=args.length;
intk2=args[1].length();
System.out.print(k1+"
+k2);
A)32B)12C)13D)33
40、应用程序的main方法中有以下语句,则输出的结果是(A)。
intb[][]={{1},{2,2},{2,2,2}};
i<
i++){
j<
j++){sum*=b[i][j];
A)32B)11C)2D)3
41、应用程序的main方法中有以下语句,则执行后输出的结果是(D)。
int[]x={125,21,5,168,98};
intmax=x[0];
for(inti=1;
i++){if(x[i]>
max)
max=x[i];
System.out.println(max);
42、程序Test.java编译运行后输出的结果是(A)。
Strings1="
java"
Testt=newTest();
System.out.println(t.s1+z);
A)java2B)2C)没有输出结果D)java
43、应用程序的main方法中有以下语句,则输出的结果是(A)。
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”
44、如下哪个是Java中的标识符(A)
A、publicB、superC、3numberD、width
45、如下哪个是Java中的标识符(A)
A、fieldnameB、superC、3numberD、#number
46、已知如下定义:
story"
下面哪个语句不是合法的(A)A、s+="
books"
B、s=s+100;
C、intlen=s.length;
D、Stringt=s+“abc”;
47、如下哪个是Java中有效的关键字(C)
A、nameB、helloC、falseD、good
48、下面的代码段执行之后count的值是什么(D)
intcount=1;
for(inti=1;
i<
=5;
i++){count+=i;
System.out.println(count);
A、5B、1C、15D、16
49、定义一个类,必须使用的关键字是(B)
A、publicB、classC、interfaceD、static
50、定义一个接口必须使用的关键字是(C)
51、如果容器组件p的布局是BorderLayout,则在p的下边中添加一个按钮b,应该使用的语句是(C)
A、p.add(b);
B、p.add(b,"
North"
C、p.add(b,"
South"
D、b.add(p,"
52、声明并创建一个按钮对象b,应该使用的语句是(A)A、Buttonb=newButton();
B、buttonb=newbutton();
C、Buttonb=newb();
D、b.setLabel(“确定”);
53、Frame对象默认的布局管理器是(B)
A、FlowLayoutB、BorderLayout
C、CardLayoutD、null
二、填空题
1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、
编译生成字节码和解释运行字节码。
2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。
3、设x=2,则表达式(x++)/3的值是1。
4、若x=5,y=10,则x<
y和x>
=y的逻辑值分别为true和false。
5、抽象方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
final方法是不能被当前类的子类重新定义的方法。
6、创建一个名为MyPackage的包的语句是packagemypackage,
该语句应该放在程序的位置为:
应放在程序第一句。
7、设有数组定义:
intMyIntArray[]={10,20,30,40,50,60,70};
则执行以下几个语句后的输出结果是120。
ints=0;
for(inti=0;
MyIntArray.length;
i++)if(i%2==1)
s+=MyIntArray[i];
System.out.println(s);
8、在Java程序中,通过类的定义只能实现单重继承,但通过接口的
定义可以实现多重继承关系。
1、如果将类MyClass声明为public,它的文件名称必须是MyClass.java
才能正常编译。
2、Java程序中的单行注释符是//,多行注释符是
/*....*/。
3、Java中布尔类型的常量有两种,它们是true和false。
4、Java中用于定义小数的关键字有两个:
float和double,后者精度高于前者。
5、Java中用于两个数相等比较的运算符是:
==,用于不相等比较的运算符是<
>
。
6、在Java中定义一个字符串类型的变量str的语句是:
Stringstr,定义一个具有10个元素的整型数组a的语句是:
int[]r=newint[10]。
7、导入mypackage包中的所类的命令是impoartmypackage.*;
8、当声明一个数组intarr[]=newint[5];
时,这代表这个数组所保存的变量类型是int,数组名是arr,数组的大小为5,数组元素下标的使用范围是0到4。
9、假设x=13,y=4,则表达式x%y!
=0的值是true,其数据类型是
boolean。
10、异常处理是由try、catch和finally块三个关键所组成的程序块。
11、以下程序段的输出结果是三角形
intx=5,y=6,z=4;
if(x+y>
z&
&
x+z>
y&
z+y>
x)System.out.println("
三角形"
else
不是三角形"
12、下面程序段的执行结果是65432
inta[]={2,3,4,5,6};
for(inti=a.length-1;
i>
=0;
i--)System.out.print(a[i]+"
"
三、简答题
1、简述Java中异常处理的机制?
答:
首先Java的异常是面向对象的。
一个Java的Exception是一个描述异常情况的对象.当出现异常情况时,一个Exception对象就产生了,并放到异常的成员函数里。
Java的异常处理是通过5个关键词来实现的:
try,catch,throw,throws和finally。
1.异常处理:
在Java语言的错误处理结构由try,catch,finally三个块组成。
其中try块存放将可能发生异常的Java语言,并管理相关的异常指针;
catch块紧跟在try块后面,用来激发被捕获的异常;
finally块包含清除程序没有释放的资源,句柄等。
不管try块中的代码如何退出,都将执行finally块。
2.抛出异常:
Java语言可以不在方法中直接捕获,而用throw语句将异常抛给上层的调用者。
Throw语句就是来明确地抛出一个异常;
首先你必需得到一个Throwable的实例句柄,通过参数传到catch中,或者采用new操作符来创建一个。
2、什么是继承?
通过必要的说明能够实现某个类无需重新定义就拥有另一个类的某些属性和方法,并把这种关系称为继承,先定义的类称为父类,后定义的类称为子类,并且允许多层的继承关系。
3、请简述重载和重写的区别?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。
重写Overriding是父类与子类之间多态性的一种表现,重载Overloading
是一个类中多态性的一种表现。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。
子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。
如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。
Overloaded的方法是可以改变返回值的类型。
四、写出下面程序的运行结果
1、importjava.io.*;
publicclassabc
{
publicstaticvoidmain(Stringargs[])
ABs=newAB("
Hello!
IloveJAVA."
System.out.println(s.toString());