|
西南大学培训与继续教育学院课程考试试题卷" `+ f& W7 a: }# t# d$ f G
1 o6 @3 H( s1 \' W1 @/ T T
学期:2020年春季
* W7 ?* X! R. I! j4 Z0 Q9 l+ @7 u课程名称【编号】:面向对象程序设计【0837】 A卷
' i$ n6 R: g/ r1 g9 H:大作业 满分:100 分
]" s( v& a# T6 [- q; n4 j ]________________________________________9 x0 C) t1 D0 p5 d9 j7 n
/ y; s' h2 ?( N
一、更多资料下载:谋学网(www.mouxue.com)(共10小题,3分/题,共30分) g2 R$ z& ]. p5 i0 \! K0 i
1. 以下关于Java语言的叙述错误的是:( )$ ]* n; I! N+ q8 Q# X* Q% g/ u
A. Java 是最纯粹的面向对象语言,对面向对象方法学的支持也最全面
( i- O, d( F. n$ i1 u' AB. Java是解释执行的语言,由Java解释器负责将Java源文件解释为机器码执行5 U0 L5 r- h" W
C. Java是平台无关的,即Java程序不用修改就可以在不同类型的计算机平台上运行
& M# p$ w' @' A( {0 TD. Java提供了大量功能丰富的可重用类库,有效减少了编程的工作量1 ]. [( Q$ V- i& ?+ k
2. 下列字符序列中不能作为Java语言标识符的是:( )
6 b$ @+ W5 x9 w5 y; Y7 \" q( p9 B2 qA. abc_123
3 \# J1 z/ [; cB. 圆周率PI
8 ]& y' Z5 x: kC. false" o) [7 @& H! n) U: ~6 A5 H9 o& r( ]
D. _123abc8 M' I5 \: v5 Y6 k" Y8 a
3. 下列不属于Java语言关键字的是:( )5 s d _ U9 s% c. V0 w
A. repeat' a6 ^' z+ e# L! d) d% H, G# l6 L9 R
B. try
" n* W% j8 b8 U4 T. N8 f4 mC. break5 z K- t' r! n6 a, g6 e
D. new
% k9 |+ q* O# a) a; x' {# v8 a4. 设有定义 int i=80, j=7; double d=80.7;下列语句中正确的赋值语句是:( ). p; T- i, T8 C2 q z, q: B; V
A. i = d;
5 z8 Q4 x! s6 j, E6 m# l& yB. i = (int)d + j;
# V; B' Y- C6 C, CC. j = (int)i - d;& s' J) r Z% }9 v3 H
D. i + j = (int)d;
8 `- M, H- g7 a# ? d. d3 c5. 下列关于构造方法的说法中,不正确的是:( )% k4 M& g1 d, O+ W8 v5 p; ]
A. 构造方法用于创建类的实例
* U- q# h1 h# bB. 构造方法不可以重载* u/ ~+ r8 J2 i K P& l; J( q
C. 构造方法不具有返回值类型
( E7 |/ n; m' W! jD. 构造方法名必须和类名相同
& Y7 e! z8 T3 N3 L6. 执行下列语句后,变量x的值是:( )
) N* Y6 A t# h' |) s4 W int x=7, y=10;0 E1 v3 Z* z0 o* ?. R6 g8 m2 d
switch( x/y ) { ; x% ~1 E0 I4 c6 l
case 0: x++;+ ^7 X* M) l9 Q. I: ?+ ~: g
case 7: x*=y;/ Y6 }' \4 F$ _* i" u' a, ~* g
case 14:x+=y; break;# \. E5 F$ U: `9 `1 W4 p5 r; L0 {
default: x%=y;, n1 J/ d4 C, J9 T+ c
}( |" b6 L0 G0 `7 Y
A. 85 @% i' u4 a9 H2 t% c1 v6 ^
B. 704 I9 x: D! s% z. V0 t
C. 80
6 t: q1 K% S* L3 s u% yD. 901 T' |- @) J* o, ~& T, W# X
7. 下列语句序列给出了k,myArr和myMethod()的声明。当调用方法myMethod(myArr,k)之后,存储在k和myArr里的值分别是:( ); C+ u# S; k# C& }2 b. N" T
int k = 7;
. C$ m6 l" _4 g4 q! }, j, w( nString myArr[] = {“love”,“peace”,”and”};0 }, ]* X+ A1 R0 y! Q1 F1 V0 M
void myMethod(String a[], int m) {
9 ?. v* N% p' R/ y6 ^$ { String temp = a[1];
# _" k4 ^3 g' t4 [; J( ^7 @- c/ k a[1] = a[2];5 Q/ R' O7 A; N; i$ T2 {
a[2] = temp;
9 T( z9 A A+ ` x+ \* g7 ] m = a[2].length();, E1 r/ c' p H: @ l0 x& G
}
0 \; p& ]1 @2 V9 U" O8 X" uA. {“peace”,“love”,”and”},4
& ^9 k0 C4 s2 I6 ]' fB. {“peace”,“love”,”and”},78 C3 j6 Y7 `9 m- f7 U
C. {“love”,“and”,”peace”},5
" \$ p e/ ~* u% J, W; ?7 m, u5 D& D YD. {“love”,“and”,”peace”},7
% U( I( _6 J4 s, |3 t3 X% ^8. 下列语句序列执行之后,b1,b2,b3,b4的值分别是:( )& M9 j9 b1 Q9 K9 x0 O4 R
String s1 = “peace”;8 C# V i" r, J. b, `: }6 g8 E5 S
String s2 = new String(s1);
+ V/ A/ V2 ]2 Q; eString s3 = s2;
: s( l( [- @$ D, L2 \) g9 IString s4 = new String(“PEACE”);8 |; h0 K' m. l6 U# x! r
7 B5 j( D( y; Qboolean b1 = (s1 == s2);
9 |) h( K* \. f/ u3 @1 `9 e- Gboolean b2 = s1.equals(s2);6 B1 Y0 `, @/ W# Q: w. |
boolean b3 = (s3 == s2);
; m: H1 h( t8 o/ L. n& Y1 C0 ~4 Fboolean b4 = s4.equals(s3);
g$ y6 B; P( \5 \- D$ J* ^ b+ b) s% U* @' a9 x4 x7 o
A. true,true,false,false
* k) c9 i3 d- z4 |4 g, p; eB. false,true,true,true
$ |& S5 m- Q! g, fC. false,true,true,false
9 q. J" A7 [/ V# ~/ N4 a9 s VD. false,true,false,false
6 w/ P/ E& X" A: b; B9. Swing的三个顶层容器分别是:( )# L; x$ p$ F8 i: \) Y
A. JApplet,JPanel,JWindow! w: p1 {: Y8 G0 a) @" V9 c7 t
B. JDialog,JApplet,JFrame, j: q( T5 W- C& r7 a! ] H
C. JApplet,JFrame, JMenu
% i; }" m4 z& K- F! }4 b; X" s% HD. JFrame,JPanel,JTextArea& Y+ C, W5 e7 s; _ ]" V
10. 下列关于Java小应用程序(Applet)的说法中,正确的是:( )
& L" Q- [5 |# ]A. java.applet.Applet类是所有Java小应用程序的基类
/ J. }. e0 v9 j: S6 t1 TB. Java小应用程序不需要编译0 ?. c/ T5 p/ |! O
C. Java小应用程序也需要main()方法
' z. T" f5 Y& C9 a7 W( p5 c- U3 SD. Java小应用程序必须实现ActionListener接口
5 d0 |: [! s* a4 j/ h2 v- p9 j4 _ q3 w
/ h& y$ g6 W( J& L( W$ Q, z( l/ p, P二、程序分析题(共4小题,每小题各10分,共40分)
% w" k' J, B& J. L! n4 r1. 阅读下面的程序,写出程序运行的输出结果。; [: M9 v" U7 F1 t! j
public class Test1 {
% M3 h/ }$ Y# ~7 g public int method(int n){6 w3 W( e, K s5 t4 A3 S, Y
int result = 1;
- n( J2 f7 ` N- O3 w# h& | for(int i=1; i<=n; i++){
/ v6 P% C) y/ n" L result *= n;0 R7 u1 y# G' \; @1 Q6 y" F
}; p- c( }9 v( a% k
return result;. c* e$ _' F- j, W
}
4 J# ?: }9 {8 ~9 O" @ public static void main( String args[ ] ){
, ]1 B7 U$ U1 d* W Test1 test = new Test1( );" W! J3 `! @: a0 [8 n
int sum = 0 ;
* O/ Y+ m1 t6 y6 B* ]& @ for ( int i = 1 ; i <= 3 ; i++ )
7 h4 j) i! P1 Z9 x" w4 v# i sum += test.method( i ) ;9 P5 Y" A- a' u! n' v# m. E. ?+ y3 c
System.out.println( "sum = " + sum );
* @5 e' {# k h* J( {}
0 ~8 |8 p k* g* m* Q% k' J}) t2 p! E; D7 f: p- ^
' M' Q$ h9 U+ z+ a/ }
2. 阅读下面的程序,写出程序运行的输出结果。- I$ O% [6 t! W! C; H
public class Test2 {4 ~$ \ U% I9 ^3 k! B" ]7 t' n4 l
public String method( String s ) {9 \' M! w1 K, \+ M! Q# a
StringBuffer result = new StringBuffer( );3 q9 \6 w, J+ M2 ~4 c
for (int k = s.length( )-1; k >= 0; k--) {+ h \1 U" p4 C5 f8 d4 X
result.append( s.charAt(k) );& _/ V% v( u2 B; N5 e7 B
}
6 m/ Z0 l) n8 Y: v! s return result.toString( );
/ s1 ]' \- v4 E p } 4 K0 M1 L" S; Z4 }& z+ x: w) `6 i9 }- r
public static void main( String args[ ] ) {
* [' @0 Q1 t0 {. ^ Test2 test = new Test2( );( p7 `* b/ [% r/ \! K! N7 }! ~
String str = "peace";
! J; r0 X* Z+ r8 Q6 n, {9 h4 p6 u System.out.println( test.method(str) ); . r4 L- A7 P5 [; z& |0 x
}
# S3 \8 a' H2 p- o2 ^ t}5 g+ p+ @3 E8 d' ?) @
, ]) `5 I3 G8 B5 p3. 阅读下面程序,并回答问题。
. I$ S2 W) W! c! g0 Oclass SuperTest { - P" o! k8 v9 C+ f" s; e
public int age ;$ f. H* h3 d) d7 D# z
public SuperTest( String s ) { ; v: I7 h% P( i6 O
System.out.println("Hi, I am " + s); 3 a9 ~0 W/ {% I7 g1 n/ G2 b
age = 35;" z' R9 ^- y0 `0 P
}
0 F- t0 u4 T/ y$ G}
: T1 U0 z# I0 p) p
: ~1 h- b ^( [' h: n" q v0 \public class Test3 extends SuperTest{
5 C7 m: C6 A6 epublic int age;) @) j l! p% o# L# d; V
public Test3 ( String s ) { ( t0 T5 q; e4 B/ [2 a
super( s ); 2 B1 O- h: ? \5 P0 Y+ s! e
System.out.println("Nice to meet you!");
9 Q$ U. A4 p) z' m8 t* S- m# ? age = 7;
+ I; m; m, {- H}
; ?: h* @7 y4 ]: x5 r5 O& |
% R4 T8 [: ]) e4 G! v! i public void print() {
l. c( z. P/ [6 R System.out.println( "Age is " + age );
- P( E: `3 Y$ P9 L% Q* B# P System.out.println( "My age is " + this.age );/ r9 @6 [5 F. i
System.out.println( "My parent's age is " + super.age );
4 e. w. v: P @9 l l* t8 k9 v- K8 a }
# H5 I4 U: B; N5 G
" ?7 S; Z, Y B. ~- E2 N' e; Qpublic static void main( String args[ ] ){
+ d7 w8 y% u1 e1 C) }# M. m! L Test3 test = new Test3(“Olive”); ( r7 s% W# ^# V8 N. Q
test.print();
2 ?) C+ s, y3 d} 6 S% W- g Q3 `/ f
}
, S* S' O7 f! D7 O4 f% t问题(1):类Test3和类SuperTest之间是什么关系?
0 B2 T" J) O6 K/ ~0 Q( F问题(2):关键字super和this分别是什么含义?
) r+ q8 u( F( R. a! `% l问题(3):这段程序的输出是什么?" z0 o0 y3 W* o
2 Q$ y8 A, g. T3 `( Y9 l4. 阅读下面程序,并回答问题。: {4 P( [: @4 ^* C0 ~
import java.io.* ;& O' i: ?7 v9 v7 C( {, i
f; E( N7 V2 `5 I1 R
public class Test4{6 p8 r, P8 ]3 p: g
public static void main( String args[ ]){
( ?' ]4 R B' H4 L4 t+ U) }" x try {% B' g* m( P* B1 d6 _
DataOutputStream dout = new DataOutputStream(+ K: Y' `. f' S9 m* ^
new FileOutputStream(“out.txt”));
" z2 B4 [+ @3 C+ y4 m% A5 T( y for(int i=0; i<10; i++)
) p2 O/ a8 x5 I* o5 L9 N* [( ^$ ?1 n, ] dout.writeInt( ‘0’ + i);
6 O$ ?4 ?* }! G& |' I dout.close( );
/ }0 ^, E; f; J
1 k/ V1 T. z w1 d) @ DataInputStream din = new DataInputStream(
2 u/ G( Z9 Z- X2 i: r& bnew FileInputStream(“out.txt”));
* E3 L6 x3 L! j- U for(int i=0; i<10; i++)
, R! d. d, D- O S/ T System.out.print( din.readInt( )-‘0’ + ”, ” );
' P9 F3 C- s5 |% y din.close( );7 r8 u6 y( G" R: X* A& ?& D
} catch ( IOException e ){ m! K+ e6 @# O5 j- b3 V2 f
System.err.println( “发生异常:” + e );+ q; k1 n( _# o* ?: C
e.printStackTrace( );
) U* s* M3 I; z }3 V8 j, X( g' K. ~0 [* N- z
}4 X& H: y5 l* f, y. K
}: a9 r7 ]( ?, d: n. W. E" e
$ }2 r, v5 Q2 }5 S& o7 C) _7 `问题(1):try块中包含的哪些语句或表达式可能抛出异常?! f `3 b, w- H9 @, L# r& i' |
问题(2):流DataOutputStream和DataInputStream常被用于何种操作?3 L& Z8 I# z7 D, y/ c _ R# e
问题 (3):假定文件out.txt中原本没有任何数据,这段程序执行完成后,文件out.txt的内容是什么?程序在控制台窗口输出什么?" J0 G6 ]: ]2 M- R2 N) G+ w @
! a b0 { Z/ n- u3 A
: L) ?+ V3 v3 X% m3 I; Y三、程序设计题(共1小题,共30分)
% H& h+ l6 ^# h! D( R编写一个程序,要求随机生成61个学生的成绩(从0到100的整数),在将成绩排序(由高到低)后保存到文件“score.txt”中。3 \- |9 S) i! |1 W' `# B- {8 @
& C- g. j( V& U' }8 }
2 \5 Y; b! b+ C0 E
& f) Y( E" ^" |: I0 f6 O5 |# x0 m* C7 {1 w
|
|