|
课程名称 Java语言程序设计& }) y6 W8 n7 o3 b# t
教
2 N" _% R, p6 U8 c0 C( b材
* |8 e; \! F: d# w- i0 M信
8 l O2 U% v9 g. K2 i息 名称 Java语言程序设计6 P$ ~ h" V/ `* D, S% H
出版社 中国铁道出版社
. ?6 E1 P) a4 V/ Y* j3 E8 k! e) _7 y% o 作者 清华大学计算机与信息管理中心% J, P& u/ r' E, ]6 Q+ t2 u8 A
版次 2010年1月第1版3 N( d" k* D5 J) J9 m5 {
注:如学员使用其他版本教材,请参考相关知识点
+ q0 s) V0 @& ?! r6 y( Q
5 @1 }0 y! I" |, z1 Z一、客观部分:(单项选择、多项选择、不定项选择、判断)
k& { f. D5 E3 h& W(一)、选择部分$ g$ r: M2 T, a
1. 在Java中,负责对字节代码解释执行的是( B )。
$ a/ V8 A! B+ ?" |( yA. 垃圾回收器6 a3 |# Q; C: @% t! ~1 H3 T
B. 虚拟机
% b+ v4 J/ {" y$ R+ PC. 编译器
2 D5 k! W# N! K- u' U4 b5 T! RD. 多线程机制: p' P$ a' K* B9 `9 Y3 T1 B+ A; ?9 b
7 s w/ D# h: X# S3 {2. 下列属于合法的Java标识符是( A )。
1 W' I7 w: t/ A2 v# O5 eA. _cat5 p* M. ] O: [6 u& a
B. 5books
, C, S) u; _7 ~$ K& R; G+ y! fC. +static 1 O* c* e& P6 r( X% ^. K
D. -3.14159
! H1 M' @: Q/ w; r; e* q# B
& i1 Q4 o* W ]3 `8 i3. 在 Java 中,由Java编译器自动导入,而无需在程序中用import导入的包是( D )。
) M t8 o& ]8 I7 U8 z W1 UA. java.applet
! w. ]% S; ~& tB. java.awt
' h$ M7 H1 B6 v$ d4 |C. java.util 5 H, H% _" K% \+ z9 u( t" Z
D. java.lang
( x9 Y* T* m/ o; @% ?1 u6 b# e
; y; v8 U1 Y$ j, Y D2 c! i4. 在 Java 中,用 package 语句说明一个包时,该包的层次结构必须是( B )。
" Z9 Y7 U! k, S, |% L) |7 w* rA. 与文件的结构相同: x% C( f8 g1 ^1 g& E
B. 与文件目录的层次相同. h& f* b: ]- w3 z! S2 L
C. 与文件类型相同# E2 O; b/ S# W5 X
D. 与文件大小相同
; y2 J# o" ]4 y- g8 R, [$ T8 I- o( o9 l4 M# @" ]- m
5. 在 Java 中,能实现多重继承效果的方式是( C )。
' i4 S- x u% R& t4 P# W; vA. 内部类 ) p( r1 V1 t# s2 V H# N
B. 适配器/ V: y D( n7 i! U
C. 接口
) l6 Q# G, L# y/ v, I' L; n& W( U4 }D. 同步& u" B0 `0 l, x1 M! V; ]
5 Y+ k8 p% y) d6. int 型 public 成员变量 MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( D )。 7 h) a4 W7 o: Q9 A9 L1 w
A. public int MAX_LENGTH=1009 x8 x E& ]0 m; \; `
B. final int MAX_LENGTH=100
m% F4 o: `8 Y6 g% YC. public const int MAX_LENGTH=100
; Z; q1 A# o" k9 D3 SD. public final int MAX_LENGTH=100 9 k* v$ V$ C1 U( H% M
; ?0 S! b+ w" r/ Y7. 下列代码中,将引起一个编译错误的行是( D )。3 h4 U* G6 [6 H6 Q
1) public class Test{
# }+ f1 A7 U- q, I6 d( Q! [2) int m,n;
; r$ f" J( V9 n* \3) public Test(){} * w) b2 E+ e( {$ [7 P9 i# k
4) public Test(int a){m=a;}
* F; Y2 o7 r F, c) c7 D( q( o5) public static void main(String args[]){
) G) G' `+ Z* j& `( P, B6 g6) Test t1,t2; + e, A. ?) D* `2 O+ X. z: u. J
7) int j,k;
7 S1 \) _. ~! p$ u) O8) j=0;k=0; 6 z' g e' v! t& G9 n9 i J
9) t1=new Test(); P; w' }8 i+ d+ e V5 F+ ~, ^3 F W
10) t2=new Test(j,k);
* Y+ Q5 m% ]8 W11) }
7 G2 f, |2 \0 l: y6 M3 G12) }; f4 S' j. z: c3 p+ E* {6 l
A. 第3行
1 S( g( f' w) }( M% FB. 第5行
" L! O" o2 z8 eC. 第6行
; x3 P- ^+ C' u$ t+ I' JD. 第10行, Z" @5 z& s0 q n, g) d
! ^4 T6 x+ y" f9 ?$ m' k
8. Java语言的类型是( A )# a1 q9 O: p# }% t- a
A. 面向对象语言 ) J- g, w" s; P/ S i% l0 a
B. 面向过程语言
! V* i9 [0 K8 e. u. hC. 汇编程序
* G, G" F. x! L8 OD. 形式语言
& R' _. ^& b( u+ ~7 \- b2 f1 z
% {" T5 K. L1 e; v9 P: L9. 按运算符操作数的数目划分,运算符 ? :的类型是( A )
8 U6 Y; w3 V9 `) [1 CA. 三元; c. Z5 `9 L" _- {" V/ _
B. 二元% S, v' B: y! p/ f! q
C. 四元! U. p" [6 i+ Y( r
D. 一元- L4 q' e% F1 _9 F2 @4 A' A
. G" [( i+ x) W; x10. 下列赋值语句中错误的是( D )
) Q' o+ K3 J; d# ^( mA. float f=11.1f;
! z4 p1 F5 Z- T% ]; Q: LB. double d=5.3E12; 5 q/ D- g! I$ r/ V$ ^
C. char c='\r';
& e$ q0 w) M VD. byte bb=433; i/ ? J- j# ^- |6 f
. T" J4 P, s6 e' B# e9 R e- C11. 属于main()方法的返回类型是( C )5 O; r' o* u0 l# M( I
A. public 9 M7 F& c4 \2 i* a: T( O
B. static
+ l! u* A5 M4 \# `C. void / ]; n& q8 I! }4 J
D. main
( K% L2 N4 [+ Q1 J" n
# _/ @8 V. s4 d2 ~8 h9 j% _12. 下面程序段:2 C7 ?* H1 l$ |; n$ f% d
boolean a=false; 8 p( r( n) z: M& y- D6 x1 s
boolean b=true;
6 H: _% h* M5 T" N/ ]1 kboolean c=(a&&b)&&(!b)
$ t$ S4 y, l0 H7 \( g9 rboolean result=(a&b)&(!b);9 r$ E Y, b3 [' A
执行完后,正确的结果是( A )5 G8 Z! B/ p2 S4 N8 m
A. c=false; result=false
7 M# J8 r% K* P# ]4 _B. c=true; result=true- E$ d& O. h( ~8 U
C. c=true; result=false, T2 w# g: Z t# `0 v/ }6 n3 e
D. c=false; result=true
$ K! O/ W/ I, Q: i [& I% w0 w$ _$ [3 v1 @8 Y: j9 F& |- z
13. 下列哪个是反斜杠字符的正确表示?( A )
4 x* O; Z/ e8 ~8 L2 A; f: C$ zA. \\
* ?& K+ [0 S v2 YB. *\\ ) _! K. k3 B5 d( L6 Q) [$ i) T) S
C. \
8 y- J% k+ D/ Y& ~. `9 LD. \’\’1 M% B4 ~8 j8 |9 E/ `8 k7 C+ C
+ k3 g6 e8 S+ W6 B4 ^( H14. 下列代码的执行结果是:( D )6 H. c C. T0 V& P. f
public class Test1{
6 a, u7 P+ R a4 ~public static void main(String args[]){
2 D3 j4 B- b$ C( r4 ~$ xfloat t=9.0f; 2 J2 I, l5 G; A. U& L* y
int q=5; S6 A1 U/ s6 Y) `
System.out.println((t++)*(--q)); 2 A3 F* e' Q% y" \9 ~; t
} 7 Y8 W( R0 A$ n; a/ s/ k1 T
}! D I x3 V) b* z- @$ O
A. 40 1 ?1 f; g4 ^( @; a" x/ i
B. 40.0
, t* I! l/ p$ }; @0 jC. 36
+ F& \3 w9 o0 K' Z% h) k; aD. 36.0' s( Z+ D) Q3 p
& t. N# r& i; W! _; I3 X6 Q15. 下列程序段的输出结果是( C )
1 V# _2 A. ~! F$ Dpublic class operatorsandExpressions{ # a2 n, k3 }3 A0 G$ m. u1 x/ _
void stringPlus(){
2 a) C7 }7 f9 D& J# q6 cint x=3,y=4,z=5;
6 l1 x( v6 ^( [! CSystem.out.println(x+y+z); g. s, n- u- J, b! G y3 }- ^
}
* E) z& S5 h$ G' K0 \7 L# [" J}
4 ~/ U: c+ T6 H* D% R' Y6 kA. xyz 8 R% p* a- `2 w% S8 X9 b9 C/ k8 O
B. x+y+z # b; r m! O/ D0 C; ?6 C9 F: H
C. 12 , V) V7 U& ]6 W0 q7 H3 n
D. 以上均不正确 X1 D8 s& ]' H$ r7 f0 B
- ^4 s% ~ W3 }0 @5 r* g r$ L* s
16. 给出下面代码段:
6 g& k0 F2 Y) v1 U t, u0 i5 f- T3 g' Mpublic class Test1{ G* ~5 p0 y7 j+ t0 {) ?
public static void main(String args[]){ " B# b% ?0 I+ T% R
int m; - _* M4 {" q8 {) f! S2 p$ Q
switch(m) ) b. P( C- ?2 o! G" e
{ " x$ J7 p8 s0 _& x+ M: c e
case 0:System.out.println(""case 0""); - ?/ ]- y" E3 K w: m$ f' ^ ~. Q
case 1:System.out.println(""case 1"");break;
, P1 T$ Z# t" @6 h0 Ycase 2: % i! s. w; Q+ c/ @4 k# F+ E
default:System.out.println(""default"");
( l$ `6 L, l# h1 I6 n+ s+ U& d& ~} # |: H6 ~) t& K; \# _
}
7 Y/ j+ M1 a/ c: Z' U: \) k0 h}
^# ?5 R h* Q3 A+ W. g) a! \5 _% M下列m 的哪个值将引起“default”的输出?( C )
* i# H0 x6 X" A6 N0 p) PA. 0 - i9 n% l% N# A( h
B. 1
7 X5 I6 H U. ~- LC. 2
- X0 F# h) }" E8 N ~. {. Y, D. MD. 以上都不正确
! q' i4 J5 O5 r
u; b! Z4 y* _) k8 U1 ]17. 关于以下程序段的说法正确的是( D )
% t2 W5 ]5 T* J. ?0 I1) public class Myar{ ! K# V. \& s n/ s: K z3 F
2) public static void main(String argv[]){ & s0 @: J% j2 E/ j1 i; F
3) int[]i=new int[5];
6 \+ W! w. T/ p0 N4) System.out.println(i[5]); 7 D9 l1 H Z# Z2 m* A8 J' Z7 r/ Z/ L
5) }
9 s3 H; S- f" X6) }: a) T( {! w$ T2 P/ g8 k! |
A. 第2行编译出错: d; E* N7 [4 e+ G
B. 第4行编译出错
; g) |& L! L9 U8 Z; C3 JC. 编译时产生错误# e# e! H" F) v* J) c. L
D. 编译时没有产生错误,运行时发生异常7 ^3 g- F! a) L* ^
5 H6 D, u; J. x$ t. o( Z18. 以下程序的功能是:求n!。请在下列程序中填入正确的语句( C )6 b9 ^) s6 @6 |) f$ p, j
class FactorialTest{
$ H: p' k- K# H0 m2 _6 c1 t9 Hstatic long Factorial(int n){
2 Y/ u) \8 j& Wif(n==1)
/ B1 b1 E2 u5 P# h$ areturn 1; . g+ K* N" j9 x; {2 l
else
* b1 A$ S& V& Y/ I' \_______________
+ m% l k% |( ~! @/ I, z4 o}
5 p1 E b' d& g- r3 ipublic static void main(String a[]){
3 e$ G7 e- w8 p& P; U8 mint n=8;
4 j$ _' f5 q+ I% S: x8 nSystem.out.println(n+""!=""+Factorial(n));
8 N) T3 R- A- _! i2 Y} 8 z/ G" v3 {: j9 h& c: y; C6 `$ ~5 c$ W
}2 C9 q" Y2 O" a$ |5 X
A. return n*Factorial(n);
9 c( p# X6 X8 yB. return (n-1)*Factorial(n);
4 z0 G, S9 M/ j$ n0 ^( Z2 P4 TC. return n*Factorial(n-1);
$ h9 T) l# b( A3 K& t O7 }; z D" ZD. return (n-1)*Factorial(n-1); , w4 i0 d8 A. e( N
0 E2 Z1 { i; f9 \0 e' s( z, y
19. 下列对继承的说法,哪个是正确的?( A )
( A" R/ \$ F' w9 JA. 子类能继承父类的所有方法和状态 6 w4 x4 H6 `& ~
B. 子类能继承父类的非私有方法和状态
/ O% l& C, ?7 o' W% I6 [* [4 _7 sC. 子类只能继承父类public方法和状态7 ~: z$ x8 A {7 F
D. 子类只能继承父类的方法,而不继承状态" m" S: M u7 g0 }1 m0 h( R
2 y5 z/ O) P) _% ^1 W1 I
20. 设有下面的两个类定义:
5 K7 V9 I( k5 B) H1 O( @) Cclass aa{ " N4 P/ g7 \0 ^0 I
void Show(){System.out.println(""我喜欢Java!""); }
9 p% ]3 W+ f& t}
+ U" ?7 H% f0 o$ D0 y4 hclass BB extends aa{
9 ^9 m/ ^8 D' i8 A* N" }* lvoid Show(){System.out.println(""我喜欢C++!""); } + M( p x$ t$ }' ~$ j' Z! c
} 4 X( c5 u" d$ t+ f, a" F6 {
则顺序执行如下语句后输出结果为:( A )
, Y$ p( s# `) v) g; d `aa a=new aa();
: E% ?, G. ]& @, @! YBB b=new BB();
7 p$ ^0 {) b& G/ y0 A; m la.Show(); 9 f$ z0 v; h) h& o& Y/ n4 I
b.Show();* @. ^+ I0 Q1 f0 X
A. 我喜欢Java! 我喜欢C++!# b _: b3 [, @4 U6 \5 T
B. 我喜欢C++! 我喜欢Java!
! I% m2 b; ~7 g: lC. 我喜欢Java! 我喜欢Java! . s6 r3 F4 }* ~! O9 e
D. 我喜欢C++! 我喜欢C++!
2 e5 {0 B* ~2 V0 W% h
$ i9 {) H2 |9 L21. switch 语句不能用于下列哪种数据类型?( A )
4 o' ?9 ~) s! s2 I) U" GA. double
- D( {& G/ K% _6 a0 X& A' rB. byte4 z, j- U; D6 L+ n, d7 [+ E% Q
C. short
1 w K5 C/ M4 V3 ~D. char
8 h1 M, y2 O) S8 S: M) R' G8 B7 W! w) G% [, ]: I; ]' e
22. 顺序执行下列程序语句后,则b的值是( C )
3 t2 Y* t8 q3 \, ZString a = "Hello";3 m7 v5 N+ R; z% m
String b = a.substring(0,2);
7 o# U2 f4 k' ]: OA. Hello+ N( c+ X0 W! Q) W& X5 e: x4 ^9 f
B. hello% d( M1 Y6 E' {" k; d
C. He' u) m1 k2 n7 T; I8 s( m
D. null- k2 L% D- [& I2 L8 ]$ R
6 A: [$ j6 x- v. a& M! j23. 以下关于继承的叙述正确的是( A )。8 c4 f: @: V3 l9 P" E
A. 在Java中类只允许单一继承
/ ]* f) N& U/ v& M) Z6 f; P: MB. 在Java中一个类只能实现一个接口4 h, T$ A. e, r: m6 u) M7 Y
C. 在Java中一个类不能同时继承一个类和实现一个接口( E n2 Q; K4 P3 R6 {# c, B+ Y7 w
D. 在Java中接口只允许单一继承: F0 }: x$ a4 f/ Q
$ I& j9 P: K$ z/ O24. 以下代码段执行后的输出结果为( A )( I5 l. R) i- q0 g: P Y6 k
int x= -3; - k/ J4 E+ C& b
int y= -10;
; @# r7 p' w) oSystem.out.println(y%x);
5 R" X+ x) h H; c2 _+ BA. -1
# d' D5 x5 |/ Q; @3 m9 W$ {1 ]B. 2
" u) ^+ ]1 z% o+ s* r L: U7 ZC. 1 " \+ a. G1 i- m) Q: W. V
D. 3
* w* ^/ a1 {4 n2 t3 [' q- L' }$ N
: S: X; V: N( x* M7 J. n1 u; r1 ~25. Java application中的主类需包含main方法,main方法的返回类型是什么?( D ). G' N9 I1 N: P2 \& `8 G1 g
A. int
4 P+ U/ r( d: V, U' CB. float
p& w1 _) B) IC. double ' R& s: a/ T+ N: s
D. void* l. t x* e9 }/ U
% B! V- [- Q, o( f) T4 [
26. 以下哪个不是Java的关键字?( A )
2 a" d, c: |$ q3 ?A. TRUE 4 q. [* |" x, `- f* g1 q7 u9 p
B. const
6 N6 e6 \: r9 _1 k3 x% H! e, LC. super
0 Q% o2 ~3 U1 a" T1 pD. void
3 ]7 V! F6 P5 ?1 V8 y! N
* z& a8 K c0 C' _$ W+ \, Y% P% d27. 以下关于构造函数的描述错误的是( A )- Y4 w$ Q- `6 g/ B
A. 构造函数的返回类型只能是void型。
: O& _+ |0 ^ w- a- f+ \ EB. 构造函数是类的一种特殊函数,它的方法名必须与类名相同。
- H7 [, \! d8 p. V/ VC. 构造函数的主要作用是完成对类的对象的初始化工作。
# s ]5 R: A) `. |( h# T& SD. 一般在创建新对象时,系统会自动调用构造函数。
" ^) B" i# ~- Y7 S/ s6 ^8 N6 [8 V" _, k% t: t; c6 H
28. 在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( C )
( O: G5 _( g/ O0 k7 TA. 隐藏) c3 S. T3 I% d- G
B. 覆盖, n; O1 i" I7 B& `2 G0 {
C. 重载 o3 [7 Q; c$ E* Z u2 z! ~5 q
D. Java不支持此特性" O: o5 W. j! B Y9 p0 Z- Z) N
- A4 c; a$ ^, W3 k' t6 W5 J# ?
29. 下面可作为public void aMethod(){...}重载方法的是( D )* w I* n* _2 K6 ~
A. void aMethod(){...} 5 `6 f: I& }$ b9 g
B. public int aMethod(){...}
5 b! H# Z# r- m9 N8 c$ ?( L7 H' oC. public void aMethod ( ){...} . V, a4 b! i" b n$ a2 J7 }
D. public int aMethod(int m){...}5 I& _% _% A( c* x0 m$ c
( D/ G8 M( u# D' C3 ?
30. 假设A类有如下定义:! q* [) N$ i' ~/ G* N4 d7 j0 M. J
class A
2 w9 b! u+ U3 W{ int i;2 }( B" W6 q0 `$ m
static String s;
( D5 r5 f! g) Z* Q3 U: e# E void method1() { }4 H6 @1 ^. f) I n! ?3 a
static void method2() { }
+ V9 p9 Z' m* {; J7 A3 k2 R3 i, D1 p}/ v2 j2 R" F% d# H
设a是A类的一个实例,下列语句调用错误的是( C )( a; h; G1 `* r& U( w5 W
A. System.out.println(a.i);
+ j% a/ h$ P3 z* ^5 a$ C/ l, sB. a.method1();
, L2 N, v W- U6 x5 h i tC. A.method1(); % L9 g8 m2 z7 f6 j; L
D. A.method2();
9 y4 c; R- T2 y4 T- _( ]0 u7 e, D! H5 D/ n( A
31. 以下( A )不是Java的关键字。$ Z* H' A7 N) t: I0 ?3 k3 v
A. FALSE
$ q- w$ Q! ?7 d6 `' WB. const 6 x8 K9 [, D7 S, i) r4 t8 Z
C. this
- N" X& {- R% L, [6 N3 i" TD. void2 f+ W9 ^, R7 f5 K5 j( m1 e
% L! f* b, n0 c- K
32. 关于以下程序的描述正确的是( C )
6 c# F; W/ n& ?. ^& ipublic class UseArray{
! [8 r x, {; k! [: p static int arr[] = new int[5];
: [4 N$ m8 o. f# V; d public static void main(String a[]) + {7 W9 j5 P0 u6 O" U$ l& D
{ System.out.println(arr[0]); }
7 i+ X) Q' ^ {5 _- J" K) r0 E1 d}
9 s7 |/ M8 D3 |2 z6 Q: d) X0 O, qA. 编译将产生错误
2 z) E. j: k1 x, q% BB. 编译时正确,但运行时将产生错误
6 f3 s$ j+ v1 G: F+ HC. 正确,输出0 : O: V6 h* z6 n- E
D. 正确,输出null$ P/ v& |. O" o) b: s# x4 S
2 e& u. f" P1 M8 R1 N n33. 一个循环一般应包括哪几部分内容( D )
/ m2 J# a8 c) P2 x* g# `A. 初始化部分
. U5 c6 I; v1 y: j2 p6 qB. 循环体部分+ U- U& m- Q6 ~( P
C. 迭代部分和终止部分
$ m; ^5 f" V0 vD. 以上都是& G9 B- z$ _" F G- X$ Z Z, l
2 \+ L S+ }/ A9 |; c( i
34. 在java语句中,运算符&&实现( B )
9 O! m, U2 K) r$ y7 ]% D0 EA. 逻辑或
: \# k4 j& \ H% NB. 逻辑与
4 F0 S! E" G) f) n9 h/ D8 E/ d* ]4 I6 uC. 逻辑非
+ m2 `+ ]; h$ w' Z6 SD. 逻辑相等4 K n9 Q0 i* m. ?% K% _0 T
9 N( O) L# o4 D: c, I35. 下列的变量定义中,错误的是( A )
3 K' L# O1 V9 B" D, IA. int 6_a;
$ B1 A: v2 l- F1 XB. float a;
0 I0 {/ G' e \# C4 X: V cC. int i=Integer.MAX_VALUE;
5 Z L% n9 @1 wD. static int i=100;
5 i* E7 d8 Q5 d3 t% r& G& c
& \) G6 Q3 O& t. d36. 下列叙述中,正确的是( A )
; w, x# v, @; a+ oA. Java语言的标识符是区分大小写的 5 L3 R" p) A2 {, f6 h
B. 源文件名与public类名可以不相同$ E d# }* @( B- _! w/ t$ Q
C. 源文件名其扩展名为.jar 3 W5 e8 w, `, Z. [
D. 源文件中public类的数目不限
* {* |- H2 A/ ^* A
1 {# ]6 o: O7 U" |37. 在 Java 中,表示换行符的转义字符是( A )。
4 |/ D/ z: t1 |# C/ j, LA. \n ' ?% s n% R5 s, i" T* [
B. \f
# k2 \4 D; y; x! gC. 'n' 0 v3 A- n( X/ N
D. \dd* s7 ?, |5 X- `% w! q- U
8 {7 Y+ V# M0 \5 A% I38. 在 Java 中,所有类的根类是( A )。
% ?' j. |4 }/ |5 RA. java.lang.Objet 1 W2 D" W s( N; S
B. java.lang.Class + o- B* ]( l+ V+ v% s$ u
C. java.applet.Applet ; E. o- V! l" Q8 x. A9 U
D. java.awt.Frame1 Y& }7 q2 e; q5 a4 u
5 o6 p- E) l# D( \( x H! W6 C39. 下列构造方法的调用方式中,正确的是( C )。
5 K8 p. x# M: D$ K6 a K0 i9 wA. 按照一般方法调用 ; g2 q: ^ Q4 b
B. 由用户直接调用
^' v- l" W' G5 e6 U+ JC. 只能通过 new 自动调用8 o9 Q' _+ l9 X
D. 被系统调用2 J8 R8 v7 @- Q) o9 k) J
; P! [) |( D, _4 P0 w( ?
40. 能够支持 javadoc 命令的注释语句是( D )。
2 H7 H9 S3 G# R2 ]A. /**...// $ J9 w, V" p4 v) J- a3 P
B. /*...*/
5 k# l: y) u) e' f( g9 bC. // 6 p/ T8 E# G$ ^0 q: X" Q4 p
D. /**...*/
1 S q: k5 |: Q- K4 V1 k: \' S& f, A! Y
41. 按照 Java 的标识符命名规范,下列表示一个类的标识符正确的是( B ) ; A- e2 R3 l0 I# K+ m
A. Helloworld
! k' w) v2 D vB. HelloWorld
2 u' Q. j( B |: }, V: [C. helloworld
# c1 p$ S( E& P* n2 b' _- L1 r* vD. helloWorld% d* O; g7 j m" I8 `3 O
8 X9 _, ]) C6 r O$ y
42. 阅读下列代码后
; M% ^/ x/ C$ o8 f, A: x, qpublic class Person{
/ {: B* m3 }1 ~( u, w. O( R+ @int arr[]=new int[10];
9 H7 o+ y3 R" Epublic static void main(String args[]){ 3 L6 E7 i+ Q/ J6 O
System.out.println(arr[1]); 7 A p; u' O2 U
} ' v& F* {' A# p$ E" M9 X/ |
}
; n3 [2 ]+ R0 @7 R: C+ P正确的说法是( A )0 z. x+ N; S3 r% \
A. 编译时将产生错误 & K/ J# ^# m. S
B. 编译时正确,运行时将产生错误
: x7 @2 O9 F3 c* tC. 输出零+ w! \% q; {9 J% i4 X8 c
D. 输出空
! i( E5 v) ~1 u& ?0 ?
9 I) v8 t6 p7 w$ R0 p, T43. 下列哪个数代表八进制整数?( D )
, A. _ ^- `' Z3 K- ~' t; z% q' nA. 0XA6
8 l( V' W0 u) l9 L2 N4 t& T+ AB. -1E3 / N' D6 L9 N4 k: n
C. 1840
9 a K9 N8 i, k5 |6 E9 C& sD. 01449 s# v7 n9 C! L9 X
( C' n3 R* t, m3 O2 E3 w. O
44. 下列代码的执行结果是( B )
' @( O8 P6 G$ j9 Q1 N7 b5 ?+ @: o7 Y1 Vpublic class Test3{
9 ]7 n2 k3 v" w' x8 l* ^public static void main(String args[]){ 5 [) }# X. `, F7 u9 j& a
System.out.println(100%3); B, w2 S% {9 N% b: y1 d H
System.out.print("","");
* T1 |4 A+ m) ~System.out.println(100%3.0);
9 G/ S( { I* k: u% }} * G$ S" y+ w/ A% _- g; D/ q
}1 R5 W5 ~) z; h' J7 Q& ]+ J
A. 1,1 9 x5 q) \8 Q1 ~& y( h- @
B. 1,1.0 2 d. ]# p% l5 E4 Q- f, d
C. 1.0,1 9 `( V7 ^; V8 T* ~" T \
D. 1.0,1.0
+ v" {+ I4 v! ]+ x, J+ h9 H6 W
( a1 f3 q% R+ _5 p0 j45. 给出下面程序段:
- `* e5 g! m6 ~/ X0 D, Vif(x>0){System.out.println(""Hello."");}
/ R( b5 g# }. R. w" y$ Nelse if(x>-3){System.out.println(""Nice to meet you!"");} ( D* }% a% y" a& ^$ |! j# H& ~
else {System.out.println(""How are you?"");}
' G8 t. W# [% w, l若打印字符串“How are you?”,则x的取值范围是( C )1 s2 \; V' _9 }; ~. H; {: g& [
A. x>0
) ]& Y0 U. k- o8 ~% l2 IB. x>-3
1 h6 a5 P. f6 n$ E J8 \C. x<=-3
+ }% A3 l6 P* {) OD. x<=0&x>-3
' K/ Q5 ]9 q7 b* e% {
* N( _2 _3 l- U! p46. 下列数组 a 中,版本较新的能在程序运行时动态调整大小的是( C )
8 [6 v0 k) \7 |) JA. int a[] 0 E' J" R. C. p$ ^# t8 B l
B. String[] a
9 s+ |+ A! ]8 N4 C" t# x" U; MC. a=new ArrayList()
6 ] _# P S4 L/ R& }, q6 f& O) DD. a=new Array()
! C* _& L. {& j8 Y! c8 N/ F" X5 p6 u0 m4 D- H0 X* ~- @# y
47. 编译Java application源程序文件将产生相应的字节码文件,这些字节文件的扩展名为( B ): G) [6 T% \6 N B" R
A. .java
0 S* I" J+ z( Q7 yB. .class 9 v! ^' d2 Q/ Z/ i4 e
C. .obj & r0 o: Y; _8 Q m G
D. .exe% \- T/ V7 l+ h
- r/ ?; n4 p6 ^2 ?+ s48. 下面属于Java 关键字的是( C ); _) F% ]7 W- S4 n
A. NULL ' X$ w S$ S/ G) g; v9 y
B. IF
8 Y9 c Z) \5 wC. do
0 H/ _- V% d) C& K, ~" Z: X1 `D. While 5 Z# t8 r2 p" V4 S
+ p& q7 K5 f2 m' @* t4 r49. 以下程序段的输出结果为( A )7 N( d1 Q% t" [: r+ K4 Q, E- w" ~
class Cruncher{ , _! P+ s2 Z# v3 A/ Y
void crunch(int i){
- b8 B- }2 E1 [& \+ ?2 sSystem.out.println(""int version"");
A/ ?7 Y% A6 r' P1 j% ~$ o$ x}
h8 l% {& K# Y2 J9 I+ U' J3 q; Ovoid crunch(String s){
$ F# F+ Y) Y6 \System.out.println(""String version""); " m) g C8 A! z+ E
} 3 o' S: `; u. a
public static void main(String args[]){ ; f7 G L1 |* a0 ^8 h
Cruncher crun=new Cruncher(); ) j1 T) X) {" ^. c0 y5 @+ o Y
char ch='p'; " Y3 }( W. M. Y
crun.crunch(ch);3 F7 ~) ]( \3 `6 j% K3 Z
} 4 J6 g/ D9 r; A: a
}+ G8 }% y, ^ |9 C# b. d
A. int version
* M! U% E7 a9 X. H0 q2 F0 KB. String version
' k5 @6 U& M/ x# |C. 编译出错# _; Q( G/ e b; C0 d T2 p! ^1 t2 e
D. 编译通过,但产生异常* e T {: W+ w2 \4 \0 I+ @% M
, x& E9 Z+ t) U( H6 q! u7 W50. 下列程序段的输出结果是( D )
! a( L: w1 B+ N- h1 y) @" Vvoid doublearithmaticOperator(){
1 o( J: t! d, a# t" ]1 hSystem.out.print(9/2);
' Z0 m$ ]1 R w/ u/ USystem.out.print("",""); / U8 x6 r, D, A- y* x) |& p9 j
System.out.println(5/2.0); ' t) {6 e G( u9 h) t9 U h) [
}2 _% X, M, h1 b& R$ }7 P& y
A. 4.5,2.5% V8 P! P+ _' x
B. 4,2
h. [; y4 D) ^* ]$ b, o% P: M8 |C. 4.5,2
. U" @0 k x. `/ \5 e( iD. 4,2.5- \; b0 Z: l! x; s' t0 ]* e
4 o' a$ z. W" Y/ z, A/ t
51. 下列程序的输出结果为( B )
8 D0 n1 w$ D- p+ h! o' Z* cint j=2;
, p g3 Q# a- ~& Uswitch(j){
, ]/ J, p1 `2 j+ I1 Kcase 2: & ^+ ]7 v% \1 m1 n$ ^
System.out.println(""Value is two."");
; a+ {; ^0 Y. |4 Ncase 2+1:
% y' ?8 r! }5 h, s/ ]System.out.println(""Value is three."");
$ A5 _4 p# I2 _1 E2 x1 m" j* Bbreak; 5 }6 ]1 B- R# E* U$ _
default:
; i( [' q$ w u) I9 C2 YSystem.out.println(""Value is ""+j); : u* e- d* v4 J9 h7 D, k- M! _
break;- [) M8 g+ Y3 K" g
}
C9 A1 ^( S: b3 v lA. Value is two. 6 o! @/ ~, j! T X
B. Value is two. Value is three. ) }" Q; D8 y: E4 D l8 @
C. Value is two. Value is three. Value is 2 % x. H4 x) v: ~3 j9 m9 a: z% u
D. 编译错误
1 c, F8 y# ~0 A% Q* R: N6 Z$ K, g: q g8 x8 Y1 }4 t& ^
52. 编译并且执行以下代码,会出现什么情况?( C )) o1 w' n2 a4 z
public class Q{
3 |5 M0 v: ]- H. ?- T. F" K& |public static void main(String argv[]){ 7 n$ `" Q1 G3 R# d* N3 S2 B: L' d+ ]
int anar[]=new int[]{1,2,3}; : R) v$ G1 E1 w. f* h3 P5 x5 G
System.out.println(anar[1]); . _$ R/ s0 n9 \* d" G4 G8 G8 }. @
}
0 M2 {4 e/ l% u}
* h4 Y5 l: ^( r G) fA. 1
% A9 i# R) W& qB. 有错误,数组anar在初始化以前不能正常输出。
f" D' ~' A' M! gC. 2 $ Z' y N8 ]& S
D. 有错误,数组的大小没有定义。
8 u& a' \+ f$ k9 l6 U
! u: h3 Y' u$ t% W53. 在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同,这种面向对象程序特性称为( C ) h/ p$ l9 X1 _5 N. k4 p; \. k% {0 ~
A. 隐藏
* W; U, g1 E) w3 P( aB. 覆盖& }6 L" [4 r% m" d) `1 d
C. 重载( K4 p5 K; p) T7 C: w7 v2 J
D. Java不支持此特性
2 }8 O$ }* z$ _. v# C: @$ H- F3 s
: i8 S+ G7 V m0 @) ?! E54. 下列关于构造方法的说法正确的是( A )# z2 n6 z9 c% F5 ?4 p, D5 @' y
A. 因为构造方法名与类名必须相同,所以构造方法的首字母必须大写。 / ?- P! s) I1 R5 y3 X3 |
B. 构造方法是给对象赋初值,所以没有返回值,要用void来声明。
4 g; f' n- \- n( sC. 构造方法不能被程序调用,也不可以重载。 2 Q& e; T- y& L9 u W# Z
D. 一个类只允许有一个构造方法。 " t+ |$ H0 @* ?$ G6 a
1 ^2 {7 {, Z \; P" i
55. 当方法遇到异常又不知如何处理时,下列哪种做法是正确的?( C )$ [- {+ n% z- B: P
A. 捕获异常 8 ^( g) h1 _( i
B. 抛出异常
5 ~9 ~# _1 c( E, E8 P% ZC. 声明异常+ v6 `8 e3 J# b* D; z" ^
D. 嵌套异常/ A3 n( B- o% R) D
; D. v: b7 M' o) k b" ?7 h
56. 下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?( B )
: L( }2 ^) e4 Z8 v( R+ x6 XA. private 4 l, n. i. L4 P6 u: C% N
B. 无修饰符0 p+ x6 \8 J( w7 z* q
C. public
) O+ R9 a {0 f7 O. E* l* }# vD. protected
* a8 G! [6 @+ g7 ]- J/ i4 V5 l9 n% T! o3 p2 ~
57. Java application中的主类需包含main方法,以下哪项是main方法的正确形参?( B )
; o* E9 A1 y. oA. String args ' h9 [4 L; a% E* D
B. String ar[]
+ {2 i# K C: S- VC. Char arg
% \6 y/ m6 d' E* i ]$ }D. StringBuffer args[] 0 t" d: E! o. U' ?, c0 y: B3 @ s
, J. U! c. {4 I3 G. c7 `% s7 `58. 给出下面代码,关于该程序以下哪个说法是正确的?( C )
5 ]- i4 A( Q3 Kpublic class Person{ ( J( D1 X! P9 S, ?3 ]5 f$ Y
static int arr[] = new int[5];
8 {$ x6 f6 a; K; r2 J. `9 h* epublic static void main(String a[]) $ l$ A+ W# a- o I" H5 Q
{ 9 g# B. b" [1 L+ z/ ^, ]% V
System.out.println(arr[0]);; @) o3 B4 B# E' K$ X, Z$ ^" a
}
0 M$ v0 p- _9 @+ x( u1 B}
J6 G. T- R9 [2 g! h* J3 DA. 编译时将产生错误 5 I( P1 A0 f- Z; P9 b2 g
B. 编译时正确,运行时将产生错误
/ l8 n" T" G( Q7 lC. 输出零) K- p/ w5 ~9 @" x
D. 输出空: X5 ^4 Z5 a) V+ f# J6 I4 v1 G8 h
, \! o; f R$ t( H59. 有以下方法的定义,请选择该方法的返回类型( D ): D5 o! z! ?) u
ReturnType method(byte x, double y) j7 g* ~1 A) d/ J5 S0 o/ \
{
5 `- Q3 @. s/ |% b. I7 Ureturn (short)x/y*2;3 c3 ]/ a6 P( ~. i
}
& J8 G% E: a: U5 s7 |# u+ [A. byte ; U: W; K. O) ?& o+ e
B. short 1 s W3 }& u' ^9 c8 K
C. int
% t3 d) I" D6 f/ J( K9 MD. double
1 c+ S5 G/ q+ v$ F# `0 y
+ q' u- h0 p- S/ j60. 要使类中的某个成员变量只能被同一个包中的类访问到,该变量可用什么修饰符修饰?( D ): t3 n, C& ~3 S0 N
A. protected
' q" Q+ L7 g1 ]/ f" |B. public
8 q1 S) j+ S" K) ^" r- X* ~C. private , b& S; Z$ ]: v8 V. z
D. 应不加修饰符1 u$ ]+ {6 K, U$ k5 G8 C
3 V+ M! M# d- H' t; _61. 有程序如下,关于程序的描述哪个是正确的?( C )
- o; f `0 x* T/ b4 kpublic class Person{ # Y+ j) O3 C! c( c! _$ P2 }1 G
static int a[] = new int[10];9 {! c9 ?7 Q4 r
public static void main(String a[])
. h4 E& i! r, Q, U$ n { System.out.println(arr[1]); } & j9 k: V) D. ^2 f8 G
}
; e" ]5 ]- U2 {% WA. 编译将产生错误 7 [. @ D3 J% t
B. 编译时正确,但运行时将产生错误1 a' m8 b3 W e1 C+ z6 h% }
C. 正确,输出0
, ~' `1 w& B1 f* V7 HD. 正确,输出 null: E; a6 _7 Q7 f7 |
4 a/ A' s# z& L' v+ V
62. 有语句String s=”hello world”; ,以下操作哪个是不合法的?( B ), S/ N n% Y- m
A. int i=s.length(); . \5 [, o' E* ^1 c2 T
B. s>>>=3;
6 W: A* C4 S; a3 V3 WC. String ts=s.trim();
% H* |: g8 U9 q, ]0 u+ Y0 FD. String t=s+”!”;
8 d, O3 s( u1 p1 J ]1 D3 U7 l6 Z" m
63. A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:
4 T5 C; K% [+ K T2 L1) A a0=new A();
% F; V" G- p. G/ r2) A a1 =new B();
: S' Y5 o: c. c, e2 P, G- `# n3) A a2=new C(); 7 x7 k3 ~( a: n& W2 V$ d/ t, O
以下哪个说法是正确的?( D )
' `, P: K& s9 y4 T, F9 yA. 只有第1行能通过编译
( }7 `" f* M+ F7 [: e5 {B. 第1、2行能通过编译,但第3行编译出错
{6 X( d1 S$ m' j4 o" W. m# @C. 第1、2、3行能通过编译,但第2、3行运行时出错
, i9 D% c1 h# C2 z, i0 CD. 第1行、第2行和第3行的声明都是正确的
9 d% B) C7 q5 P, ]( j2 V; u! t
6 p2 g5 o- B _& y6 i5 s64. 设有下面两个类的定义: n( X8 m1 O6 _
class Person { class Student extends Person {
8 a2 t4 s, F/ J" z$ y3 e long id; // 身份证号 int score; // 入学总分
* T1 y( \" n4 r' I String name; // 姓名 int getScore(){$ U/ _% f( u- M, l4 a4 N2 |2 B
} return score;0 d @" L) K, K0 U6 d5 R
}
& `( z& ~- ]2 y* `/ G }
* \+ z; {4 v) t3 j" \7 i则类Person和类Student的关系是( B )
# a; W' V- Z6 C7 t4 YA. 包含关系
6 W I0 @+ a, K2 MB. 继承关系9 P( s6 V- s" n3 J% S1 k
C. 关联关系$ n- l' W5 @0 m
D. 上述类定义有语法错误
8 T7 q+ k5 R- `/ q2 L' f/ r- ^0 C) L0 w$ q
65. Plant类派生出子类Flower ,Flower类派生出子类Rose,以下声明错误的是( A ) h! W) x/ }% m* V8 ?# T6 {' Z5 @$ g5 t
A. Plant p=new Plant (); 5 h' p- x( r& e m1 {* ?
B. Plant a1 =new Flower();
7 k; X# w& ]4 S3 q( XC. Flower f=new Rose ();
# w2 ~" X$ P, t0 X6 A& _D. Rose r=new Plant ();
6 N) |) {8 J. B( ]; U! Q! ~; p2 Y6 A2 W4 v/ \5 H' t5 s! ^- |" }: |
66. 下面( A )不是Java中的容器。
8 U' z7 ]) L. B. ]- B: x' h$ j- FA. Canvas 5 I9 \$ u4 k+ Q+ L" C1 y
B. ScrollPane ! _( M% n4 M" M6 `- l
C. Applet
8 J# }9 ~: z* m& u# LD. Dialog
, D1 A0 y2 B) |
$ p2 ?, s! |( [! x& Q: M1 s2 z0 W0 \67. 下列不属于条件语句关键字的是( D )
. X+ Z' c% \; h7 t8 g$ K4 jA. if
) l( f3 g/ n7 d% [3 x% k* f+ r% v7 VB. else
/ e# X- f5 ~* P/ M( D! wC. switch
4 o/ N. C3 A8 D+ kD. while
2 o0 g( ~2 d( j2 v% i# b2 o. N. r r, ]3 E! T& {2 J
68. 关于while和do-while循环,下列说法正确的是( D ) , q, y) v# f/ Y9 {0 R9 |0 }
A. 两种循环除了格式不通外,功能完全相同
$ E$ ?3 F0 I9 P: d7 h- A5 \B. 与do-while语句不通的是,while语句的循环至少执行一次2 p; |& h8 k# X- o& }9 o
C. do-while语句首先计算终止条件,当条件满足时,才去执行循环体中的语句
$ j9 w! L6 J! cD. 以上都不对5 w/ a# G& F- W0 M- }) G
0 [" f8 N- N) M/ a" ?* x
69. 在java语句中,运算符 || 实现( A ) i$ ]! y/ W, k) I! ^
A. 逻辑或 ! @& `4 B4 w1 R& q6 i
B. 逻辑与
( j. A# u& b; j- }C. 逻辑非( A6 A9 _7 b+ x; p+ H& d! X
D. 逻辑相等- e) a! g* n: }
4 n% e \3 P$ _70. 以下字符常量中不合法的是( C )。
: E' y2 I# O8 uA. '@' 9 N9 Z9 ?3 F" z" H0 D4 `. }
B. '&' # h: i6 [' d9 P
C. "k"
. q# `0 p' D' m8 ^; k! p. k! ~D. '整'7 \5 W J+ f& K s! i
+ B: g9 h9 [1 V) o1 ]" r
(二)、判断部分
; s$ t" E. r; e2 Q1 O1. Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。( √ ), \0 m* H/ z7 r
2. Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。( × ): A; i0 S; y: w7 \% F4 f$ s
3. 在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。( √ )
# }* T4 h4 ?) g% ] P4 t. x }' ~+ z4. Java的字符类型采用的是Unicode编码,但所占字节由具体软硬件环境决定。( × )9 {/ q) ?: ?- u) g; t& I
5. 如果p是父类Parent的对象,而c是子类Child的对象,则语句p=c是正确的。( √ )9 y. A( i$ T' b. I
6. 注释的作用是使程序在执行时在屏幕上显示//之后的内容。( × )
/ D+ A0 S1 {: J4 J3 y7. 无论Java源程序包含几个类的定义,若该源程序文件以B.java命名,编译后生成的都只有一个名为B.class的字节码文件。( × )
$ |9 n" y! P' i5 L9 L8. 在Java的方法中定义一个常量要用const关键字。( × )
: c1 M& n8 F4 M5 e8 b0 X% G! w' V- L9. 一个线程对象的具体操作是由run()方法的内容确定的,但是Thread类的run()方法是空的,其中没有内容;所以用户程序要么派生一个Thread的子类并在子类里重新定义run()方法,要么使一个类实现Runnable接口并书写其中run()方法的方法体。( √ )# ?( W K' R2 d* p
10. 若Java源程序中包含了几个类的定义,则编译后就生成对应的几个字节码文件。( √ )( y1 h; Z5 V C: m! q
11. 构造函数用于创建类的实例对象,构造函数名应与类名相同,在类中必须定义构造函数,且只能定义一个构造函数。( × )
! @/ y. n- d# C! S! C5 R/ M1 N12. Java语言中的数组元素只能是基本数据类型而不能为对象类型。(× )
# h; h6 _/ P0 v13. 构造方法是一种特殊的方法,名字与类名一致,但返回类型都为void型。( × )
/ e S# L. E9 H. {* e14. 在不同的软硬件平台上,Java的各种数据类型所占用的内存长度不同,因此程序的可移植性不强。( × )
9 r$ W2 W" Q6 x ]8 C: W15. Java源程序文件应以.java为后缀名保存,文件内包含几个类的定义就编译生成几个对应的字节码文件。( √ )4 e. \; X; w" R' F$ i9 Z: D! I
16. Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。( × )' B. @# [6 q; [5 r$ b& X' z- z
17. 构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。(× )1 x) k1 O- Q1 L1 Q8 F
18. 在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。( × )
. ~0 H" H: M+ V- a2 U' C19. Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。( √ )
' ^% a" q4 h9 y2 w g& X) E20. 由继承性可知,程序中子类拥有的成员数目一定大于等于父类拥有的成员数目。( × )
1 A- ?3 w1 n) d1 r) X- C21. Java的各种数据类型占用的内存长度固定,与具体软硬件环境无关。( √ )
! Z w. q9 J+ _7 P& L" c W! \22. 即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参函数,函数体为空。( √ )
8 r7 Q. j, i! h0 _8 X6 h( i23. 在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。( × )0 a4 ?) ?" U# }9 T) ^
24. Java的各种数据类型所占用的内存长度与具体软硬件环境有关。( × )
5 Y& v6 q' z. g6 V2 m+ b25. 在Java中%是取余运算符,要求两端操作数为整型。( × )
# C+ }7 v+ c5 D2 u" K& ^+ _1 m% J26. Java的类不允许多重继承,但接口支持多重继承。( √ ) s4 c; i0 ], v# n# d
27. Java有两类程序:Java Application和Java Applet,其中Java Applet程序由嵌入到浏览器中的解释器解释运行。( √ )
5 \- R, X4 `2 _& U, o; \6 W28. 无论Java源程序包含几个类的定义,若该源程序文件以A.java命名,编译后生成的都只有一个名为A的字节码文件。( × )/ W5 ?0 Y' o4 i5 A; q3 `
29. Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出System.err。( √ ): c. u8 R: L7 l7 D6 V
30. java异常处理中可以使用多个catch子句,此时应将高级别异常类的catch子句放在前面。( × )
7 i# k+ s1 d9 l& B7 t4 f! e, c* U
+ M- D7 r' A+ {& D二、主观部分:
9 V: u) K! q- w(一)、填空题/ X: u6 J/ }$ `
1、支持 javadoc 命令的注释是 /**...*/ 。( P) B/ D+ |% L" w
2、Java中用于两个数相等比较的运算符是:(= =)。. l5 M S- `8 p) O
3、创建类的对象时,使用运算符_____new______给对象分配内存空间。
+ U4 V) X( }9 O; E4、定义类的构造方法不能有返回值类型,其名称与__类___名相同。! n0 H& B) }; [4 N! Q5 B$ P0 Q
5、 Java语言中关键字__double___表示双精度类型。+ \* f* V0 R) m. w! ]6 p! |
6、异常处理是由try、 catch 和finally块三个关键所组成的程序块。; L6 Q& b( v- Q c7 z1 S' m
7、接口中的成员只有静态常量和___抽象方法___。
; `8 M& W* p6 x" ]8、在子类中使用关键字___ super ____做前缀可调用被子类覆盖的父类中的方法。
9 h4 O) B: H9 Y3 y- @) _9、Java程序中的多行注释符是 /* */ 。
8 \& f% x \8 p10、Java中用于用于不相等比较的运算符是 <> 。
# x- F- f7 f/ ` W5 F2 [11、在Java中定义一个字符串类型的变量str的语句是: String str; 。
# G5 m1 K, A/ \* `& o) [, h12、导入mypackage包中的所类的命令是 import mypackage.*; 。
8 o+ E( [9 Y; j \13、当声明一个数组int arr[] = new int[5]; 时,数组的大小为 5 ,数组元素下标的使用范围是 0到4 。
/ ]; }& M- b X( T: ?0 [( p14、假设x=13,y=4,则表达式x%y != 0的值是 true 。
- k) n! I7 c6 g$ J2 E15、异常处理是由 try 、 catch 和 finally 块三个关键所组成的程序块。) S, \) z; B# u* V( n
16、Java程序中的单行注释符是 // 。
. T; L# b. h" a; F' h, p17、若有定义:float b={1.1f, 3.5f, 6.8f};,则b.length()的值是___3____。 i9 N, T; R% ?& t6 }$ t$ {+ \
18、若有类定义:' g' y; B6 I3 i$ u* ]
class B extends A{
! L+ ` D: k; }5 C j3 \ …% F- F) H* `! H
} . ?8 `) n& R2 i, K
则类B是类A的___子类___。
2 E) E8 i2 }$ [19、关键字___ import ___用于导入包中的类到程序中,供程序中使用。& L. E; T9 G$ u- ?5 L5 i
20、Java语言中, 通常把可能发生异常的方法调用语句放到try块中,并用紧跟其后的__ catch ___块来捕获和处理异常。0 ^' F4 o; T w% ^
21、构造方法是一种特殊的成员方法,构造方法名与 类名 相同。, T6 b4 g: ~0 n, t( W9 h! X/ }* }
22、Java语言只允许单继承,指每个类只能有一个 父类 。
# [2 e, O5 U! {3 K: q# ^7 S# P9 x23、Java源程序的扩展名是 .java 。
: [! k5 V/ F$ z) h: y$ U
0 C- P. f, b+ q( z(二)、简答
3 |* `7 E9 i5 G6 \# I1、基本类型变量与引用型变量有何区别?(p31)
, [* I8 h8 G) g, F3 P2、什么静态变量?什么是静态方法?一般通过什么方式访问静态变量和静态方法?(p119,p123)1 l% m( c/ e2 k; y
3、什么是抽象类?什么是抽象方法?它们在面向对象程序设计中的作用是什么?(p126-128)" d7 U+ |6 M* p5 I2 a; z7 t3 [
4、如何引用包中的某个类?如何引用整个包?请各举一个例子说明。(p133-134); I! s! j0 Q8 P) E( C
5、什么是字节流?什么是字符流?(p209)
- S3 J4 P: U% t4 D6、简述方法参数传递的两种情况。(p83)
4 [1 q8 B7 D5 \2 I/ i7 j7 n7、什么是异常?Java语言为什么要引入异常处理机制?(p184). f u! O8 `! c6 z" m) ]7 }* q
8、什么是方法重载,方法重载有什么好处。(p86)% v* U2 j2 ?3 m. ^" ]
9、什么是类的继承?继承机制的好处是什么?(p99-100)& }% {# ]$ H7 j. A z
10、什么是封装?在面向对象程序设计中如何实现封装?(p69)( G) R3 S; |- u4 {' d8 B
11、什么是接口?为什么要定义接口?接口与类有何异同?(p143,p146)& ^1 F8 E3 A& n! H
12、用户为什么要定义异常?用户程序如何定义异常?(p187)& ^- [1 R3 p6 ^7 Z8 W0 _$ W
13、Java的基本数据类型有几种?Java字符采用何种编码方案?(p20-21): Z# Q9 e) e* t" j8 c
14、为什么catch块要紧跟在try块后面?每个catch块可以处理几种异常?如果try块中可能产生多种异常,应如何分别处理不同的异常?(p195)
& V% Y* t8 T0 T15、输入流和输出流在Java程序的I/O操作中各承担什么功能?(p206)( \! K3 v% U$ P
3 |/ P7 \- o* @1 @) i(三)、编程( {, Q7 E0 f' f( W% y! f
1、程序接收用户输入的10个整数,比较并输出其中的最大值和最小值。
8 m, S/ i$ p- t1 l2、程序接收用户输入的一个1~12之间的表示月份的整数(如果输入的数据不满足这个条件则要求用户重新输入),利用switch语句输出对应月份的天数(假定2月固定为28天)。
" t4 k+ C% h! g- Y3、定义一个学生类Student,属性包括学号(sno)、姓名(sname)、性别(sex)、年龄(age);方法除要定义一个构造方法外,还要定义“获取学号(getSno)”、“获得姓名(getName)”、“获得性别(getSex)”、“获得年龄(getAge)”、和“修改年龄(setAge)”方法。然后编写一个测试程序,访问Student类的属性和方法。
) w! D N% _/ j* T* r3 T4、为Student类定义个方法public String toString(),把学生类对象的所有域信息组合成一个字符串返回。编写一个测试程序验证该方法。4 O6 S' M! v6 } C' z& z8 ]' K
5、为Student类编写3个不同参数的构造方法,并进行测试。5 s4 m; h+ O" H0 l4 _% `, S
6、定义一个Shape接口,其中包括两个抽象方法setColor(String clr)和getColor(),以及一个显示图形面积的抽象方法showArea();然后定义2个具体的图形类:Circle类、Square类,并为这些类定义各自的属性、构造函数。它们都实现Shape接口。并实现接口的抽象方法。最后编写测试程序进行测试。$ X: H# h/ o! z; p
7、定义一个Shape类,其中包括一个color属性及设置和获得color属性的两个方法setColor()和getColor(),然后定义Shape类的2个子类,及Circle类、Square类,并为这些类定义各自的属性、构造函数集计算面积的方法。编写测试程序,注意测试有关继承的内容。
# l2 _0 b) c, B, |& j8、定义一个Student类,除基本内容外,还要顶一个静态变量s_count,作为创建对象的计数器,再定义一个静态方法getCount(),该方法返回静态变量的值。编写测试程序,创建若干个Student类的对象,然后通过访问Student类的静态变量s_count和静态方法getCount(),获取创建对象的数目。
: d2 Z) X4 e' T( A: E! @( p9、求 2/1+3/2+5/3+8/5+13/8.....前20项之和。$ h ]6 ~ J& ^9 A$ E# H
10、输出所有的水仙花数,把谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身, 例如: 153 = 1*1*1 + 3*3*3 + 5*5*54 g4 }! f- W- w0 I6 L
11、按以下要求编写程序
6 q- p- H8 }4 c( s(1) 编写Computer接口,接口中声明poweron() 方法
/ Z n1 c0 h. M$ [(2) 定义PC类和Laptop类实现Computer接口, c5 b2 h' V0 e: z
(3) 编写PC类和Laptop类的测试程序,并调用其中的poweron()方法+ o, { u$ N7 K. G& j
12、求一个3*3矩阵对角线元素之和。& j- _& h' X6 `2 _( ~" p/ Y* g
13、产生100个0-999之间的随机整数,然后判断这100个随机整数哪些是素数,哪些不是?1 q: ^% q' V- f4 W! c3 _$ B. a7 |
14、按以下要求编写程序
$ h9 O! o+ N$ w( Q$ X) R4 D4 ~0 w(1) 编写Animal接口,接口中声明run() 方法
* ?* f0 j1 J" V7 J9 e. k; p(2) 定义Bird类和Fish类实现Animal接口& L7 \2 n/ c4 A7 J3 ^7 d$ d' z
(3) 编写Bird类和Fish类的测试程序,并调用其中的run()方法
% W/ B- g, |0 G8 z7 R# k15、从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这 10 个整数。
* ^) {, S$ Z& S16、对数组 a 的数据进行升序排序,然后输出排序后的结果。
8 i: x- M: m5 W9 K) J17、按以下要求编写程序
; x% j( c3 H" d4 \. @/ z(1) 创建一个Rectangle类,添加width和height两个成员变量, y& \; a( u8 Z7 y
(2) 在Rectangle中添加两种方法分别计算矩形的周长和面积
* f; o. @3 D* k% I5 @8 n8 o(3) 编程利用Rectangle输出一个矩形的周长和面积
. y8 I5 l0 a, T* I
, X- p2 i5 m6 L/ Y |
|