|
4 ?/ n! H' V q4 ~
西南大学培训与继续教育学院课程考试试题卷
6 k8 s! ]( {/ @- {课程名称【编号】:(0837)《面向对象程序设计》9 {; I' z) X H) [- t
) X" V2 k1 u s: t: X* N考试时间:150分钟
8 P) i/ ?5 n9 C
) L* U8 S- e/ Z3 f( G3 r9 }; D$ L0 O更多资料下载:谋学网(www.mouxue.com):100分: |: n/ I) d' D! t: e
; H7 \# ~* y+ @* I
5 _+ `& K" ^# ]8 `2 k2 P* V1 `* L1 Q( s' }
一、2 ~$ L8 ^. B! G9 Y2 N% Z' Z
更多资料下载:谋学网(www.mouxue.com)(本大题共14小题,每道题5.0分,共70.0分)
- i" c/ g( Q0 l$ b( g- L1.* A5 p8 ~, z* l4 G2 P0 X
欲构造ArrayList类的一个实例,此类继承了List接口,下列正确的代码是( )
' P8 T2 H$ u5 k; `+ |$ q8 U* K8 fA.ArrayList myList = new Object( );& l9 q# E/ k2 F0 _1 \1 C
B.List myList = new ArrayList( );
# b7 @5 L% `, Y2 g' Q! V/ FC.ArraylList myList = new List( );
, ^* ^7 o1 M1 ?4 J5 eD.List myList = new List( );3 F8 e8 d9 {, f: [* e( g& _8 u+ [ F
2.5 j8 j0 \9 a7 J
Test.java的源程序如下。在命令行键入:java Test aaa bb c,回车后的输出结果是( )。8 q0 K2 R( j( T& Z+ s
public class Test { w1 p' l$ Z% n( ]% o0 a' o
public static void main(String args[]) {
9 f, W% y: a" A int k1=args.length;
1 g' v8 g$ t1 R4 [% v, o" ~ int k2=args[1].length();
A2 ^6 K( [+ q) u/ O System.out.print(k1+" "+k2);6 Z3 V+ J7 Y) i; b+ e7 V1 a# ]$ E
} ( s: W. c3 O( O- ?9 w
}
" L: M& K$ n- e2 n, l5 ?A.1 25 i6 w" \2 k. J
B.1 3. ^$ d, O# M3 R( Y. a
C.3 2
: U9 s; k% I1 W: ~3 m' K+ p& L, cD.3 3" ~' U j* _, V" J; W3 ^) l
3.
3 C7 n$ J2 @0 _6 ^, V- D以下程序编译运行的结果是( )。
& ~3 }( a! j U" \6 U7 g7 S& Hpublic class Test {& R3 R8 |' u9 Y# b$ u7 O) R
public static void main(String[] args) {
' C! }; c/ l! o9 X+ L float f1[], f2[];3 k( m9 C; J( i& {9 z
f1 = new float[10];
2 g% T5 ~& ~" @( {! ? f2 = f1; //第5行
; ^2 o5 p* H3 o System.out.println("f2[0] = " + f2[0]); //第6行
l, X/ }( [, O# l/ S% v- W, n+ z: E; ?8 ~ }
. r* O0 A3 Z- ?5 @8 J0 o- ]}; E9 _8 g) H& V3 a; H; Q, \- m( _
A.f2[0] = 0.0
8 {( B' p8 C4 [# C; jB.f2[0] = NaN
" s: I( v( L2 M9 PC.第5行有错误导致编译失败2 P( {9 Y/ F8 h8 \
D.第6行有错误导致编译失败
8 u1 o" f4 P# P1 n2 o4./ T7 s3 A, E8 r5 m& d
定义变量boolean b = true;,则String.valueOf(b)的返回值类型是( )。" m2 X: ^" W8 J0 ^7 d9 w, a
A.Boolean0 ^( Q8 m5 @# J/ Z! I, o: l
B.String
& R( ]: U/ Y8 j# D5 L5 D% KC.false
; ?5 P9 o. T$ u% c. z# `D.int3 B) h' t1 }1 `2 Y6 G( O7 Y+ I$ l
5.
0 a; J2 S4 r# B5 y$ Awhile循环和do...while循环的区别是( )。/ Q3 P8 `3 Y2 M& J
A.没有区别,这两个结构任何情况下效果一样) H9 O0 L9 U# q4 `! o0 k) \/ x1 m
B.while循环比do...while循环执行效率高. w3 X, ]- J+ o9 ^
C.while循环是先循环后判断,所以循环体至少被执行一次
, \# g5 n; a5 ID.do...while循环是先循环后判断,所以循环体至少被执行一次 V: t- A2 \: y# \$ {. r
6.% N/ E3 R* s+ F- Y- I! T4 t' B
下列字符序列中可以作为Java语言标识符的是( )! Y2 m. ~3 O T
A.true |8 ^' X7 ?0 |
B.123_xyz% R# D5 \, i4 ]9 g6 c! l
C.x.y
* r# A2 y/ ]4 ]/ cD._x123
M; I( g% _$ L* W8 V7." E- X2 m4 Q. j1 r% ~$ n6 D) X6 |
下列程序段执行后,变量i和j的值分别为( )。
# q: N8 ~; r/ R8 a- T6 \int i = 1, j = 10;9 u' o; d f0 B9 F) ^3 i
do {4 N. y: Z9 J. C8 ]/ h
if (i > j) continue;) u7 H6 C6 q' x3 x8 D
j--;
# J/ t& H# n$ }! i} while(++i < 6);9 m6 t, t8 X- I6 Y/ K( G) L
A.i=6,j=5
+ a7 K6 n' |, C- G# FB.i=5,j=5
% f2 w5 r( G" e6 `C.i=6,j=4
8 J( I$ X- t8 H3 g5 z% ^D.i=5,j=65 ?1 Y0 w) y2 t/ R1 {4 n2 q- T
8.: w- q" J# g( Y! F; K
若需要定义一个类属性或类方法,应使用哪种修饰符?( )/ Z, h* ^9 B) [- ]
A.static
3 \; @& \. o. @6 s% Q) RB.package
$ h! V1 M4 D& b* w2 [- Z# Z) iC.private
8 @- w- k8 K" C: o5 e9 @' O/ f! XD.public/ u" Q( Q" N8 B- x
9.
. v- B. T8 M/ }; z定义一个接口,必须使用的关键字是( )。+ l8 z$ x- A+ W
A.public" z1 J6 {6 C8 T* e* `
B.class) f. n% M: \: `, b
C.interface
. S' O5 t- u) I; |D.static# \; i- c+ M- C9 h5 z, B. }8 x! N
10.1 a( h" Y6 Z5 q
设已声明了一个类A的两个对象a1,a2。为了初始化a1和a2,下列语句正确的是( )。
( E& I. C5 Y& `/ A& T% q7 IA.a1,a2 = new A();
5 c, F9 y+ a: h- V; rB.a1 = A.new(); a2 = A.new();+ L; q, } w0 r! X5 t
C.a1 = new(); a2 = new();$ d. T; }2 r0 Q/ X
D.a1 = new A(); a2 = new A();# b' Z7 b" Z' W, ` m3 s
11.
$ \# B: t, |, J+ |- K# u2 y" o- z下列语句序列给出了k,myArr和myMethod( )的声明。当调用方法myMethod(myArr, k)之后,存储在myArr和k里的值分别是( )
5 D) c) ^# `* ^5 }8 t* S3 g9 `
1 T- r7 G/ A% P, Nint k = 7;
; i* o1 G8 f) ]& A# ]String myArr[] = {"love", "peace", "and"};* f8 [; F4 j2 H- ^
0 M' V/ {, y# E) U) q! E
void myMethod(String a[], int m) {
* h% k# R& Y! s8 M1 X" I% g/ x9 }: E3 i6 i String temp = a[1];, p& m) }. A7 ]1 m% e) a M9 Z
a[1] = a[2];. S7 E* i# j% T( J; X2 R
a[2] = temp;4 T1 [9 L9 }, |. T3 E' M- w: {5 ^
m = a[2].length();: T- B1 r' @( Y( p* A( v* r- K
}( x8 b1 Q/ }- r* g) D. N& O, t
A.{"peace", "love", "and"},4, l- y$ T7 w( w
B.{"peace", "love", "and"},7
" M7 e* U3 z+ G; N4 EC.{"love", "and", "peace"},5
+ G& E4 h) Z3 kD.{"love", "and", "peace"},71 d6 w+ v- E/ e
12.
" F" ]6 |1 h) l: U$ H以下程序编译运行的结果是( )。
1 g" J7 {% Z2 Uabstract class Shape {; h- P2 Q) C% z$ y% @+ T
abstract void display();
4 k6 `! E, M6 L5 |* L}' c) [* c( ]* i1 X. Q" L
class Circle extends Shape {' ]$ q/ H5 ?: U& @
void display() {
6 } G: x# I& i7 p. E2 p. X: c System.out.println("Circle");
5 r8 M' q6 v$ u" F8 {6 ~ }" A. l# }* [3 H$ P
}
4 `& }5 ?" w, V% L- ]8 Gclass Rectangle extends Shape {
% g8 K5 r1 ~1 j& q7 B void display() {
$ g8 w1 A( C% j: Z' r' g System.out.println("Rectangle");
, P) ? u8 N; I% J8 a( d }
/ ^+ V% r1 j& H3 c4 Z2 f. p$ q5 b}
8 s1 ~: j! t" `+ _, p' b6 kclass Triangle extends Shape {6 T: _ z( y9 X& I
void display() {
' f$ z3 Q% {; b \ System.out.println("Triangle");/ [1 l4 M) }8 A
}
, ?; W- s8 g: O/ a, R4 [}4 } _# N! r! u2 {+ f7 G4 h. R3 f$ J
public class AbstractClassDemo {7 k% i9 \1 C5 E1 r: c$ c% d
public static void main(String args[]) {' |# g/ J+ U4 ` s0 b% l" f3 m
(new Circle()).display();
' g+ s) T* E2 u5 a- B (new Rectangle()).display();( E% ^7 o# D3 y7 w' o
(new Triangle()).display();
Z- U j6 U1 I% m8 C }* `3 g; D; I+ \
}) ^) l3 I% y( y; v9 `
A.Circle Cirle Cirle
+ X8 m* j7 S, e/ p+ U5 a# ZB.Circle Retangle Triangle. u8 X5 e+ I( K; e5 @* d5 y
C.Retangle Cirle Triangle6 @) F9 C) T+ Y7 L- b
D.Triangle Retangle Circle! v: N9 z( V# a; K6 X @
13.
9 @6 n& c9 f6 v* b* |* Y( `以下程序编译运行的结果是( )。) Y& \0 z+ N; D; a
public class Test {# D# G5 |6 R0 g+ C
public int aMethod() {
* n5 |* _. @6 c: M$ r' _1 n static int i = 0;0 n6 Q1 j( h# W6 a6 Y+ y
i++;+ q9 v; b% |& P4 K( K6 w
return i;
Y( N9 {( I7 V1 G1 J% g }
7 G/ v, b& `* A8 D, L0 O public static void main(String args[]) {/ n5 |9 a: m/ q; S7 p+ O
Test test = new Test();
3 n/ C- U3 P" u. \ test.aMethod();
* z8 r. E6 V3 j/ n$ m int j = test.aMethod();
9 D, n2 u" k8 m* w, v+ b System.out.println(j);, O/ ^% F% F0 l0 Y, o; ^
}
( @7 p. |9 Y4 u$ M}0 L0 N2 h4 |. Q) |
A.编译将失败
1 g) _8 c/ C; \+ c J* LB.编译成功,执行后输出"0"6 V) n0 R, z0 t3 W
C.编译成功,执行后输出"1"6 N* u2 D. `1 E- b
D.编译成功,执行后输出"2"
8 E& ~: r2 S/ `4 G9 Z2 Z14.
: S7 g1 {! j7 A以下程序编译运行的结果是( )。3 ?: S9 |4 G% _
public class Test {
2 q* J! d! `3 B6 E public static void main(String args[]) {
V+ x7 o% r$ m& a5 e i0 o/ p2 ] class Foo {
5 n4 D, s: }- y) B$ p2 r y public int i = 3;0 ^! O4 A$ W/ h* I
}" r1 R) [/ J }& S
Object o = (Object) new Foo(); //第6行/ R, r& E2 p9 v% ?2 j
Foo foo = (Foo)o; //第7行8 r2 Z) y& @2 Z- Q, S3 O( h
System.out.println(foo.i);
3 P- ~3 @" d- J8 S) @+ Y }0 n. p$ ?* q9 r* ?
}
y2 y& ~) {' d+ N6 g- XA.编译失败
: h1 z' g) e7 |# kB.编译成功且输出"3"5 I+ d9 P3 o z, V
C.编译成功,但第6行抛出异常ClassCastException a" L+ T! H. }% {( ~% D9 w5 @6 B
D.编译成功,但第7行抛出异常ClassCastException
: w9 q3 s8 t8 w" R& b# m二、: r& D+ c$ r! e y- h9 \
资料来源:谋学网(www.mouxue.com)(本大题共5小题,每道题2.0分,共10.0分)" X; G/ y; E' ?% n& z; Z
1.# m) @5 N5 b- E" a" [# G
开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。( )' O& q2 s/ H( w: s; s( Z( P
对 8 d' ?0 I/ K/ _; R# Z7 K
错 - _/ b4 ]: y9 f; G3 |
2.
; p% \5 q2 n) F Q- g在方法定义中,可能发生的异常都必须用try...catch...捕捉。( )
! g* y5 f. c# p对
8 X) @7 e K& ^' F( B错
) C% m3 [1 o1 G4 H, X3.& ~1 F! a/ i. J" z! t
在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。( )
# _" b. H9 S) d! Z. ^4 x5 S, ~对 ! B+ o9 I3 m1 A5 N- c/ {# @
错
- k# I# W6 s7 P: t. l3 N u7 Z4.
* a$ s1 W: V! A5 R在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。( )
5 ^: x! p2 |0 r- e( @对 3 M: R3 G) a; T* \) K' W3 {! Z
错 1 `0 {* y9 c4 Q! [1 s2 r S
5., r/ b$ z1 A. K5 @2 s! q* t7 J
abstract可修饰类、方法。( )
+ @7 ^0 W( a" z4 i7 O对 ' |. A1 o5 c$ I$ N* \
错 * {+ i6 n0 n. u7 ?
三、6 Q& J6 Z; O9 F% [
应用题(本大题共1小题,每道题20.0分,共20.0分)" t- a$ h9 t' k4 g$ C
1./ S) m; G7 v, |& w, K, {
用Java编写一个Application程序。在窗口中画出三个TextField(前两个用于接收用户输入的两个整数,第三个用于显示相加和),一个加号Label,一个等于号Button。当按下Button时,将相加之和放到第三个TextField中。
+ v) ^. e; T6 T' j7 D0 B7 K& L# T3 I' D7 _; H E
. Z. ]6 B0 G7 Q! }0 E9 L& A |
|