|
" c! ~/ ^0 I$ Z ]西南大学培训与继续教育学院课程考试试题卷
! \) @( i' k$ q6 F9 G) E课程名称【编号】:(0837)《面向对象程序设计》' o3 b) @, }3 t( I
6 j. e* u, {9 F5 b
考试时间:150分钟( O/ r3 K- ?! Z+ \( }( P4 B
0 S5 n3 Z$ ]' _8 e3 S更多资料下载:谋学网(www.mouxue.com):100分! @3 T$ o* }1 p e* `$ s" E
9 b+ ?. s; R. B3 b, S2 e
4 ]3 u9 I& E& X; R
' B1 H: f4 Q' a1 U一、
# y- i7 s6 U$ r# s: F& y' Z6 D更多资料下载:谋学网(www.mouxue.com)(本大题共14小题,每道题5.0分,共70.0分)
) h/ J3 P( L( \0 {) S1 L) q, a1.+ T8 y A7 g* w; n! F5 \& S% S: X5 C: L C
欲构造ArrayList类的一个实例,此类继承了List接口,下列正确的代码是( )
: Y% G3 T3 P" s; c! U F8 BA.ArrayList myList = new Object( );! F. [/ P! O% m
B.List myList = new ArrayList( );
* @* S: v8 z' C3 W7 Y7 t! ]C.ArraylList myList = new List( );" \7 V5 n" L% V
D.List myList = new List( );
" S; E2 j6 t: ]# ?2.0 M( g) M! c) N5 S& d4 Z
Test.java的源程序如下。在命令行键入:java Test aaa bb c,回车后的输出结果是( )。
9 w( {" K0 e, _+ `, J4 apublic class Test {
h e" H, w( E public static void main(String args[]) {& t2 z N+ Q3 H/ t
int k1=args.length;
( u* Z9 l- n6 _# L$ X4 a int k2=args[1].length(); 9 K+ J5 ^4 @& w. [2 S7 D$ H
System.out.print(k1+" "+k2);
$ e9 o$ k6 N7 T& Z6 z t, ? } + C! A0 u4 I8 ^1 [
}2 N$ u) I! y* J* Q7 A
A.1 2
* Q N2 c3 T/ [8 E# W% i& MB.1 3& s% { Q& f4 {
C.3 2' e2 H' u( \' b Z6 Y
D.3 3
/ {4 C: v5 l- n; Z& Z1 m$ i3. Y2 W5 y" e2 D) a, Q; L
以下程序编译运行的结果是( )。. I; L5 A+ W1 n6 P% m' o
public class Test {
+ Z1 N( k" M3 R public static void main(String[] args) {
& D; @1 Z0 L: R float f1[], f2[];
1 n9 o% p* f# ~8 t. _! g1 {; j- V- o, N* [ f1 = new float[10];* w8 ]( t8 \, S$ F4 Y
f2 = f1; //第5行
: G0 r- I- Z* s6 A- _* f3 ~$ }" H System.out.println("f2[0] = " + f2[0]); //第6行2 ~; u: ^1 v! d* y' v
}6 B7 N. _ E3 l1 T% r, u
}
$ Q: j* |- F1 EA.f2[0] = 0.0
- o& _5 F! A$ y3 Y5 F' c( b8 y2 LB.f2[0] = NaN
! o) x: X/ Q4 {* `9 j4 fC.第5行有错误导致编译失败9 P/ N/ c( ]9 ~' }) y
D.第6行有错误导致编译失败" r, B0 k) \: u6 Z# p3 f' _
4.
F8 h7 G6 y# S8 q定义变量boolean b = true;,则String.valueOf(b)的返回值类型是( )。7 O* `$ c/ @ [1 j# P
A.Boolean
0 v: E5 i o& O2 n9 _5 uB.String
* `+ G# b1 |( ^+ E2 ~3 oC.false% J+ Q: O7 ~' @
D.int
. w8 M# b! `0 f' J; r+ j4 t5.% h" C- R3 @) b- {# u
while循环和do...while循环的区别是( )。% q9 N5 V+ V1 L! ]2 H, k
A.没有区别,这两个结构任何情况下效果一样( }& u' Y+ e3 j4 \- x. w
B.while循环比do...while循环执行效率高
+ R6 L' P$ `5 M' v6 Y0 xC.while循环是先循环后判断,所以循环体至少被执行一次- e% u7 s( t% A$ ]
D.do...while循环是先循环后判断,所以循环体至少被执行一次
$ N/ Q5 Y" M5 S! Q' N6 Q6.
. g7 \ i/ q6 w下列字符序列中可以作为Java语言标识符的是( )* b& S0 d8 o8 [+ N
A.true& I' N' z( ]& m
B.123_xyz
" V7 l. S6 t7 O/ c$ ~ SC.x.y
' n/ X/ [8 ~" u+ b$ p5 k$ @& ZD._x123
: y% V/ c* f2 Q6 d- _& i7.5 w# _& @; r3 T% F9 y* {
下列程序段执行后,变量i和j的值分别为( )。# Z9 V* z& B5 I
int i = 1, j = 10;% K# k& u6 _% j b( R9 }) {
do {
$ Z: u/ P2 y( F0 B if (i > j) continue;; x/ u, X' p. n
j--;
2 t% D+ u; P4 w6 V} while(++i < 6);
$ O8 s T+ r3 C6 v0 VA.i=6,j=5
+ l. D* w$ M J) _" o" t, d' f; ^8 bB.i=5,j=5
* ?3 h. S& g9 L1 q- J' Z) j/ }C.i=6,j=4 J1 F: T, K! J# ]% m; D V5 n8 i- N
D.i=5,j=6
4 U' I/ k& W; e$ ?' c9 N8.( \ c4 B9 |4 v& o( ~9 H- _" o
若需要定义一个类属性或类方法,应使用哪种修饰符?( )/ Q* G1 o- [7 e3 n
A.static7 e% E% E) H) E# X' j# V0 R- [
B.package4 [( ^$ O& V4 x
C.private+ R N! A# V% T- n5 Z; ^
D.public
+ [) @7 R0 v. q) d$ e p( s2 \9.
2 d/ ]' ?( g5 u5 a; ~定义一个接口,必须使用的关键字是( )。9 S' k/ C9 J& U
A.public+ s7 g4 _, w& A/ d9 F7 E
B.class3 G2 d9 A+ A7 P0 \
C.interface2 V* g1 y% U6 q2 M
D.static
, \; Q2 `/ A: n$ p10.
6 g3 H. N4 V/ x1 Z3 ]设已声明了一个类A的两个对象a1,a2。为了初始化a1和a2,下列语句正确的是( )。5 W1 s1 e# R7 }
A.a1,a2 = new A();% @) h, o4 k; Y
B.a1 = A.new(); a2 = A.new();
$ L( C2 c3 `, |: t1 X5 aC.a1 = new(); a2 = new();
9 _1 g$ t) l2 U5 ^+ ]D.a1 = new A(); a2 = new A();9 J& H7 g# C2 ]% n
11.4 f0 X. h- d' h3 [4 o6 T0 U4 ~5 _
下列语句序列给出了k,myArr和myMethod( )的声明。当调用方法myMethod(myArr, k)之后,存储在myArr和k里的值分别是( )% Z$ W- g& o3 [: v+ P
5 S$ R- g+ [$ i5 ^4 N
int k = 7;
1 z3 ]' F: r$ ^0 C4 k/ [& {String myArr[] = {"love", "peace", "and"};% a. z2 c3 S Z1 [1 U, r7 t
h" C+ ~) A4 j- m6 y3 K
void myMethod(String a[], int m) {
! n% K/ n8 e9 q( i! z. _+ S String temp = a[1];
. I) @! l+ i! I( X' E a[1] = a[2];
, e0 }+ u8 n$ j$ K, C2 B a[2] = temp;
" `4 q5 E g6 {# a m = a[2].length();1 p9 X, k3 k" u3 L
}
3 q" T6 I3 }3 ]8 FA.{"peace", "love", "and"},4
4 y$ e. h( H. {9 U6 zB.{"peace", "love", "and"},7
/ K4 C" d/ z0 c' w/ EC.{"love", "and", "peace"},5* i3 h6 `0 o- P0 a7 Z) _" L
D.{"love", "and", "peace"},7# m& S% M" e7 F8 o
12.
7 @5 o) v( I" ?7 C4 {0 S* }) {以下程序编译运行的结果是( )。$ X9 w. i$ C/ s. I/ x
abstract class Shape {/ H6 Q1 M# o2 g
abstract void display();
9 P1 Z, t6 `8 k) L( ^}
9 ^ z7 D. M2 ~& _class Circle extends Shape {8 J* d$ [5 v* g( H# C* r
void display() {- j' b% J5 R) `( u2 s; J+ ~
System.out.println("Circle");
0 R4 q4 X0 B8 r. j7 Q5 Y }
1 j' V7 J9 q- Q7 ]( S; u}
1 y0 q1 i8 ?" n& D/ P/ y+ }& W) b1 cclass Rectangle extends Shape {
9 ]- Y8 J2 Q5 G void display() {
# p; R3 n' d( e& @7 M System.out.println("Rectangle");
7 s- T- f* k' p& ]$ x4 h4 z$ v- q }
8 K% a ^+ v ^3 y N0 r}3 o" U* n+ v' A. _
class Triangle extends Shape {
, V+ b" i+ `& C void display() {0 { O1 e. I/ b5 Q- b
System.out.println("Triangle");+ l0 }0 Q- L' P' f+ S! H$ P; b
}: q: I) w Y- }2 g
}3 @# }. O0 N4 s
public class AbstractClassDemo {% w6 x# ], O- d
public static void main(String args[]) {2 p: U9 x! ~. T7 H* x Q' f3 { _
(new Circle()).display();( N8 o- |4 c# J+ M0 P6 S4 T6 l
(new Rectangle()).display();
+ a# v I' @! A; i7 p (new Triangle()).display();. l- f$ l1 C& x; Z) X
}7 _0 C8 z0 g: ]' i) u, j1 a
}
# C, ~1 d) r* h9 U+ gA.Circle Cirle Cirle
, |; m4 o# W. E( u$ q' T8 lB.Circle Retangle Triangle
9 I9 K0 ^. W2 OC.Retangle Cirle Triangle
Y' a+ B5 ?! ~2 bD.Triangle Retangle Circle
$ S# I4 v. r6 J9 {' a# w2 @13.
! H; H6 G# n7 K" f/ [9 m; N以下程序编译运行的结果是( )。
9 u5 m/ P- j: L1 z) W7 n! Dpublic class Test {! D0 ^6 f T: a' \" g# L
public int aMethod() {
$ k, {$ ?2 M5 }& C static int i = 0;
* X; b% b# O$ M% {# g( u i++;
! h* X, m1 o; n5 S. F return i;
/ M7 N0 U; f* X& s! a6 ? }
. M* {! Y4 P# z1 ?! E2 ^' w public static void main(String args[]) {3 S, y& M i8 q6 g8 S! S! f
Test test = new Test();
* G# N+ D% t; m3 W4 u' @ test.aMethod();0 E9 \/ w: c, N' ]" L& G! Z
int j = test.aMethod();
1 `1 D- i! Q8 v; b' n3 ] System.out.println(j);
$ j; R& Q5 _9 V7 g& ~$ ?. [ } M5 N& k# M4 |. W7 A* ]
}
! h) u) S* u( G0 S* V( O, x) |( |- YA.编译将失败" u9 Z8 T" H4 h/ y7 L6 P7 B
B.编译成功,执行后输出"0"
( h9 {/ Y& S( H1 QC.编译成功,执行后输出"1"
, c' A5 p; j! n& PD.编译成功,执行后输出"2"
# d& z; c7 n* N+ u% H7 |; q& H14.
5 q5 n+ w/ C) g( u% A' w4 ^8 Q0 ]以下程序编译运行的结果是( )。( S2 y6 m, w3 @' h/ r: m
public class Test {) C' c) W, L. e5 @
public static void main(String args[]) {
4 t/ u& N9 c ]* Z* R8 f% o1 \7 b class Foo {' _9 _$ Z! J5 }) I. S) C
public int i = 3;
2 I1 _6 q9 j% c- C+ y }1 V" O! K9 H; d5 z
Object o = (Object) new Foo(); //第6行2 a6 L5 F* K) t( X2 t
Foo foo = (Foo)o; //第7行 ~) t% ~7 }3 W9 V5 ^2 N5 z
System.out.println(foo.i);6 R5 L( g+ y O8 A( o
}, Z5 j9 A: _8 D4 v2 B+ O
}
! h3 ]+ S- U# j% J) BA.编译失败6 y* u, P0 c. D- F6 Z
B.编译成功且输出"3"
% e8 `- W6 U5 l2 ~& a6 RC.编译成功,但第6行抛出异常ClassCastException
. a$ k/ z/ I/ D ID.编译成功,但第7行抛出异常ClassCastException* b' `! q# A4 W) K; C8 l U0 t- ~
二、
2 N% H9 a8 b0 D6 P资料来源:谋学网(www.mouxue.com)(本大题共5小题,每道题2.0分,共10.0分)
& W' }# @7 X7 _( ]" n2 S1.- A: P$ J a+ M
开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。( ); W: k+ N. g9 _% L& O1 F8 R* z
对
$ i8 W% r1 p6 E' S错 8 o. v0 H1 _1 \- s
2.
1 u9 s' P1 {/ s+ e在方法定义中,可能发生的异常都必须用try...catch...捕捉。( )% A6 C Z* Y% ]
对
% {& Z! @- t( g1 G错
9 K& U% @+ t3 r- d3.
4 Q# a0 C; M# d在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。( )
* O* m" I% c2 a( O1 K/ v对 & {: ]" [( B& x) }/ W' X
错 2 s$ x c; ?& [- C: Q
4.$ @) ~- ^9 z0 T' v% e
在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。( )2 \( {- O" e( w2 x8 y! l6 T; D
对 1 F: U. l# u; c( `, M! U
错
0 _ w. [& X/ l# I' b5.6 `, l5 t; J( O0 P
abstract可修饰类、方法。( )2 c% z; o* [5 |! J) i- o
对
/ t( { R- E% M8 ]( M, E* g错
" l& w# P+ G S0 y& a3 z U) @三、
Z. l' w2 F+ Y, h5 t, r应用题(本大题共1小题,每道题20.0分,共20.0分)
, n+ Z3 m$ @# @( Q6 f% R: S7 z; T1.
0 H% r1 A- R$ l- w$ ?2 n用Java编写一个Application程序。在窗口中画出三个TextField(前两个用于接收用户输入的两个整数,第三个用于显示相加和),一个加号Label,一个等于号Button。当按下Button时,将相加之和放到第三个TextField中。
) }8 f' V0 {" _3 Z. j
( g6 m7 z! a4 d; t6 ^
: M# D8 H/ h( e! T- ]# l1 i |
|