《西南大学面向对象程序设计作业及笔试答案.docx》由会员分享,可在线阅读,更多相关《西南大学面向对象程序设计作业及笔试答案.docx(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上1、阅读下面的程序:该程序运行的输出结果是:(C )1. A. eace2. B. PEACE3. C. ecaep4. D. ECAEP2. 、阅读下面的程序:该程序运行的输出结果是:(D )1. A. ABCDEF2. B. ABCDEF3. C. abcdef4. D. fedcba3、阅读下面的程序:该程序运行的输出结果是:(D )1. A. 1 2 2 4 82. B. 2 2 4 8 323. C. 1 4 4 16 644. D. 1 2 6 24 1204、阅读下面程序:该程序运行的输出结果是:(B )1. A. sum = 62. B. sum =
2、323. C. sum = 644. D. sum = 125、从开始执行到执行结束,小应用程序经历的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的三个顶
3、层容器分别是:(B )1. A. JApplet,JPanel,JWindow2. B. JDialog,JApplet,JFrame3. C. JApplet,JFrame4. D. JMenu5. E. JFrame,JPanel,JtextArea8、把容器划分为东、西、南、北、中5个区域的布局管理器是:(D )1. A. BoxLayout2. B. FlowLayout3. C. ardLayout4. D. BorderLayout9、下列语句序列执行之后,b1,b2,b3,b4的值分别是:(C ) String s1 = peace; String s2 = new String
4、(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);1. A. true,true,false,false2. B. false,true,true,true3. C. false,true,true,false4. D. false,true,false,false10、下列构造String的语句中,不正确的是:(D )1. A. St
5、ring str2 = ;2. B. String str1 = new String( );3. C. String str4 = + 123;4. D. String str3 = new String(123);11、下列关于构造方法的说法中,不正确的是:(B )1. A. 构造方法用于创建类的实例2. B. 构造方法不可以重载3. C. 构造方法不具有返回值类型4. D. 构造方法名必须和类名相同12、既能作为类的修饰符, 也能作为类成员的修饰符的是( A )1. A. public2. B. extends3. C. void4. D. static13、执行完下列语句后,变量x的值
6、是(D ) int x=7, y=10; switch( x/y ) case 0: x+; case 7: x*=y; case 14: x+=y; break; default: x%=y; 1. A. 82. B. 703. C. 804. D. 9014、以下由for语句构成的循环的执行次数是:(D ) for (int i=0; ijava IO 计算矩形面积 请输入长:1 请输入宽:计算矩形面积是:637答: 因为System.in.read()接收的是字节0-255。 当输入字符1以后,其实返回的是ASCII码,也就是49。然后你又按了个回车,回车的ASCII码是13。 所以,结
7、果相当于 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); 答:1234 33、问:下面的Java程序,编译时会报什么错误?class SuperClass public void fun() class SubClass
8、 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); 答:不会输出wangke。在try-catch-finally结构中,如果执行到try代码段或catch代码段中的r
9、eturn语句,则先运行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() public int i; 答:错误1:Class应改为class错误2:public int i; 应改为int i; / 局部变
10、量不能用权限修饰符、static修饰 37、问:int count = 10; count += +count; System.out.println(count); 能否通过编译?打印输出是多少?答:错误1:Class应改为class错误2:public int i; 应改为int i; / 局部变量不能用权限修饰符、static修饰 38、问:下面的Test.java程序,输出结果是derive吗?class base private void print() / 注意:private修饰 System.out.println(base); public void doprint() pr
11、int(); 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(); 答:不是。输出结果是base。39、阅读下面的程序,写出程序运行的输出结果。public class Test2 public static char method(char ch) if(ch=A) & (ch=0; i-) s1 =
12、s1 + method(s.charAt(i); System.out.println(s1); 答:程序运行的输出结果是:fedcba40、阅读下面程序,并回答问题。(1)try块中包含的哪些语句或表达式可能抛出异常?(2)流DataOutputStream和DataInputStream常被用于何种操作?(3)假定文件out.txt中原本没有任何数据,这段程序执行完成后,文件out.txt的内容是什么?程序在控制台窗口输出什么?import java.io.*;public class Test4 public static void main(String args) try DataO
13、utputStream dout = new DataOutputStream( new FileOutputStream(out.txt); for (int i = 0; i 10; i+) dout.writeInt(0 + i); dout.close(); DataInputStream din = new DataInputStream( new FileInputStream(out.txt); for (int i = 0; i 10; i+) System.out.print(din.readInt() - 0 + , ); din.close(); catch (IOExc
14、eption e) System.err.println(发生异常: + e); e.printStackTrace(); 答:问题(1): new FileOutputStream(“out.txt”) dout.writeInt( 0 + i); dout.close( ); new FileInputStream(“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
15、,7,8,9, 41、Java AWT程序设计:在窗口中画出三个TextField(前两个用于接收用户输入的两个整数,第三个用于显示相加和),一个加号Label,一个等于号Button. 当按下Button时,将相加之和放到第三个TextField中。注意:不允许使用内部类。答:42、阅读下面的程序,写出输出结果。public class MyException public static void throwException() System.out.println(产生并抛出ArithmeticException类型的异常); throw new ArithmeticException(
16、); 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.println(方法catchArrayException运行结束); pu
17、blic 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的finally语句块方法main捕捉到异常方法main的finally语句块异常处理结束
18、43、问:下面语句中的错误都是在Java数据类型转换中的易错点。分析语句的错误原因并改正。(1) float f1 = 0.1;(2) long l1 = , l2 = ;(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;错误
19、原因:0.1缺省为double类型改正办法:float f1 = (float)0.1; 或改为 float f1=0.1f;(2) long l1 = , l2 = ;错误原因:已经超出缺省int型的最大表示范围,必须加字母L。改正办法:long l1 = , l2 = L;(3) byte b1 = 1, b2 = 2, b3 = 129;错误原因:129在自动转换中超出范围改正办法:byte b1 = 1, b2 = 2, b3 = 127;(4) byte b = b1 - b2;错误原因:b1、b2在作运算前首先转换为int型,因此减法结果就是int型,不能直接赋值给byte型的b来
20、保存,需要强制类型转换 改正办法:byte b = (byte)(b1-b2); (5)int i = 1;i = i*0.1;错误原因:0.1是double型,i在乘法前会自动转换为double型,乘法结果也是double型,不能直接赋值为int型的i来保存,需要强制类型转换改正办法:i = (int)(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)
21、; (7)float f1 = 0.1f, f2 = 123;float f3 = f1+f2*0.1;错误原因:由于0.1是double型,在运算前首先全部要转换为double型,因此计算结果就是double型,不能直接赋值给float型的f4来保存,需要强制类型转换改正办法:float f4 = (float)(f1+f2*0.1);44、阅读下面的程序,写出输出结果。class Parent / 静态变量 public static String p_StaticField = 父类-静态变量; / 变量 public String p_Field = 父类-变量; / 静态初始化块 s
22、tatic System.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 / 静态变量 public static String s_StaticField = 子类-静态变量; / 变量 public String s_Field = 子类-变量; / 静态初始化块 static System.out.println(s_StaticField); System.out.println(子类-静态初始化块); / 初始化块