|
, a0 F8 [& o3 r- S: G西南大学培训与继续教育学院课程考试试题卷
/ O2 [% n. P7 q) q课程名称【编号】:(0837)《面向对象程序设计》
B1 L6 P. F* Q g0 k
, W' V( t* l8 j: e- m+ {考试时间:150分钟1 I, G5 `4 E; g5 g S0 o9 r& |+ J
1 v1 D: b/ n' ^( s
更多资料下载:谋学网(www.mouxue.com):100分; Q+ K3 o' C. y" r) x& S+ E5 t
2 K+ Q' x" C; d$ q
+ Y2 Z8 x: N ?3 F/ b" R( h6 O$ i# I' \' ?
一、
& |- l5 d. t8 K. a1 ^0 V更多资料下载:谋学网(www.mouxue.com)(本大题共14小题,每道题5.0分,共70.0分)
7 M3 W7 ^6 p+ M% K8 t: x; a1.; |/ Y# A: G: M
欲构造ArrayList类的一个实例,此类继承了List接口,下列正确的代码是( )
7 `% r' A+ z& T- i% o0 a0 uA.ArrayList myList = new Object( );* U1 C& f' V* j' u/ |3 j1 X6 J
B.List myList = new ArrayList( );
$ S1 S( {" @& Z! a% D- ^C.ArraylList myList = new List( );8 h* l, J, k# _8 M( W1 {
D.List myList = new List( );* v/ ^6 n7 u. r1 B. e
2.
9 B- c7 \7 a8 r0 T+ v" pTest.java的源程序如下。在命令行键入:java Test aaa bb c,回车后的输出结果是( )。# c# ]0 t. a9 P: q" a5 e. t
public class Test {- a: G- B( m" l7 E; Y) [
public static void main(String args[]) {& f! E8 X& Y" m5 \& K6 C" _- p- N$ \
int k1=args.length;
% X X+ }' \% U int k2=args[1].length();
' _ [/ O! S: c! C1 a' a' T5 r, ~ System.out.print(k1+" "+k2);
5 S7 k8 Y8 O0 o8 L& w: d } : i/ ~- v) {4 {* s- @
}( u8 Q) _6 d$ q! g0 ^* w
A.1 2# u1 V: Q, ~( E9 V, X% d# q
B.1 3 A- \9 c, X; I* O3 `
C.3 2; Y) X8 r, v2 g$ o/ N, R0 h; B
D.3 3
# R9 d0 F1 m% l5 X6 t! F1 H3.
/ O) q- x/ w! w9 c& G# P以下程序编译运行的结果是( )。
# p% V0 z. J' }% J4 p* X* Hpublic class Test {
( l. ~, V! t6 b& G public static void main(String[] args) {0 @. Z1 M1 }8 R" G
float f1[], f2[];% Z0 [1 ^/ U7 o: v) |, t& l
f1 = new float[10];0 Q/ b3 Q. n' `" R( Z
f2 = f1; //第5行
6 ?. ^/ R# Z0 e* q- y8 G, _: B _7 s System.out.println("f2[0] = " + f2[0]); //第6行
. V9 y8 W# C' u' m+ Z8 l }
4 Z, P1 K+ g9 ]' L- N}
+ G9 ~0 |1 m$ K3 _5 eA.f2[0] = 0.0$ ]9 r" a3 P N! m7 t
B.f2[0] = NaN
) y0 y+ }1 r9 N; F' S6 cC.第5行有错误导致编译失败1 R& _' F7 q- k( Z: V2 n9 }4 C. R1 w/ S
D.第6行有错误导致编译失败
( B" f, Z" v, K0 y8 C) K6 e; C. m$ S* X4.! o1 }2 ]$ e" p& z" `5 b
定义变量boolean b = true;,则String.valueOf(b)的返回值类型是( )。' ?% `/ c' `* q1 E/ v' v! f
A.Boolean
. c( b: b; T6 B: pB.String
/ h! w! z! V% _' v& s' e/ eC.false3 n. J, c8 h2 {! W$ m
D.int: A, l- L" i* m+ Q6 C7 _
5.
; Y7 \ z+ F7 g6 n3 dwhile循环和do...while循环的区别是( )。4 _3 }9 y: L& V* O1 _
A.没有区别,这两个结构任何情况下效果一样% ]% I7 m, Y+ [' I
B.while循环比do...while循环执行效率高4 ]4 u9 l! t N" O+ V6 l: k
C.while循环是先循环后判断,所以循环体至少被执行一次, `* n4 Q: M/ v, f% w
D.do...while循环是先循环后判断,所以循环体至少被执行一次
# _. [6 E4 |6 l p) R8 d8 D6.0 A* }' w7 o4 Z* k5 i$ y
下列字符序列中可以作为Java语言标识符的是( )' Q- E. b( h) D Y( I0 k$ b+ F
A.true
/ w9 y; J. ~% \$ FB.123_xyz1 D! {" Q3 P% Z. \; K- ~
C.x.y
# @* W7 D& V8 B0 z2 z) DD._x1231 _0 k1 h+ u N3 c1 d/ X# L t
7.' z O3 P/ p/ X# ^6 |& \# H
下列程序段执行后,变量i和j的值分别为( )。
3 l2 ~! D7 P' c( a# _int i = 1, j = 10;+ t$ o) f- t1 l8 [+ k* ^; g1 c* ^
do {% D# |& l4 C3 n4 s! C
if (i > j) continue;: b8 q6 |3 e3 ]% F) W
j--;
( [# ^0 z# l/ B7 l} while(++i < 6);- f$ k, L+ @( J
A.i=6,j=5
) M0 ?5 ^" @1 b7 ^4 uB.i=5,j=52 ?5 A% v' U I
C.i=6,j=42 Z! N) k3 \6 ?0 g; B: k j
D.i=5,j=66 M6 r8 A) w( e0 G# e. O) O
8.
7 c5 E0 q. K9 b. @9 O. e* x) U若需要定义一个类属性或类方法,应使用哪种修饰符?( )
, \; Q5 k7 S" i! r* h0 q- l3 KA.static
6 }2 h( z3 j9 T- o) {. bB.package
# @1 O9 W' S7 @1 R6 |7 EC.private
$ x' Y! b0 Q/ m7 VD.public( z& d% D2 a: @, D% y
9.
7 ?! p0 d, d4 j; b1 Y定义一个接口,必须使用的关键字是( )。
% ]4 ]$ ^3 V b$ o0 U/ E/ mA.public
: P" q1 C& `% I8 v" JB.class8 a) i! w% f* s
C.interface5 ?( e7 Z- A' b$ z
D.static
9 b5 _ }" s3 S3 C: x, C8 x1 g10.
4 h% ~+ S; Y) ~* \0 J% D0 u设已声明了一个类A的两个对象a1,a2。为了初始化a1和a2,下列语句正确的是( )。
% }- E2 Z9 m5 f$ \A.a1,a2 = new A();4 Z, W% l1 `7 u4 b: ~' o
B.a1 = A.new(); a2 = A.new();5 j) T5 J, t/ U3 \( S( T4 V- x
C.a1 = new(); a2 = new();
- \6 \* ~/ ^: q1 |D.a1 = new A(); a2 = new A();
! F6 d8 F( [8 _11.
# u' s( {& d# F/ n7 f: C6 `下列语句序列给出了k,myArr和myMethod( )的声明。当调用方法myMethod(myArr, k)之后,存储在myArr和k里的值分别是( )
6 j! g6 i ~( {5 e: h! X6 h x/ [" @; i( e) w4 g5 E
int k = 7;
, E* O6 G& C# [3 F* k3 yString myArr[] = {"love", "peace", "and"};
; q, b2 y; g( m* ?' d4 Q _, @! j4 l L( e f9 @) f
void myMethod(String a[], int m) {
1 ?$ V4 _" }8 t& f6 ]; B String temp = a[1];: a$ e: L3 _# j7 ~2 a# j' G. h
a[1] = a[2];* u! ~8 _1 v5 R1 C7 R8 r1 ]* l$ O5 k
a[2] = temp;3 B8 o7 I k! F) K* H. _$ I8 F
m = a[2].length();1 R& U* H& Y$ B4 w0 A( T' z
}
) h: h( C% p0 o3 b' oA.{"peace", "love", "and"},4
8 j S: E0 P; V7 wB.{"peace", "love", "and"},7 ?" v$ ^/ J& ]7 X5 l& }# H8 w
C.{"love", "and", "peace"},5
2 K, R% C) I! l" Z$ SD.{"love", "and", "peace"},7
0 o- `8 q8 {) u% Q o12.& d4 S& W% ^# J; q3 e$ @4 E
以下程序编译运行的结果是( )。0 I! l' w% I; L" }; H+ F
abstract class Shape {1 _7 y- }; Q) f1 y! B
abstract void display();
' E' ]2 g. H F" [3 D" h0 T4 m3 g}
% \8 u3 n- d i. g) J4 H6 G" Mclass Circle extends Shape {
# F9 Z% f" B" ?7 N$ {/ U6 _ void display() {
) o Q3 B) } r2 M System.out.println("Circle");
; H9 z; c7 g2 M5 |2 x2 @& P }1 `3 r* y7 F# s5 c' q
}+ D; v7 V3 n4 i$ o. |. S' Y6 q% ~
class Rectangle extends Shape {
8 }3 Y# y2 J1 y1 F void display() {3 }' {# s; e* k
System.out.println("Rectangle");: O# M4 m! g; v, Z. v6 C2 Q! Y
} r, T9 N8 {1 r! v7 |# |9 w
}3 ]% i$ D# S3 m# L
class Triangle extends Shape {
( _7 R2 C- Y6 ^+ Y7 B. b8 Y/ b% S% I& T void display() {
2 ]& r0 A5 }2 m System.out.println("Triangle");+ o! a" J0 o5 F" [
}
" {2 v" S _* f) l$ X}
" E; P' X! a9 Kpublic class AbstractClassDemo {
- v y( Y# [" C public static void main(String args[]) {9 X% a u# u' t P8 U; h5 e
(new Circle()).display();2 C: U# c6 ?+ r* |" _$ b* o
(new Rectangle()).display();
9 n* v* A, d9 O" h' }/ q (new Triangle()).display();
5 U. `: u' m4 w' q! R; q4 _" A }# e" N' U3 [5 j
}5 S) }% M( H2 \! Z9 \
A.Circle Cirle Cirle
: R7 o6 p6 \" A0 B3 r8 pB.Circle Retangle Triangle
! F O) c: U# V4 d2 E3 PC.Retangle Cirle Triangle
1 g) f! ? a0 l5 A6 g5 U( j: {D.Triangle Retangle Circle
( X. ` c8 I) L }5 b/ J7 [. M% e13.
! ` b5 {( D: F4 }2 z1 M1 S以下程序编译运行的结果是( )。5 w+ L4 u9 l( G2 u4 b) N; d
public class Test {: v$ K W5 L; h' n) x
public int aMethod() {
0 O E; z4 H% l: P static int i = 0;
4 f( M; r- a1 b# n7 j+ u i++;2 G9 b- H! K6 g
return i;
. h7 R. r( z+ f4 L" o: D' J% t& @% t& j }5 D( _! z1 o2 _: I( t- f+ ]3 x! H6 I
public static void main(String args[]) {3 h7 j$ a9 P2 [* b8 U; m
Test test = new Test();
" C. l! M- E" U0 {. m test.aMethod();7 Y4 a- N9 s; S
int j = test.aMethod();8 B% d' e% d- G' `; a/ ]5 @+ p, \
System.out.println(j);3 b5 g# k& z O
}1 h- n! O3 h% Q' t4 X1 ?
}
8 {% L. s+ ~, l! u0 q# `A.编译将失败) x) G5 s" E) @# I! K% H0 a/ M, x/ Q
B.编译成功,执行后输出"0"
/ l) I- N: E/ [9 z3 U8 c& JC.编译成功,执行后输出"1"
! \3 f# F1 @8 V. ^9 l% \D.编译成功,执行后输出"2"
) K4 Q; t* g3 g M1 j* g14. N( f0 Q2 g! t4 E; B/ v7 W
以下程序编译运行的结果是( )。
) c$ O+ |% o, g/ V* {public class Test {
" C4 ~& ^( w8 U7 p public static void main(String args[]) {
$ L6 W! h/ I" C; x/ D& C class Foo {; c1 i3 s/ A6 ?) P1 o
public int i = 3;
6 C' w8 D) {) s* S! o }
( @1 P! J5 [1 h! R3 X! j Object o = (Object) new Foo(); //第6行: H% O2 N& `% c7 W( I2 D
Foo foo = (Foo)o; //第7行6 t& y z3 X- u$ u
System.out.println(foo.i);; _2 ?( C( l- m9 x/ p5 J7 I. W3 v
}4 y$ E2 n( s6 |- g' }% b% p) A
}& q c4 f3 m- z
A.编译失败
* w% F: @: c/ E+ @( H8 O* ~ iB.编译成功且输出"3"4 C7 J- ~; [2 C' v4 W/ y
C.编译成功,但第6行抛出异常ClassCastException
$ F c% \' K g- J/ S2 UD.编译成功,但第7行抛出异常ClassCastException# w( Y @( q- |$ g
二、
4 ]) g1 `7 w2 W: ]: k# J d& m+ X" {资料来源:谋学网(www.mouxue.com)(本大题共5小题,每道题2.0分,共10.0分)
$ ?" n$ O6 l* K% c0 x" U8 {. E: K1.. b2 W% l' j, z$ Q, v0 T9 J
开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。( )
- z. [7 d& @; B对
2 H8 h8 V( L- T; a错
$ d5 q$ v5 {+ O3 b9 V# j' ?4 w2.; X- a& e5 u1 j% `
在方法定义中,可能发生的异常都必须用try...catch...捕捉。( )
9 Y, p- \8 ?8 |& _: { ?1 ~对
8 |3 {" @; Y1 p* Y0 T& q- b$ }错 4 H* x& h+ ], {
3.8 x/ K7 I- d e! G+ o! P( S
在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。( )
" }6 o/ F0 Q/ Z; O7 m( i- j: M对 2 h. x8 I8 I/ n' q" N$ v( I* K
错
! M' q. }. F- v1 \4.3 ^# _2 L- {6 @) D3 t
在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。( )
! x* k; K' o: v( I4 @4 o对 8 [$ D, @' i0 l& K' _, P8 @! Q
错
f: F$ H% G- H5.
7 z( a! h6 n/ [* g& Babstract可修饰类、方法。( )" n v6 R3 v5 H H% i3 k
对 4 @9 ~$ U( b* F9 Y: D
错
) G7 E! ]/ m9 ]5 h, n三、
6 @! p. d+ a, {应用题(本大题共1小题,每道题20.0分,共20.0分)
3 v0 ]4 q/ V/ C! N+ A1.1 l+ i: ~& @+ `' Q; F
用Java编写一个Application程序。在窗口中画出三个TextField(前两个用于接收用户输入的两个整数,第三个用于显示相加和),一个加号Label,一个等于号Button。当按下Button时,将相加之和放到第三个TextField中。
1 o$ l r2 q' v2 m0 t+ w% B0 r
* Q( [$ w0 ]1 i
" k" I1 W& k9 f# @, w9 {" b |
|