西南大学秋面向对象程序设计作业及答案.docx

上传人:b****8 文档编号:9017246 上传时间:2023-02-02 格式:DOCX 页数:50 大小:58.59KB
下载 相关 举报
西南大学秋面向对象程序设计作业及答案.docx_第1页
第1页 / 共50页
西南大学秋面向对象程序设计作业及答案.docx_第2页
第2页 / 共50页
西南大学秋面向对象程序设计作业及答案.docx_第3页
第3页 / 共50页
西南大学秋面向对象程序设计作业及答案.docx_第4页
第4页 / 共50页
西南大学秋面向对象程序设计作业及答案.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

西南大学秋面向对象程序设计作业及答案.docx

《西南大学秋面向对象程序设计作业及答案.docx》由会员分享,可在线阅读,更多相关《西南大学秋面向对象程序设计作业及答案.docx(50页珍藏版)》请在冰豆网上搜索。

西南大学秋面向对象程序设计作业及答案.docx

西南大学秋面向对象程序设计作业及答案

面向对象程序设计

1、阅读下面的程序:

该程序运行的输出结果是:

()

A.eace

B.PEACE

C.ecaep

D.ECAEP

本题参考答案:

C

2、阅读下面的程序:

该程序运行的输出结果是:

()

A.0123456789ABCDEF

B.ABCDEF0123456789

C.0123456789abcdef

D.fedcba9876543210

本题参考答案:

D

3、阅读下面的程序:

该程序运行的输出结果是:

()

A.12248

B.224832

C.1441664

D.12624120

本题参考答案:

D

4、阅读下面程序:

该程序运行的输出结果是:

()

A.sum=6

B.sum=32

C.sum=64

D.sum=12

本题参考答案:

B

5、从开始执行到执行结束,小应用程序经历的3个状态分别是:

()

A.初始态、就绪态,结束态

B.就绪态、运行态,停止态

C.初始态、运行态,停止态

D.就绪态、运行态,休眠态

本题参考答案:

C

6、下列关于Java小应用程序(Applet)的说法中,正确的是:

()

A.java.applet.Applet类是所有Java小应用程序的基类

B.Java小应用程序不需要编译

C.Java小应用程序也需要main()方法

D.Java小应用程序必须实现ActionListener接口

本题参考答案:

A

7、Swing的三个顶层容器分别是:

()

A.JApplet,JPanel,JWindow

B.JDialog,JApplet,JFrame

C.JApplet,JFrame

D.JMenu

E.JFrame,JPanel,JTextArea

本题参考答案:

B

8、把容器划分为东、西、南、北、中5个区域的布局管理器是:

()

A.BoxLayout

B.FlowLayout

C.ardLayout

D.BorderLayout

本题参考答案:

D

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

本题参考答案:

C

10、下列构造String的语句中,不正确的是:

()

A.Stringstr2="";

B.Stringstr1=newString();

C.Stringstr4=""+123;

D.Stringstr3=newString(123);

本题参考答案:

D

11、下列关于构造方法的说法中,不正确的是:

()

A.构造方法用于创建类的实例

B.构造方法不可以重载

C.构造方法不具有返回值类型

D.构造方法名必须和类名相同

本题参考答案:

B

12、既能作为类的修饰符,也能作为类成员的修饰符的是()

A.public

B.extends

C.void

D.static

本题参考答案:

A

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

本题参考答案:

D

14、以下由for语句构成的循环的执行次数是:

()

for(inti=0;i<=0;i=i);

A.有语法错,不能执行

B.一次也不执行

C.执行1次

D.无限次

本题参考答案:

D

15、设有定义inti=7;charch="b";下面赋值语句中不正确是:

()

A.i=ch;

B.ch=i;

C.ch=(char)i;

D.i=(int)ch;

本题参考答案:

B

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;

本题参考答案:

C

17、以下关于Java语言的叙述错误的是:

()

A.Java是最纯粹的面向对象语言,对面向对象方法学的支持也最全面

B.Java是解释执行的语言,由Java解释器负责将Java源文件解释为机器码执行

C.Java是平台无关的,即Java程序不用修改就可以在不同类型的计算机平台上运行

D.Java提供了大量功能丰富的可重用类库,有效减少了编程的工作量

本题参考答案:

B

18、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序“一次编写,到处运行”的特点:

()

A.多线程

B.与平台无关

C.面向对象

D.分布式

本题参考答案:

B

19、下列选项中,用于声明实现一个接口关键字是:

()

A.interface

B.implements

C.import

D.abstract

本题参考答案:

B

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);

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);能否通过编译?

打印输出是多少?

 

本题参考答案:

答:

可以通过编译。

打印输出21。

intcount=10;

count+=++count;//相当于count=count+(++count);

System.out.println(count);//输出21

38、问:

下面的Test.java程序,输出结果是derive吗?

classbase{

privatevoidprint(){//注意:

private修饰

System.out.println("base");

}

publicvoiddoprint(){

print();

}

}

classderiveextendsbase{

privatevoidprint(){//注意:

private修饰

System.out.println("derive");

}

}

classTest{

publicstaticvoidmain(String[]args){

baseb=newderive();

b.doprint();

}

}

本题参考答案:

答:

不是。

输出结果是base

39、阅读下面的程序,写出程序运行的输出结果。

publicclassTest2{

publicstaticcharmethod(charch){

if((ch>='A')&&(ch<='Z'))

return(char)(ch+32);

elsereturnch;

}

publicstaticvoidmain(String[]args){

Strings="0123456789ABCDEF",s1="";

for(inti=s.length()-1;i>=0;i--)

s1=s1+method(s.charAt(i));

System.out.println(s1);

}

}

本题参考答案:

答:

程序运行的输出结果是:

fedcba9876543210

40、阅读下面程序,并回答问题。

(1)try块中包含的哪些语句或表达式可能抛出异常?

(2)流DataOutputStream和DataInputStream常被用于何种操作?

(3)假定文件out.txt中原本没有任何数据,这段程序执行完成后,文件out.txt的内容是什么?

程序在控制台窗口输出什么?

importjava.io.*;

publicclassTest4{

publicstaticvoidmain(Stringargs[]){

try{

DataOutputStreamdout=newDataOutputStream(

newFileOutputStream("out.txt"));

for(inti=0;i<10;i++)

dout.writeInt("0"+i);

dout.close();

DataInputStreamdin=newDataInputStream(

newFileInputStream("out.txt"));

for(inti=0;i<10;i++)

System.out.print(din.readInt()-"0"+",");

din.close();

}catch(IOExceptione){

System.err.println("发生异常:

"+e);

e.printStackTrace();

}

}

}

本题参考答案:

答:

问题

(1):

newFileOutputStream(“out.txt”)

dout.writeInt(‘0’+

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1