西南大学面向对象程序设计作业及笔试答案.docx
- 文档编号:8972711
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:33
- 大小:173.59KB
西南大学面向对象程序设计作业及笔试答案.docx
《西南大学面向对象程序设计作业及笔试答案.docx》由会员分享,可在线阅读,更多相关《西南大学面向对象程序设计作业及笔试答案.docx(33页珍藏版)》请在冰点文库上搜索。
1、阅读下面的程序:
该程序运行的输出结果是:
( C )
1. A.eace
2. B.PEACE
3. C.ecaep
4. D.ECAEP
2.、阅读下面的程序:
该程序运行的输出结果是:
( D )
1. A.0123456789ABCDEF
2. B.ABCDEF0123456789
3. C.0123456789abcdef
4. D.fedcba9876543210
3、阅读下面的程序:
该程序运行的输出结果是:
( D )
1. A.12248
2. B.224832
3. C.1441664
4. D.12624120
4、阅读下面程序:
该程序运行的输出结果是:
( B )
1. A.sum=6
2. B.sum=32
3. C.sum=64
4. D.sum=12
5、从开始执行到执行结束,小应用程序经历的3个状态分别是:
( C )
1. A.初始态、就绪态,结束态
2. B.就绪态、运行态,停止态
3. C.初始态、运行态,停止态
4. D.就绪态、运行态,休眠态
6、下列关于Java小应用程序(Applet)的说法中,正确的是:
( A )
1. A.java.applet.Applet类是所有Java小应用程序的基类
2. B.Java小应用程序不需要编译
3. C.Java小应用程序也需要main()方法
4. D.Java小应用程序必须实现ActionListener接口
7、Swing的三个顶层容器分别是:
( B )
1. A.JApplet,JPanel,JWindow
2. B.JDialog,JApplet,JFrame
3. C.JApplet,JFrame
4. D.JMenu
5. E.JFrame,JPanel,JtextArea
8、把容器划分为东、西、南、北、中5个区域的布局管理器是:
( D )
1. A.BoxLayout
2. B.FlowLayout
3. C.ardLayout
4. D.BorderLayout
9、下列语句序列执行之后,b1,b2,b3,b4的值分别是:
( C )
Strings1="peace";
Strings2=newString(s1);
Strings3=s2;
Strings4=newString("PEACE");
booleanb1=(s1==s2);
booleanb2=s1.equals(s2);
booleanb3=(s3==s2);
booleanb4=s4.equals(s3);
1. A.true,true,false,false
2. B.false,true,true,true
3. C.false,true,true,false
4. D.false,true,false,false
10、下列构造String的语句中,不正确的是:
( D )
1. A.Stringstr2="";
2. B.Stringstr1=newString();
3. C.Stringstr4=""+123;
4. D.Stringstr3=newString(123);
11、下列关于构造方法的说法中,不正确的是:
( B )
1. A.构造方法用于创建类的实例
2. B.构造方法不可以重载
3. C.构造方法不具有返回值类型
4. D.构造方法名必须和类名相同
12、既能作为类的修饰符,也能作为类成员的修饰符的是( A )
1. A.public
2. B.extends
3. C.void
4. D.static
13、执行完下列语句后,变量x的值是( D )
intx=7,y=10;
switch(x/y){
case0:
x++;
case7:
x*=y;
case14:
x+=y;break;
default:
x%=y;
}
1. A.8
2. B.70
3. C.80
4. D.90
14、以下由for语句构成的循环的执行次数是:
( D )
for(inti=0;i<=0;i=i);
1. A.有语法错,不能执行
2. B.一次也不执行
3. C.执行1次
4. D.无限次
15、设有定义inti=7;charch="b";下面赋值语句中不正确是:
( B )
1. A.i=ch;
2. B.ch=i;
3. C.ch=(char)i;
4. D.i=(int)ch;
16、设有定义inti=80,j=7;doubled=80.7;则下列语句中正确的赋值语句是:
( C)
1. A.i+j=(int)d;
2. B.i=d;
3. C.i =(int)d+j;
4. D.j=(int)i-d;
17、以下关于Java语言的叙述错误的是:
(B )
1. A.Java是最纯粹的面向对象语言,对面向对象方法学的支持也最全面
2. B.Java是解释执行的语言,由Java解释器负责将Java源文件解释为机器码执行
3. C.Java是平台无关的,即Java程序不用修改就可以在不同类型的计算机平台上运行
4. D.Java提供了大量功能丰富的可重用类库,有效减少了编程的工作量
18、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序“一次编写,到处运行”
的特点:
( B )
1. A.多线程
2. B.与平台无关
3. C.面向对象
4. D.分布式
19、下列选项中,用于声明实现一个接口关键字是:
( B )
1. A.interface
2. B.implements
3. C.import
4. D.abstract
20、下列不属于Java语言关键字的是( A )
1. A.repeat
2. B.try
3. C.break
4. D.new
21、下列字符序列中可以作为Java语言标识符的是( D )
1. A.true
2. B.123_xyz
3. C.x.y
4. D._x123
22、下列字符序列中不能作为Java语言标识符的是( C )
1. A.abc_123
2. B.圆周率PI
3. C.false
4. D._123abc
23、问:
阅读下面的Java代码,写出打印语句的输出结果(即类的初始化顺序)。
publicclassInitialOrderTest{
//静态变量
publicstaticStringstaticField="静态变量";
//变量
publicStringfield="变量";
//静态初始化块
static{
System.out.println(staticField);
System.out.println("静态初始化块");
}
//初始化块
{
System.out.println(field);
System.out.println("初始化块");
}
//构造器
publicInitialOrderTest(){
System.out.println("构造器");
}
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{
System.out.println("SubClass:
:
fun()");
}
}
classSubClass2extendsSuperClass{
publicvoidfun()throwsFileNotFoundException,ArithmeticException{
System.out.println("B6:
:
method()");
thrownewArithmeticException("被除数为0");
}
}
答:
错误之处:
SubClass1中的fun()无法覆盖SuperClass中的fun();被覆盖的方法不抛出java.lang.Exception
publicvoidfun()throwsException{
^
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(){
System.out.println("ID="+ID);
System.out.println("name="+name);
}
}
}
答:
不能通过编译。
Personp=newPerson(10,"wangke");这一句会报错:
无法从静态上下文中引用非静态变量this。
27、问:
阅读下面的Java代码,写出打印语句
(1)、
(2)、(3)的输出结果,并解释原因。
Stringstr1=newString("wangke");
Stringstr2=newString("wangke");
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{
publicstaticvoidmain(String[]args){
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){
System.out.println("inMyActionListener");
}
}
}
classYourActionListenerimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==btn){
System.out.println("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.println("计算矩形面积");
System.out.print("请输入长:
");
inta,b;
a=System.in.read();
System.out.print("请输入宽:
");
b=System.in.read();
System.out.println("计算矩形面积是:
"+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程序,打印结果是什么?
publicclassTest{
publicstaticvoidchangeStr(Stringstr){
str="welcome";
}
publicstaticvoidmain(String[]args){
Stringstr="1234";
changeStr(str);
System.out.println(str);
}
}
答:
1234
33、问:
下面的Java程序,编译时会报什么错误?
classSuperClass{
publicvoidfun(){
}
}
classSubClassextendsSuperClass{
privatevoidfun(){
System.out.println("SubClass:
:
fun()");
}
}
答:
错误之处:
SubClass中的fun()无法覆盖SuperClass中的fun();正在尝试指定更低的访问权限;为public
privatevoidfun(){
34、问:
下面的代码是否能输出wangke?
try{
System.exit(0);
}finally{
System.out.println("wangke");
}
答:
不会输出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);能否通过编译?
打印输出是多少?
答:
错误1:
Class应改为class
错误2:
publicinti;应改为inti; //局部变量不能用权限修饰符、static修饰
38、问:
下面的Test.java程序,输出结果是derive吗?
classbase{
privatevoidprint(){ //注意:
private修饰
System.out.println("base");
}
publicvoiddoprint(){
print();
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西南 大学 面向 对象 程序设计 作业 笔试 答案
![提示](https://static.bingdoc.com/images/bang_tan.gif)