西南大学秋面向对象程序设计作业及答案Word下载.docx
《西南大学秋面向对象程序设计作业及答案Word下载.docx》由会员分享,可在线阅读,更多相关《西南大学秋面向对象程序设计作业及答案Word下载.docx(50页珍藏版)》请在冰豆网上搜索。
8、把容器划分为东、西、南、北、中5个区域的布局管理器是:
A.BoxLayout
B.FlowLayout
C.ardLayout
D.BorderLayout
9、下列语句序列执行之后,b1,b2,b3,b4的值分别是:
Strings1="
peace"
;
Strings2=newString(s1);
Strings3=s2;
Strings4=newString("
PEACE"
);
booleanb1=(s1==s2);
booleanb2=s1.equals(s2);
booleanb3=(s3==s2);
booleanb4=s4.equals(s3);
A.true,true,false,false
B.false,true,true,true
C.false,true,true,false
D.false,true,false,false
10、下列构造String的语句中,不正确的是:
A.Stringstr2="
"
;
B.Stringstr1=newString();
C.Stringstr4="
+123;
D.Stringstr3=newString(123);
11、下列关于构造方法的说法中,不正确的是:
A.构造方法用于创建类的实例
B.构造方法不可以重载
C.构造方法不具有返回值类型
D.构造方法名必须和类名相同
12、既能作为类的修饰符,也能作为类成员的修饰符的是()
A.public
B.extends
C.void
D.static
13、执行完下列语句后,变量x的值是()
intx=7,y=10;
switch(x/y){
case0:
x++;
case7:
x*=y;
case14:
x+=y;
break;
default:
x%=y;
}
A.8
B.70
C.80
D.90
14、以下由for语句构成的循环的执行次数是:
for(inti=0;
i<
=0;
i=i);
A.有语法错,不能执行
B.一次也不执行
C.执行1次
D.无限次
15、设有定义inti=7;
charch="
b"
下面赋值语句中不正确是:
A.i=ch;
B.ch=i;
C.ch=(char)i;
D.i=(int)ch;
16、设有定义inti=80,j=7;
doubled=80.7;
则下列语句中正确的赋值语句是:
A.i+j=(int)d;
B.i=d;
C.i=(int)d+j;
D.j=(int)i-d;
17、以下关于Java语言的叙述错误的是:
A.Java是最纯粹的面向对象语言,对面向对象方法学的支持也最全面
B.Java是解释执行的语言,由Java解释器负责将Java源文件解释为机器码执行
C.Java是平台无关的,即Java程序不用修改就可以在不同类型的计算机平台上运行
D.Java提供了大量功能丰富的可重用类库,有效减少了编程的工作量
18、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序“一次编写,到处运行”的特点:
A.多线程
B.与平台无关
C.面向对象
D.分布式
19、下列选项中,用于声明实现一个接口关键字是:
A.interface
B.implements
C.import
D.abstract
20、下列不属于Java语言关键字的是()
A.repeat
B.try
C.break
D.new
A
21、下列字符序列中可以作为Java语言标识符的是()
A.true
B.123_xyz
C.x.y
D._x123
D
22、下列字符序列中不能作为Java语言标识符的是()
A.abc_123
B.圆周率PI
C.false
D._123abc
C
23、问:
阅读下面的Java代码,写出打印语句的输出结果(即类的初始化顺序)。
publicclassInitialOrderTest{
//静态变量
publicstaticStringstaticField="
静态变量"
//变量
publicStringfield="
变量"
//静态初始化块
static{
System.out.println(staticField);
System.out.println("
静态初始化块"
}
//初始化块
{
System.out.println(field);
初始化块"
//构造器
publicInitialOrderTest(){
构造器"
publicstaticvoidmain(String[]args){
newInitialOrderTest();
}
答:
输出结果是:
静态变量
静态初始化块
变量
初始化块
构造器
24、问:
Math.round(11.5)返回多少?
Math.round(-11.5)返回多少?
Math.round(11.5)返回12,Math.round(-11.5)返回-11。
25、问:
下面的Java程序,编译时会报什么错误?
importjava.io.*;
classSuperClass{
publicvoidfun()throwsIOException{
classSubClass1extendsSuperClass{
publicvoidfun()throwsException{
SubClass:
:
fun()"
classSubClass2extendsSuperClass{
publicvoidfun()throwsFileNotFoundException,ArithmeticException{
B6:
method()"
thrownewArithmeticException("
被除数为0"
错误之处:
SubClass1中的fun()无法覆盖SuperClass中的fun();
被覆盖的方法不抛出java.lang.Exception
^
26、问:
下面的TestStaticMain.java程序能否通过编译?
哪条语句会报错?
publicclassTestStaticMain{
publicstaticvoidmain(String[]args){
Personp=newPerson(10,"
wangke"
p.print();
classPerson{
privateintID;
privateStringname;
Person(intID,Stringname){
this.ID=ID;
this.name=name;
publicvoidprint(){
ID="
+ID);
name="
+name);
不能通过编译。
Personp=newPerson(10,"
这一句会报错:
无法从静态上下文中引用非静态变量this。
27、问:
阅读下面的Java代码,写出打印语句
(1)、
(2)、(3)的输出结果,并解释原因。
Stringstr1=newString("
Stringstr2=newString("
System.out.println(str1==str2);
//
(1)
System.out.println(str1.equals(str2));
//
(2)
System.out.println(str1.hashCode()==str2.hashCode());
//(3)
(1)false。
因为==比较的是对象句柄,而对象str1,str2是完全独立的两个对象,它们的句柄是不同的。
(2)true。
因为String类的equals()源码实现中重写了Object中的equals()方法:
只要两个String对象的字符数组内容相同,就认为两个对象相等。
(3)true。
因为String类的hashCode()源码实现中重写了Object类中的hashCode()方法:
只要String的字符数组内容相同,hashCode就相同。
28、问:
阅读下面的JavaGUIApplication。
在点击“测试”按钮后,控制台的输出信息是什么?
importjava.awt.*;
importjavax.swing.*;
importjava.awt.event.*;
publicclassTest{
newMyFrame().launchFrame();
classMyFrameextendsJFrame{
JButtonbtn=newJButton("
测试"
Containerctp=getContentPane();
publicvoidlaunchFrame(){
setBounds(200,200,250,160);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ctp.setLayout(newBorderLayout(10,10));
ctp.add("
North"
btn);
btn.addActionListener(newMyActionListener());
//btn注册监听器1
btn.addActionListener(newYourActionListener());
//btn注册监听器2
setVisible(true);
classMyActionListenerimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==btn){
inMyActionListener"
classYourActionListenerimplementsActionListener{
inYourActionListener"
控制台输出:
inYourActionListener
inMyActionListener
因为点击事件首先被后注册的监听器newYourActionListener()处理,然后再被先注册的newMyActionListener()处理。
29、问:
数组有没有length()这个方法?
String有没有length()这个方法?
数组没有length()方法,但有length属性。
String有length()方法。
30、问:
&
与&
的区别是什么?
是位运算符;
是布尔逻辑运算符。
31、问:
有一个程序IO.java,代码如下。
发现输入1之后,还没等到输入宽,程序就直接输出了637。
为什么?
importjava.io.*;
classIO{
publicstaticvoidmain(Stringargs[])throwsIOException{
计算矩形面积"
System.out.print("
请输入长:
inta,b;
a=System.in.read();
请输入宽:
b=System.in.read();
计算矩形面积是:
+a*b);
运行:
C:
\temp>
javaIO
计算矩形面积
请输入长:
1
请输入宽:
637
因为System.in.read()接收的是字节0-255。
当输入字符1以后,其实返回的是ASCII码,也就是49。
然后你又按了个回车,回车的ASCII码是13。
所以,结果相当于
a=49
b=13
49*13=637
32、问:
下面的Java程序,打印结果是什么?
publicstaticvoidchangeStr(Stringstr){
str="
welcome"
Stringstr="
1234"
changeStr(str);
System.out.println(str);
1234
33、问:
publicvoidfun(){
classSubClassextendsSuperClass{
privatevoidfun(){
SubClass中的fun()无法覆盖SuperClass中的fun();
正在尝试指定更低的访问权限;
为public
^
34、问:
下面的代码是否能输出wangke?
try{
System.exit(0);
}finally{
不会输出wangke。
在try-catch-finally结构中,
如果执行到try代码段或catch代码段中的return语句,则先运行finally代码段,再运行return语句;
如果执行到try代码段或catch代码段中的System.exit(0)语句,则直接退出程序,即这时finally代码段不会被执行到。
35、问:
Strings=newString("
xyz"
创建了几个StringObject?
两个对象。
一个是“xyx”,一个是指向“xyx”的引用对象s。
36、问:
下面的Test.java程序,有哪两处错误?
ClassTest{
voidf(){
publicinti;
错误1:
Class应改为class
错误2:
publicinti;
应改为inti;
//局部变量不能用权限修饰符、static修饰
37、问:
intcount=10;
count+=++count;
System.out.println(count);
能否通过编译?
打印输出是多少?
可以通过编译。
打印输出21。
intcount=10;
//相当于count=count+(++count);
//输出21
38、问:
下面的Test.java程序,输出结果是derive吗?
classbase{
privatevoidprint(){//注意:
private修饰
base"
publicvoiddoprint(){
print();
classderiveextendsbase{
private修饰
derive"
classTest{
baseb=newderive();
b.doprint();
不是。
输出结果是base
39、阅读下面的程序,写出程序运行的输出结果。
publicclassTest2{
publicstaticcharmethod(charch){
if((ch>
='
A'
)&
(ch<
Z'
))
return(char)(ch+32);
elsereturnch;
Strings="
0123456789ABCDEF"
s1="
for(inti=s.length()-1;
i>
i--)
s1=s1+method(s.charAt(i));
System.out.println(s1);
程序运行的输出结果是:
fedcba9876543210
40、阅读下面程序,并回答问题。
(1)try块中包含的哪些语句或表达式可能抛出异常?
(2)流DataOutputStream和DataInputStream常被用于何种操作?
(3)假定文件out.txt中原本没有任何数据,这段程序执行完成后,文件out.txt的内容是什么?
程序在控制台窗口输出什么?
publicclassTest4{
publicstaticvoidmain(Stringargs[]){
DataOutputStreamdout=newDataOutputStream(
newFileOutputStream("
out.txt"
));
for(inti=0;
i<
10;
i++)
dout.writeInt("
0"
+i);
dout.close();
DataInputStreamdin=newDataInputStream(
newFileInputStream("
System.out.print(din.readInt()-"
+"
"
din.close();
}catch(IOExceptione){
System.err.println("
发生异常:
+e);
e.printStackTrace();
问题
(1):
newFileOutputStream(“out.txt”)
dout.writeInt(‘0’+