西南大学秋面向对象程序设计作业及答案.docx
《西南大学秋面向对象程序设计作业及答案.docx》由会员分享,可在线阅读,更多相关《西南大学秋面向对象程序设计作业及答案.docx(25页珍藏版)》请在冰豆网上搜索。
西南大学秋面向对象程序设计作业及答案
面向对象程序设计
1、阅读下面的程序:
该程序运行的输出结果是:
()
A.eace
B.PEACE
C.ecaep
D.ECAEP
此题参考答案:
C
2、阅读下面的程序:
该程序运行的输出结果是:
()
A.09ABCDEF
B.ABCDEF09
C.09abcdef
D.fedcba10
此题参考答案:
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小应用程序的基类
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=(s2);
booleanb3=(s3==s2);
booleanb4=(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=;那么以下语句中正确的赋值语句是:
()
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.
D._x123
此题参考答案:
D
22、以下字符序列中不能作为Java语言标识符的是()
A.abc_123
B.圆周率PI
C.false
D._123abc
此题参考答案:
C
23、问:
阅读下面的Java代码,写出打印语句的输出结果(即类的初始化顺序)。
publicclassInitialOrderTest{
;
classSuperClass{
publicvoidfun()throwsIOException{
}
}
classSubClass1extendsSuperClass{
publicvoidfun()throwsException{
"SubClass:
:
fun()");
}
}
classSubClass2extendsSuperClass{
publicvoidfun()throwsFileNotFoundException,ArithmeticException{
"B6:
:
method()");
thrownewArithmeticException("被除数为0");
}
}
此题参考答案:
答:
错误的地方:
SubClass1中的fun()无法覆盖SuperClass中的fun();被覆盖的方式不抛出publicvoidfun()throwsException{
^
26、问:
下面的程序可否通过编译?
哪条语句会报错?
publicclassTestStaticMain{
publicstaticvoidmain(String[]args){
Personp=newPerson(10,"wangke");
();
}
classPerson{
privateintID;
privateStringname;
Person(intID,Stringname){
=ID;
=name;
}
publicvoidprint(){
"ID="+ID);
"name="+name);
}
}
}
此题参考答案:
答:
不能通过编译。
Personp=newPerson(10,"wangke");这一句会报错:
无法从静态上下文中引用非静态变量this。
27、问:
阅读下面的Java代码,写出打印语句
(1)、
(2)、(3)的输出结果,并说明缘故。
Stringstr1=newString("wangke");
Stringstr2=newString("wangke");
==str2);;
import.*;
importclassTest{
publicstaticvoidmain(String[]args){
newMyFrame().launchFrame();
}
}
classMyFrameextendsJFrame{
JButtonbtn=newJButton("测试");
Containerctp=getContentPane();
publicvoidlaunchFrame(){
setBounds(200,200,250,160);
setResizable(false);
setDefaultCloseOperation;
(newBorderLayout(10,10));
("North",btn);
(newMyActionListener());;
classIO{
publicstaticvoidmain(Stringargs[])throwsIOException{
"计算矩形面积");
"请输入长:
");
inta,b;
a="请输入宽:
");
b="计算矩形面积是:
"+a*b);
}
}
运行:
C:
\temp>javaIO
计算矩形面积
请输入长:
1
请输入宽:
计算矩形面积是:
637
此题参考答案:
答:
因为接收的是字节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);
}
}
此题参考答案:
答:
1234
33、问:
下面的Java程序,编译时会报什么错误?
classSuperClass{
publicvoidfun(){
}
}
classSubClassextendsSuperClass{
privatevoidfun(){
"SubClass:
:
fun()");
}
}
此题参考答案:
答:
错误的地方:
SubClass中的fun()无法覆盖SuperClass中的fun();正在尝试指定更低的访问权限;为public
privatevoidfun(){
^
34、问:
下面的代码是不是能输出wangke?
try{
(0);
}finally{
"wangke");
}
此题参考答案:
答:
可不能输出wangke。
在try-catch-finally结构中,
若是执行到try代码段或catch代码段中的return语句,那么先运行finally代码段,再运行return语句;
若是执行到try代码段或catch代码段中的(0)语句,那么直接退出程序,即这时finally代码段可不能被执行到。
35、问:
Strings=newString("xyz");创建了几个StringObject?
此题参考答案:
答:
两个对象。
一个是“xyx”,一个是指向“xyx”的引用对象s。
36、问:
下面的程序,有哪两处错误?
ClassTest{
voidf(){
publicinti;
}
}
此题参考答案:
答:
错误1:
Class应改成class
错误2:
publicinti;应改成inti;;
publicclassTest4{
publicstaticvoidmain(Stringargs[]){
try{
DataOutputStreamdout=newDataOutputStream(
newFileOutputStream(""));
for(inti=0;i<10;i++)
("0"+i);
();
DataInputStreamdin=newDataInputStream(
newFileInputStream(""));
for(inti=0;i<10;i++)
-"0"+",");
();
}catch(IOExceptione){
"发生异样:
"+e);
();
}
}
}
此题参考答案:
答:
问题
(1):
newFileOutputStream(“”)
(‘0’+i);
();
newFileInputStream(“”)
()
();
问题
(2):
常被用于读取与存储(读写或输入/输出)大体数据类型的数据。
问题(3):
文件的内容是:
0123456789
程序在操纵台窗口输出:
0,1,2,3,4,5,6,7,8,9,
41、JavaAWT程序设计:
在窗口中画出三个TextField(前两个用于接收用户输入的两个整数,第三个用于显示相加和),一个加号Label,一个等于号Button.当按下Button时,将相加上和放到第三个TextField中。
注意:
不许诺利用内部类。
此题参考答案:
import.*;
importclassTFMath{
publicstaticvoidmain(String[]args){
newTFFrame().launchFrame();
}
}
classTFFrameextendsFrame{
TextFieldnum1,num2,num3;
publicvoidlaunchFrame(){
num1=newTextField(10);
num2=newTextField(10);
num3=newTextField(15);
LabellblPlus=newLabel(\"+\");
ButtonbtnEqual=newButton(\"=\");
(newMyMonitor(this));
setLayout(newFlowLayout());
add(num1);
add(lblPlus);
add(num2);
add(btnEqual);
add(num3);
pack();
setVisible(true);
}
}
classMyMonitorimplementsActionListener{
TFFrametf=null;
publicMyMonitor(TFFrametf){
=tf;
}
publicvoidactionPerformed(ActionEvente){
intn1=intn2="\"+(n1+n2));
}
}
42、阅读下面的程序,写出输出结果。
publicclassMyException{
publicstaticvoidthrowException(){
"产生并抛出ArithmeticException类型的异样");
thrownewArithmeticException();
}
publicstaticvoidcatchArrayException(){
try{
throwException();
"在try语句块中的多余语句");
}catch(ArrayIndexOutOfBoundsExceptione){
"方式catchArrayException捕捉到异样");
}finally{
"方式catchArrayException的finally语句块");
}
"方式catchArrayException运行终止");
}
publicstaticvoidmain(String[]args){
try{
catchArrayException();
}catch(ArithmeticExceptione){
"方式main捕捉到异样");
}finally{
"方式main的finally语句块");
}
"异样处置终止");
}
}
此题参考答案:
答:
输出为
产生并抛出ArithmeticException类型的异样
方式catchArrayException的finally语句块
方式main捕捉到异样
方式main的finally语句块
异样处置终止
43、问:
下面语句中的错误都是在Java数据类型转换中的易错点。
分析语句的错误缘故并更正。
(1)floatf1=;
(2)longl1=,l2=88;
(3)byteb1=1,b2=2,b3=129;
(4)byteb=b1-b2;
(5)
inti=1;
i=i*;
;
import.*;
importclassMultiplyextendsJFrameimplementsActionListener{
oubleValue();
doubleoperand2=()).doubleValue();
(operand1*operand2));
}<\/P>
;
import.*;
importclassTest4extendsJAppletimplementsActionListener{
privateContainercp=getContentPane();;
privateJLabelprompt=newJLabel("请点击按钮");
privateJButtonstart=newJButton("开始");
privateJTextFieldoutput=newJTextField(20);
publicvoidinit(){
(newFlowLayout());
(start);
(prompt);
(output);
(false);
(this);
}
publicvoidactionPerformed(ActionEvente){
if((JButton)()==start)
("好勤学习,天天向上");
}
}
此题参考答案:
问题
(1):
Java程序分为Java应用程序(或Javaapplication)和Java小应用程序(或Javaapplet);这段程序是Java小应用程序。
问题
(2):
界面上包括一个标签(JLabel),一个按钮(JButton)和一个文本框(JTextField);点击按钮后,文本框内显示“好勤学习,天天向上”。
问题(3):
ActionListener是动作事件监听器接口;方式actionPerformed()是ActionListener中的方式;其功能是处置applet界面里发生的动作事件。
51、阅读下面程序,并回答下列问题。
(1)类Test3和类SuperTest之间是什么关系?
(2)关键字super和this别离是什么含义?
(3)这段程序的输出是什么?
classSuperTest{
publicintage;
publicSuperTest(Strings){
"Hi,Iam"+s);
age=35;
}
}
publicclassTest3extendsSuperTest{
publicintage;
publicTest3(Strings){
super(s);
"Nicetomeetyou!
");
age=7;
}
publicvoidprint(){
"Ageis"+age);
"Myageis"+;
"Myparent"sageis"+;
}
publicstaticvoidmain(Stringargs[]){
Test3test=newTest3("Olive");
();
}
}
此题参考答案:
问题
(1):
Test3是SuperTest的子类(或SuperTest是Test3的父类,或继承关系)。
问题
(2):
super指对象的父类(或超类);this指利用它的对象本身(或对对象自己的引用)。
问题(3):
程序的输出是:
<\p="">
Hi,IamOlive
Nicetomeetyou!
Ageis7
Myageis7
Myparent"sageis35<\p="">
52、程序设计:
在命令行中以树状结构展现给定的文件夹及其子文件(夹)中的文件。
测试文件夹为C:
Windows,层次用缩进4个空格表示。
此题参考答案:
答:
import.*;
publicclassFileList{
publicstaticvoidmain(String[]args){
Filef=newFile("C:
"++"Windows");
listFiles(f,0);
}