2022年西南大学秋面向对象程序设计作业及答案实用 .pdf

上传人:Q****o 文档编号:26740677 上传时间:2022-07-19 格式:PDF 页数:48 大小:372.45KB
返回 下载 相关 举报
2022年西南大学秋面向对象程序设计作业及答案实用 .pdf_第1页
第1页 / 共48页
2022年西南大学秋面向对象程序设计作业及答案实用 .pdf_第2页
第2页 / 共48页
点击查看更多>>
资源描述

《2022年西南大学秋面向对象程序设计作业及答案实用 .pdf》由会员分享,可在线阅读,更多相关《2022年西南大学秋面向对象程序设计作业及答案实用 .pdf(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、面向对象程序设计1、阅读下面的程序:该程序运行的输出结果是:() A. eace B. PEACE C. ecaep D. ECAEP 本题参考答案: C 2、阅读下面的程序:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 48 页 - - - - - - - - - 该程序运行的输出结果是:() A. 0123456789ABCDEF B. ABCDEF0123456789 C. 0123456789abcdef D. fedcba9876543210 本题参考答案:

2、D 3、阅读下面的程序:该程序运行的输出结果是:() A. 1 2 2 4 8 B. 2 2 4 8 32 C. 1 4 4 16 64 D. 1 2 6 24 120 本题参考答案: D 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 48 页 - - - - - - - - - 4、阅读下面程序:该程序运行的输出结果是:() A. sum = 6 B. sum = 32 C. sum = 64 D. sum = 12 本题参考答案: B 5、从开始执行到执行结束,小应

3、用程序经历的3 个状态分别是:() A. 初始态、就绪态,结束态 B. 就绪态、运行态,停止态 C. 初始态、运行态,停止态 D. 就绪态、运行态,休眠态本题参考答案: C 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 48 页 - - - - - - - - - 6、下列关于 Java 小应用程序( Applet )的说法中,正确的是:() A. java.applet.Applet类是所有 Java 小应用程序的基类 B. Java 小应用程序不需要编译 C. Ja

4、va 小应用程序也需要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 本题参

5、考答案: D 9、下列语句序列执行之后,b1,b2,b3,b4 的值分别是:() String s1 = peace; String s2 = new String(s1); String s3 = s2; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 48 页 - - - - - - - - - String s4 = new String(PEACE); boolean b1 = (s1 = s2); boolean b2 = s1.equals(s2); bool

6、ean 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 本题参考答案: C 10、下列构造 String 的语句中,不正确的是:() A. String str2 = ; B. String str1 = new String( ); C. String str4 = + 123; D. String str3 = new String(

7、123); 本题参考答案: D 11、下列关于构造方法的说法中,不正确的是:() A. 构造方法用于创建类的实例 B. 构造方法不可以重载 C. 构造方法不具有返回值类型 D. 构造方法名必须和类名相同本题参考答案: B 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 48 页 - - - - - - - - - 12、既能作为类的修饰符, 也能作为类成员的修饰符的是() A. public B. extends C. void D. static 本题参考答案: A 1

8、3、执行完下列语句后,变量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 本题参考答案: D 14、以下由 for 语句构成的循环的执行次数是:() for (int i=0; ijava IO 计算矩形面积请输入长: 1 请输入宽:计算矩形面积是:637 本题参考答案:答:因为 System.in.read() 接收的是字节0-255 。当输入字符1 以后,其实返回的是ASCII 码,也就是49。

9、然后你又按了个回车,回车的 ASCII 码是 13。所以,结果相当于 a=49 b=13 49*13=637 32、问:下面的Java 程序,打印结果是什么?public class Test public static void changeStr(String str) str = welcome; public static void main(String args) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 48 页 - - - - - - - - -

10、String str = 1234; changeStr(str); System.out.println(str); 本题参考答案:答:1234 33、问:下面的Java 程序,编译时会报什么错误?class SuperClass public void fun() class SubClass extends SuperClass private void fun() System.out.println(SubClass:fun(); 本题参考答案:答:错误之处:SubClass 中的 fun() 无法覆盖 SuperClass 中的 fun() ;正在尝试指定更低的访问权限;为 pub

11、lic private void fun() 34、问:下面的代码是否能输出wangke ? try System.exit(0); finally 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 48 页 - - - - - - - - - System.out.println(wangke); 本题参考答案:答:不会输出wangke 。在 try-catch-finally结构中,如果执行到try 代码段或 catch 代码段中的return 语句,则先运行fina

12、lly 代码段,再运行 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() public int i; 本题参考答案:答:错误 1:Class应改为 class 错误 2:public int i; 应

13、改为 int i; / 局部变量不能用权限修饰符、static 修饰37、问: int count = 10; count += +count; System.out.println(count); 能否通过编译?打印输出是多少?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 48 页 - - - - - - - - - 本题参考答案:答:可以通过编译。打印输出21。 int count = 10; count += +count; / 相当于 count = coun

14、t + (+count); System.out.println(count); / 输出 21 38、问:下面的Test.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

15、 static void main(String args) base b = new derive(); b.doprint(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 48 页 - - - - - - - - - 本题参考答案:答:不是。输出结果是base 39、阅读下面的程序,写出程序运行的输出结果。public class Test2 public static char method(char ch) if(ch=A) & (ch=0; i-) s1

16、 = s1 + method(s.charAt(i); System.out.println(s1); 本题参考答案:答:程序运行的输出结果是:fedcba9876543210 40、阅读下面程序,并回答问题。(1)try 块中包含的哪些语句或表达式可能抛出异常?(2)流 DataOutputStream和 DataInputStream常被用于何种操作?(3)假定文件out.txt 中原本没有任何数据,这段程序执行完成后,文件out.txt 的内容是什么?程序在控制台窗口输出什么?import java.io.*; public class Test4 public static void

17、main(String args) try 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 48 页 - - - - - - - - - DataOutputStream dout = new DataOutputStream( new FileOutputStream(out.txt); for (int i = 0; i 10; i+) dout.writeInt(0 + i); dout.close(); DataInputStream din = new Dat

18、aInputStream( 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 FileInput

19、Stream(“ 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,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 48 页 - - - - - - - - - 41、Java AWT 程序设计:在窗口中画出三个TextFi

20、eld( 前两个用于接收用户输入的两个整数,第三个用于显示相加和),一个加号Label,一个等于号Button. 当按下Button 时,将相加之和放到第三个TextField 中。注意:不允许使用内部类。本题参考答案:import 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; publ

21、ic void launchFrame() num1 = new TextField(10); num2 = new TextField(10); num3 = new TextField(15); Label lblPlus = new Label(+); Button btnEqual = new Button(=); btnEqual.addActionListener(new MyMonitor(this); setLayout(new FlowLayout(); add(num1); add(lblPlus); add(num2); add(btnEqual); add(num3);

22、 pack(); setVisible(true); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 48 页 - - - - - - - - - class MyMonitor implements ActionListener TFFrame tf = null; public MyMonitor(TFFrame tf) this.tf = tf; public void actionPerformed(ActionEvent e) int n1 = Integer

23、.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类型的异常 ); throw new ArithmeticException(); public static void catchArrayExcep

24、tion() try throwException(); System.out.println(在 try 语句块中的多余语句); catch(ArrayIndexOutOfBoundsException e) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 48 页 - - - - - - - - - System.err.println(方法 catchArrayException捕捉到异常 ); finally System.out.println(方法 catc

25、hArrayException的 finally 语句块 ); System.out.println(方法 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(异常处理结束 ); 本题参考答案:答:

26、输出为产生并抛出ArithmeticException类型的异常方法 catchArrayException的 finally 语句块方法 main 捕捉到异常方法 main 的 finally 语句块异常处理结束名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 48 页 - - - - - - - - - 43、问:下面语句中的错误都是在Java 数据类型转换中的易错点。分析语句的错误原因并改正。(1) float f1 = 0.1; (2) long l1 = 123

27、45678, 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, f2 = 123; float f3 = f1+f2*0.1; / 有错本题参考答案:答:(1) float f1 = 0.1; 错误原因: 0.1 缺省为 double 类型改正办法: float f1 = (float)0

28、.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 在自动转换中超出范围名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 48 页 -

29、- - - - - - - - 改正办法: byte b1 = 1, b2 = 2, b3 = 127; (4) byte b = b1 - b2; 错误原因: b1、b2 在作运算前首先转换为int 型,因此减法结果就是int 型,不能直接赋值给byte 型的 b 来保存,需要强制类型转换改正办法: byte b = (byte)(b1-b2); (5) int i = 1; i = i*0.1; 错误原因: 0.1 是 double 型,i 在乘法前会自动转换为double 型,乘法结果也是double 型,不能直接赋值为int 型的 i 来保存,需要强制类型转换改正办法: i = (in

30、t)(i*0.1); (6) char c1=a, c2=125; char c = c1 + c2 - 1; 错误原因: c1、c2 在作运算前首先转换为int 型,因此计算结果就是int 型,不能直接赋值给 char 型的 c来保存,需要强制类型转换改正办法: char c = (char)(c1 + c2 - 1); (7) float f1 = 0.1f, f2 = 123; float f3 = f1+f2*0.1; 错误原因:由于0.1 是 double 型,在运算前首先全部要转换为double 型,因此计算结果就是double 型,不能直接赋值给float 型的 f4 来保存,需

31、要强制类型转换改正办法: float f4 = (float)(f1+f2*0.1); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 48 页 - - - - - - - - - 44、阅读下面的程序,写出输出结果。class Parent / 静态变量 public static String p_StaticField = 父类 -静态变量 ; / 变量 public String p_Field = 父类 -变量 ; / 静态初始化块 static System

32、.out.println(p_StaticField); System.out.println(父类 -静态初始化块 ); / 初始化块 System.out.println(p_Field); System.out.println(父类 -初始化块 ); / 构造器 public Parent() System.out.println(父类 -构造器 ); public class SubClass extends Parent / 静态变量名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -

33、- 第 26 页,共 48 页 - - - - - - - - - public static String s_StaticField = 子类 -静态变量 ; / 变量 public String s_Field = 子类-变量 ; / 静态初始化块 static System.out.println(s_StaticField); System.out.println(子类 -静态初始化块 ); / 初始化块 System.out.println(s_Field); System.out.println(子类 -初始化块 ); / 构造器 public SubClass() System

34、.out.println(子类 -构造器 ); / 程序入口 public static void main(String args) new SubClass(); 本题参考答案:父类-静态变量父类-静态初始化块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 27 页,共 48 页 - - - - - - - - - 子类-静态变量子类-静态初始化块父类-变量父类-初始化块父类-构造器子类-变量子类-初始化块子类-构造器45、请按下面的要求编写程序。(1)定义一个接口Shapes,

35、它至少包含一个可以计算面积的成员方法。(2)编写实现该Shapes 接口的两个类:正方形类和圆形类。(3)编写一个具有泛型特点的类Map,要求该类可以在控制台窗口输出某种图形的面积,而且这个类的类型变量所对应的实际类型就是(2)编写的正方形类和圆形类。(4)利用具有泛型特点的类Map 在控制台窗口分别输出给定边长的正方形的面积和给定半径的圆的面积。本题参考答案:/ 定义接口interface Shapes abstract double getArea(); / 定义 Square 类class Square implements Shapes 名师资料总结 - - -精品资料欢迎下载 - -

36、 - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 28 页,共 48 页 - - - - - - - - - public double edge; public Square(double edge) this.edge = edge; public double getArea() return (edge * edge); / 定义 Circle 类class Circle implements Shapes public double radius; public Circle(double radius) this.rad

37、ius = radius; public double getArea() return (radius * radius * Math.PI); class Map / 使用泛型 T,T 应当是 Shapes 的子类 T t; public Map(T t) this.t = t; public double getArea() return t.getArea(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 29 页,共 48 页 - - - - - - - - - / 测

38、试程序class Test public static void main(String args) Map m1 = new Map(new Square(15.0); System.out.println(正方形的面积是 : + m1.getArea(); Map m2 = new Map(new Circle(15.0); System.out.println(圆形的面积是 : + m2.getArea(); 46、阅读下面程序,写出程序的输出结果。class SuperClass int data; SuperClass() System.out.println(SuperClass:

39、constructor: data= + data); add(1); System.out.println(SuperClass:constructor: data= + data); public void add(int i) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 30 页,共 48 页 - - - - - - - - - data += i; public void print() System.out.println(data); class SubClass e

40、xtends SuperClass SubClass() System.out.println(SubClass:constructor: data= + data); add(2); System.out.println(SubClass:constructor: data= + data); public void add(int i) data += i*2; class Test public static void method(SuperClass a) a.add(6); a.print(); public static void main(String args) method

41、(new SubClass(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 31 页,共 48 页 - - - - - - - - - 本题参考答案:SuperClass:constructor: data=0 SuperClass:constructor: data=2 SubClass:constructor: data=2 SubClass:constructor: data=6 18 47、编写一个简单的乘法器,界面如下图所示,在第一个文本框中输入第一个乘数;在第二个文

42、本框中输入第二个乘数;当单击“= ”按钮时,在第三个文本框中输出其乘积。本题参考答案:/ import语句import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Multiply extends JFrame implements ActionListener / 组件声明及创建 private JButton operator = new JButton( * ); private JTextField input1 = new JTextField(5); private JTextFie

43、ld input2 = new JTextField(5); private JButton equal = new JButton( = ); private JTextField result = new JTextField(5); / 添加组件 public Multiply () 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 32 页,共 48 页 - - - - - - - - - Container c = getContentPane(); c.setLayout(

44、new FlowLayout(); c.add(input1); c.add(operator); c.add(input2); c.add(equal); c.add(result); equal.addActionListener(this); / 处理按钮动作事件 public void actionPerformed(ActionEvent e) double operand1 = Double.valueOf(input1.getText().doubleValue(); double operand2 = Double.valueOf(input2.getText().double

45、Value(); result.setText(String.valueOf(operand1*operand2); / 设置框架属性 public static void main(String args ) Multiply f = new Multiply(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(320, 80); f.setVisible(true); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -

46、 - 第 33 页,共 48 页 - - - - - - - - - 48、请设计一个软件包。要求该软件包至少拥有正方形类、圆类。要求每个类都具有构造方法、计算该图形的周长的成员方法和计算该图形的面积的成员方法。然后编写一个测试程序,分别创建这些类的实例对象,并输出这些实例对象的周长和面积。在创建这些实例对象时,构造方法的调用参数值分别是:正方形:左上定点的坐标为(5,10) ,边长为15。圆形:圆心的坐标为(0,0) ,圆心为 15。本题参考答案:interface Shapes abstract double getArea(); abstract double getPerimeter(

47、); / 定义接口class Square implements Shapes / 定义 Square 类 public int x, y; public int width, height; public double getArea() return (width * height); public double getPerimeter() return (2 * width + 2 * height); public Square(int x, int y, int width, int height) this.x = x; this.y = y; this.width = widt

48、h; this.height = height; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 34 页,共 48 页 - - - - - - - - - class Circle implements Shapes / 定义 Circle 类 public int x, y; public double radius; public double getArea() return (radius * radius * Math.PI); public double getPeri

49、meter() return (2 * Math.PI * radius); public Circle(int x, int y, double r) this.x = x; this.y = y; this.radius = r; public class TestShape / 测试程序 public static void main(String args) Shapes s1 = new Square(5, 10, 15, 15); Shapes s2 = new Circle(0, 0, 6.0); System.out.println(正方形的面积是 : + s1.getArea

50、(); System.out.println(正方形的周长是 : + s1.getPerimeter(); System.out.println(圆形的面积是 : + s2.getArea(); System.out.println(圆形的周长是 : + s2.getPerimeter(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 35 页,共 48 页 - - - - - - - - - 49、编写一个程序,要求随机生成61 个学生的成绩(从0 到 100 的整数),在将成

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁