|
西南大学培训与继续教育学院课程考试试题卷5 A5 V* j4 R0 w0 u
0 Y! r2 J6 M4 } E0 _0 T
学期:2020年春季
课程名称【编号】:面向对象程序设计【0837】 A卷
:大作业 满分:100 分. F5 d' s, ?7 z5 _' [& l
________________________________________
1 S( i$ J3 g/ q* K( I/ n7 e
一、(共10小题,3分/题,共30分)
1. 以下关于Java语言的叙述错误的是:( )
A. Java 是最纯粹的面向对象语言,对面向对象方法学的支持也最全面* Y; o/ c e# {
B. Java是解释执行的语言,由Java解释器负责将Java源文件解释为机器码执行* q7 c( v: p2 R* Y) X/ Y: g
C. Java是平台无关的,即Java程序不用修改就可以在不同类型的计算机平台上运行+ g- H+ ]0 o* C' E. k
D. Java提供了大量功能丰富的可重用类库,有效减少了编程的工作量; d4 U. X% f. P5 I9 ?) d
2. 下列字符序列中不能作为Java语言标识符的是:( ): u. w- h# G f2 H( p" V# @2 v
A. abc_123
B. 圆周率PI+ h+ h4 S% d( M& v
C. false
D. _123abc8 l* K$ d' z8 D; X6 ~9 @3 R- q
3. 下列不属于Java语言关键字的是:( )* G: \- _" p& W$ i0 _# q' ? `
A. repeat
B. try1 y }/ Q* F2 R& W4 ]
C. break
D. new
4. 设有定义 int i=80, j=7; double d=80.7;下列语句中正确的赋值语句是:( )
A. i = d;8 `$ T; \# x' e3 m F; \3 d
B. i = (int)d + j; ]2 n9 Q9 T( `, v @( ~
C. j = (int)i - d;
D. i + j = (int)d;
5. 下列关于构造方法的说法中,不正确的是:( )
A. 构造方法用于创建类的实例 / ~% L1 Y' Y8 o/ I; O6 S1 r
B. 构造方法不可以重载) J8 F$ N9 [5 L5 N9 ~; p/ }4 K
C. 构造方法不具有返回值类型
D. 构造方法名必须和类名相同
6. 执行下列语句后,变量x的值是:( )( v$ n' [/ r3 E4 E r0 a
int x=7, y=10;
switch( x/y ) { ; _( Y# a# W% ^1 X) {
case 0: x++;
case 7: x*=y;
case 14:x+=y; break;) E+ p8 {. f' c* s
default: x%=y;
}
A. 8
B. 702 n: f. {6 g5 R8 ~
C. 805 i6 E" X6 P0 W
D. 908 I5 u; B- L( l
7. 下列语句序列给出了k,myArr和myMethod()的声明。当调用方法myMethod(myArr,k)之后,存储在k和myArr里的值分别是:( )
int k = 7;
String myArr[] = {“love”,“peace”,”and”};; F- I+ t! k. \
void myMethod(String a[], int m) {
String temp = a[1];
a[1] = a[2];3 r4 N; a3 s9 L! c% u& O
a[2] = temp;2 b% Y/ u% h( [$ x4 w$ y: y" _3 J9 ~
m = a[2].length();1 C. e/ _8 H/ E' r4 u
}' g9 h* [- u! G
A. {“peace”,“love”,”and”},4, l, @1 @( w+ `% F
B. {“peace”,“love”,”and”},7# \* r* C+ D. a: m' C) x
C. {“love”,“and”,”peace”},5; l( y1 O( \* S; }" B' _" O. j! b3 ]
D. {“love”,“and”,”peace”},7; m( H! H) N$ w$ B7 Q; ^+ H" o7 k
8. 下列语句序列执行之后,b1,b2,b3,b4的值分别是:( )
String s1 = “peace”;5 }4 x% F- b7 q/ i. W* E! H
String s2 = new String(s1);
String s3 = s2;
String s4 = new String(“PEACE”);0 g" c1 E- F Z: O2 p$ S
7 G) D* |0 c3 t Y& i! N: N
boolean b1 = (s1 == s2);$ d" a( @) o) A7 B, J# B
boolean b2 = s1.equals(s2);" {9 T2 S. `5 o! ~
boolean b3 = (s3 == s2);
boolean b4 = s4.equals(s3);
# }* ]/ i& V% m4 A# B z: T2 k, s
A. true,true,false,false- [0 N K0 P+ B! V% l" c
B. false,true,true,true
C. false,true,true,false
D. false,true,false,false6 t8 F4 ~6 u& R5 X. m
9. Swing的三个顶层容器分别是:( )4 M/ V! S0 |) Y& O
A. JApplet,JPanel,JWindow3 ^5 E; B j0 \; u+ ^# Q: A9 ^
B. JDialog,JApplet,JFrame- u/ m9 u% J: P: K7 j- l5 l
C. JApplet,JFrame, JMenu# ^' H! s7 _& |: w* |
D. JFrame,JPanel,JTextArea0 ~$ c7 H& d; k# w9 D( L
10. 下列关于Java小应用程序(Applet)的说法中,正确的是:( )
A. java.applet.Applet类是所有Java小应用程序的基类
B. Java小应用程序不需要编译
C. Java小应用程序也需要main()方法
D. Java小应用程序必须实现ActionListener接口# y7 U8 c3 E# T Q3 M. {/ {5 ?
- w* K4 V* V& h: z
二、程序分析题(共4小题,每小题各10分,共40分)7 M. K3 S& u' M5 ? _- }
1. 阅读下面的程序,写出程序运行的输出结果。
public class Test1 {+ a2 a5 n; V2 i
public int method(int n){: y* n' }* k) s
int result = 1;
for(int i=1; i<=n; i++){! K) x/ f2 P) R. C: K) m. x& @( R
result *= n;0 ^4 Q3 b# M% Q6 i' ?+ @
}
return result;
}
public static void main( String args[ ] ){
Test1 test = new Test1( );9 Q7 L+ U0 @5 A! E, b3 [ ?2 x
int sum = 0 ;
for ( int i = 1 ; i <= 3 ; i++ )7 O% g. L8 s9 t$ |3 d* a* ]; ?
sum += test.method( i ) ;
System.out.println( "sum = " + sum );3 F: c7 N% o' A6 o5 O' @9 {
}
}& H4 X) B4 }6 E3 Z6 H
2. 阅读下面的程序,写出程序运行的输出结果。
public class Test2 {
public String method( String s ) {8 o6 p$ a& x5 k: {3 I
StringBuffer result = new StringBuffer( );3 W( X" w/ U. [! z6 w
for (int k = s.length( )-1; k >= 0; k--) {$ _" b# \0 Z! k7 M3 Z
result.append( s.charAt(k) );% U/ s( j* V. I* m6 p3 Q: E; Y
}
return result.toString( );
}
public static void main( String args[ ] ) {/ _& f; N9 S1 o4 x" }9 x
Test2 test = new Test2( );
String str = "peace"; 1 n) L; B1 i: F
System.out.println( test.method(str) ); 4 ^0 L- w- C" b2 Y6 p; C. F
}3 e6 E& |# o" _- ?2 y
}5 Y3 I# O% L& R3 X/ {
3. 阅读下面程序,并回答问题。
class SuperTest {
public int age ;) X* c& l9 t2 N5 m; k3 n4 I% B
public SuperTest( String s ) {
System.out.println("Hi, I am " + s);
age = 35;6 K8 O8 y5 s8 L* d
}
}
( q* }: z) N# t9 H% e
public class Test3 extends SuperTest{
public int age;
public Test3 ( String s ) { 0 A6 E, q6 U0 ^/ d; S
super( s );
System.out.println("Nice to meet you!");
age = 7;
} 6 b, Y: D' V& E5 {' y
public void print() {
System.out.println( "Age is " + age );: F$ V$ p5 O# A! Q( n! k
System.out.println( "My age is " + this.age );
System.out.println( "My parent's age is " + super.age );
}6 ]% W4 H* \9 s) P6 z3 X
public static void main( String args[ ] ){ * G* R7 K/ }) P' ]' W: E2 z
Test3 test = new Test3(“Olive”);
test.print();9 w! P% p2 u$ Q; u. g6 I
}
}1 E! X" G1 k; n @# g. X2 y$ s0 @% A
问题(1):类Test3和类SuperTest之间是什么关系?, O5 ]# t& a- ~" p: @' O
问题(2):关键字super和this分别是什么含义?
问题(3):这段程序的输出是什么?+ U( Y# }$ U6 Z; Y f' S" l5 l
4. 阅读下面程序,并回答问题。
import java.io.* ;* R& F' O3 Z4 ]. `
) x& P1 l; C" c) u/ S# _/ I
public class Test4{
public static void main( String args[ ]){ l" P$ {% r, Q+ p5 ^2 H6 p5 |
try {$ Y/ \* E/ W1 G0 w. c
DataOutputStream dout = new DataOutputStream(. U) Q# {$ B6 O+ g: j
new FileOutputStream(“out.txt”));
for(int i=0; i<10; i++)
dout.writeInt( ‘0’ + i);
dout.close( );
6 j( B8 g7 x' _: Z) U, W) e
DataInputStream din = new DataInputStream(
new FileInputStream(“out.txt”));
for(int i=0; i<10; i++)& k; V# e+ f+ S$ d( z+ o- t
System.out.print( din.readInt( )-‘0’ + ”, ” );7 Y7 G/ X" W7 [0 \* p/ z" u
din.close( );9 n' _. g+ P+ E- |: h. n8 V
} catch ( IOException e ){
System.err.println( “发生异常:” + e );
e.printStackTrace( );
}: Z1 G i q$ ^0 J1 u V
}
}* S4 {# ^' U y( m! c" T
0 }8 |; k4 U+ M0 B+ H
问题(1):try块中包含的哪些语句或表达式可能抛出异常?
问题(2):流DataOutputStream和DataInputStream常被用于何种操作?0 F2 g0 e+ A* V, k5 E5 _$ M! }
问题 (3):假定文件out.txt中原本没有任何数据,这段程序执行完成后,文件out.txt的内容是什么?程序在控制台窗口输出什么?1 i* y8 X6 ?8 T- m& k, E5 S
2 V6 o( ]. y a- Q) ~! S' }# R
三、程序设计题(共1小题,共30分)
编写一个程序,要求随机生成61个学生的成绩(从0到100的整数),在将成绩排序(由高到低)后保存到文件“score.txt”中。 |
|