《西南大学2017秋面向对象程序设计作业及答案.docx》由会员分享,可在线阅读,更多相关《西南大学2017秋面向对象程序设计作业及答案.docx(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 面向对象程序设计 1、阅读下面的程序:该程序运行的输出结果是:( ) A. eace B. PEACE C. ecaep D. ECAEP本题参考答案: C2、阅读下面的程序:该程序运行的输出结果是:( ) A. 0123456789ABCDEF B. ABCDEF0123456789 C. 0123456789abcdef D. fedcba9876543210本题参考答案: D3、阅读下面的程序:该程序运行的输出结果是:( ) A. 1 2 2 4 8 B. 2 2 4 8 32 C. 1 4 4 16 64 D. 1 2 6 24 120本题参考答案: D4、阅读下面程序:该程序运行的
2、输出结果是:( ) A. sum = 6 B. sum = 32 C. sum = 64 D. sum = 12本题参考答案:B5、从开始执行到执行结束,小应用程序经历的3个状态分别是:( ) A. 初始态、就绪态,结束态 B. 就绪态、运行态,停止态 C. 初始态、运行态,停止态 D. 就绪态、运行态,休眠态本题参考答案: C6、下列关于Java小应用程序(Applet)的说法中,正确的是:( ) A. java.applet.Applet类是所有Java小应用程序的基类 B. Java小应用程序不需要编译 C. Java小应用程序也需要main()方法 D. Java小应用程序必须实现Ac
3、tionListener接口本题参考答案: A7、Swing的三个顶层容器分别是:( ) A. JApplet,JPanel,JWindow B. JDialog,JApplet,JFrame C. JApplet,JFrame D. JMenu E. JFrame,JPanel,JTextArea本题参考答案: B8、把容器划分为东、西、南、北、中5个区域的布局管理器是:( ) A. BoxLayout B. FlowLayout C. ardLayout D. BorderLayout本题参考答案: D9、下列语句序列执行之后,b1,b2,b3,b4的值分别是:( ) String s1
4、= peace; String s2 = new String(s1); String s3 = s2; String s4 = new String(PEACE); boolean b1 = (s1 = s2); boolean b2 = s1.equals(s2); boolean b3 = (s3 = s2); boolean b4 = s4.equals(s3); A. true,true,false,false B. false,true,true,true C. false,true,true,false D. false,true,false,false本题参考答案: C10、下
5、列构造String的语句中,不正确的是:( ) A. String str2 = ; B. String str1 = new String( ); C. String str4 = + 123; D. String str3 = new String(123);本题参考答案: D11、下列关于构造方法的说法中,不正确的是:( ) A. 构造方法用于创建类的实例 B. 构造方法不可以重载 C. 构造方法不具有返回值类型 D. 构造方法名必须和类名相同本题参考答案: B12、既能作为类的修饰符, 也能作为类成员的修饰符的是( ) A. public B. extends C. void D. s
6、tatic本题参考答案: A13、执行完下列语句后,变量x的值是( ) int x=7, y=10; switch( x/y ) case 0: x+; case 7: x*=y; case 14: x+=y; break; default: x%=y; A. 8 B. 70 C. 80 D. 90本题参考答案: D14、以下由for语句构成的循环的执行次数是:( ) for (int i=0; ijava IO 计算矩形面积 请输入长:1 请输入宽:计算矩形面积是:637本题参考答案:答: 因为System.in.read()接收的是字节0-255。 当输入字符1以后,其实返回的是ASCII
7、码,也就是49。然后你又按了个回车,回车的ASCII码是13。 所以,结果相当于 a=49 b=13 49*13=63732、问:下面的Java程序,打印结果是什么? public class Test public static void changeStr(String str) str = welcome; public static void main(String args) String str = 1234; changeStr(str); System.out.println(str); 本题参考答案:答:123433、问:下面的Java程序,编译时会报什么错误?class S
8、uperClass public void fun() class SubClass extends SuperClass private void fun() System.out.println(SubClass:fun(); 本题参考答案:答:错误之处:SubClass中的fun()无法覆盖 SuperClass 中的 fun();正在尝试指定更低的访问权限;为 public private void fun() 34、问:下面的代码是否能输出wangke? try System.exit(0); finally System.out.println(wangke); 本题参考答案:答:
9、不会输出wangke。在try-catch-finally结构中,如果执行到try代码段或catch代码段中的return语句,则先运行finally代码段,再运行return语句;如果执行到try代码段或catch代码段中的System.exit(0)语句,则直接退出程序,即这时finally代码段不会被执行到。35、问:String s = new String(xyz); 创建了几个String Object?本题参考答案:答:两个对象。一个是“xyx”,一个是指向“xyx”的引用对象s。36、问:下面的Test.java程序,有哪两处错误?Class Test void f() pub
10、lic int i; 本题参考答案:答:错误1:Class应改为class错误2:public int i; 应改为int i; / 局部变量不能用权限修饰符、static修饰37、问:int count = 10; count += +count; System.out.println(count); 能否通过编译?打印输出是多少?本题参考答案:答:可以通过编译。打印输出21。 int count = 10; count += +count; / 相当于count = count + (+count); System.out.println(count); / 输出2138、问:下面的Tes
11、t.java程序,输出结果是derive吗?class base private void print() / 注意:private修饰 System.out.println(base); public void doprint() print(); class derive extends base private void print() / 注意:private修饰 System.out.println(derive); class Test public static void main(String args) base b = new derive(); b.doprint();
12、本题参考答案:答:不是。输出结果是base39、阅读下面的程序,写出程序运行的输出结果。public class Test2 public static char method(char ch) if(ch=A) & (ch=0; i-) s1 = s1 + method(s.charAt(i); System.out.println(s1); 本题参考答案:答:程序运行的输出结果是:fedcba987654321040、阅读下面程序,并回答问题。(1)try块中包含的哪些语句或表达式可能抛出异常?(2)流DataOutputStream和DataInputStream常被用于何种操作?(3)
13、假定文件out.txt中原本没有任何数据,这段程序执行完成后,文件out.txt的内容是什么?程序在控制台窗口输出什么? import java.io.*;public class Test4 public static void main(String args) try DataOutputStream dout = new DataOutputStream( new FileOutputStream(out.txt); for (int i = 0; i 10; i+) dout.writeInt(0 + i); dout.close(); DataInputStream din = n
14、ew DataInputStream( new FileInputStream(out.txt); for (int i = 0; i 10; i+) System.out.print(din.readInt() - 0 + , ); din.close(); catch (IOException e) System.err.println(发生异常: + e); e.printStackTrace(); 本题参考答案:答:问题(1): new FileOutputStream(“out.txt”) dout.writeInt( 0 + i); dout.close( ); new FileI
15、nputStream(“out.txt”) din.readInt( ) din.close( );问题(2):常被用于读取与存储(读写或输入/输出)基本数据类型的数据。问题(3): 文件out.txt的内容是:0 1 2 3 4 5 6 7 8 9 程序在控制台窗口输出:0,1,2,3,4,5,6,7,8,9,41、Java AWT程序设计:在窗口中画出三个TextField(前两个用于接收用户输入的两个整数,第三个用于显示相加和),一个加号Label,一个等于号Button. 当按下Button时,将相加之和放到第三个TextField中。注意:不允许使用内部类。本题参考答案:import
16、 java.awt.*;import java.awt.event.*;public class TFMath public static void main(String args) new TFFrame().launchFrame(); class TFFrame extends Frame TextField num1, num2, num3; public void launchFrame() num1 = new TextField(10); num2 = new TextField(10); num3 = new TextField(15); Label lblPlus = ne
17、w Label(+); Button btnEqual = new Button(=); btnEqual.addActionListener(new MyMonitor(this); setLayout(new FlowLayout(); add(num1); add(lblPlus); add(num2); add(btnEqual); add(num3); pack(); setVisible(true); class MyMonitor implements ActionListener TFFrame tf = null; public MyMonitor(TFFrame tf) t
18、his.tf = tf; public void actionPerformed(ActionEvent e) int n1 = Integer.parseInt(tf.num1.getText(); int n2 = Integer.parseInt(tf.num2.getText(); tf.num3.setText( + (n1+n2); 42、阅读下面的程序,写出输出结果。public class MyException public static void throwException() System.out.println(产生并抛出ArithmeticException类型的异
19、常); throw new ArithmeticException(); public static void catchArrayException() try throwException(); System.out.println(在try语句块中的多余语句); catch(ArrayIndexOutOfBoundsException e) System.err.println(方法catchArrayException捕捉到异常); finally System.out.println(方法catchArrayException的finally语句块); System.out.prin
20、tln(方法catchArrayException运行结束); public static void main(String args) try catchArrayException(); catch(ArithmeticException e) System.err.println(方法main捕捉到异常); finally System.out.println(方法main的finally语句块); System.out.println(异常处理结束); 本题参考答案:答:输出为产生并抛出ArithmeticException类型的异常方法catchArrayException的fina
21、lly语句块方法main捕捉到异常方法main的finally语句块异常处理结束43、问:下面语句中的错误都是在Java数据类型转换中的易错点。分析语句的错误原因并改正。(1) float f1 = 0.1;(2) long l1 = 12345678, l2 = 8888888888;(3) byte b1 = 1, b2 = 2, b3 = 129;(4) byte b = b1 - b2;(5)int i = 1;i = i * 0.1; / 有错(6) char c1 = a, c2 = 125;char c = c1 + c2 - 1; / 有错(7)float f1 = 0.1f,
22、 f2 = 123; float f3 = f1+f2*0.1; / 有错本题参考答案:答:(1) float f1 = 0.1;错误原因:0.1缺省为double类型改正办法:float f1 = (float)0.1; 或改为 float f1=0.1f;(2) long l1 = 12345678, l2 = 8888888888;错误原因:8888888888已经超出缺省int型的最大表示范围,必须加字母L。改正办法:long l1 = 12345678, l2 = 8888888888L;(3) byte b1 = 1, b2 = 2, b3 = 129;错误原因:129在自动转换中超出范围 改正办法:b