|
东 北 大 学 继 续 教 育 学 院
0 L$ K5 d' |' \+ c
6 W: d- j x, E$ u2 e Java语言程序设计 I 试 卷(作业考核 线上) A 卷
: R K/ s8 w1 v5 |9 Y' q# V学习中心:
5 A5 v# a& \ Y4 D# a o2 l( l院校学号: 姓 名: ! T/ k; I" D' m- H2 H5 G* ]
9 |8 a5 m' G# a2 _(共 9 页)
9 S9 b; ?- M3 t$ p% `总分 题号 一 二 三 四 五 六 七 八 九 十- c8 ?7 r0 X; i, {
得分
# J1 v1 q$ ~; O% b
! C* W; {5 F4 v" U' N& ~$ H5 n一、选择题(请将所有正确资料写到答题卡中,每小题3分,共60分)( H0 `, z% j7 b' m }* |
答
2 O8 g9 Y' z) S题
$ t2 d: i. O% c) Y; \4 ]# u' `卡 题号 1 2 3 4 5 6 7 8 9 10) E1 H" D" R& U. I
资料 ! G; I* G5 K: z; y
题号 11 12 13 14 15 16 17 18 19 20
' c8 F2 V0 O( r, M 资料
9 l8 K" v | _! Z
& t( Z/ O0 ?! d2 w& A1 . 定义类头时,不可能用到的关键字是( )。
5 |; h: U: H2 t6 L$ V1 JA. private
( o: c$ \ k- b- j# n6 _0 xB. class
3 q' `" I3 c' K3 ?1 {C. extends. A5 b2 R L9 ^; d/ e
D. implements
: }* I2 f/ Y( {+ f; V7 `& a4 r 2 . 使用那个关键字,使得只有在定义该类的包中的其他类才能访问该类?/ ^4 ?$ O( o- n# u$ S3 k; o
A. 不使用关键字
. v F( {( E; [ l8 tB. private, I* A9 b0 ~5 b
C. final
! @; B2 u& \' F- N! F) C+ _D. protected
9 i0 w' M F$ e0 y0 [" B- ~/ vE. public7 g7 W) V7 X1 |$ O& t
3 . 对于构造函数,下列叙述正确的是( )。
) j; c. b7 h5 p! n6 o% l; VA. 构造函数是类的一种特殊函数,它的方法名必须与类名相同。9 i& o4 N; |2 |% I7 X. g _
B. 构造函数的返回类型只能是void型。
4 [ a! T3 S0 J4 _C. 构造函数的主要作用是完成对类的对象的初始化工作。
5 E, r; p( F. X) D( sD. 在创建新对象时,系统会自动调用构造函数。9 N7 q6 T% o9 ?3 i3 n
4 . 下列InputStream类中哪个方法可以用于关闭流?
4 S0 ]. B5 l* h1 _, H5 nA. skip()" C5 c8 q9 e7 K n/ b6 |& @
B. close()) [( D" y. E, D( d
C. mark()
/ U- K! k$ h( |6 ^3 s5 R/ `6 qD. reset()% |! E2 P5 H3 R5 x
5 . 当Frame改变大小时,放在其中的按钮大小不变,则使用如下哪个layout?0 o7 X4 V) B. ^- y! M: B' p5 E
A. FlowLayout' t: Y H/ y4 X8 l- k* R' n4 J
B. CardLayout' {6 q1 ], a3 h. A w. P
C. BorderLayout 的North和South) ^$ y6 x2 G, w. L% L% X! v2 K
D. BorderLayout 的East 和West
3 B$ j7 I! ?3 |E. GridLayout
" D" ~& y, O+ ^& M$ O7 u 6 . 下列关于内部类的说法不正确的是
' ^8 F; |" _" F5 }A. 内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用
8 |. _9 ?4 o9 T; b0 hB. 内部类可以使用它所在类的静态成员变量和实例成员变量
C1 R# U% q, @4 c. b1 u. }9 OC. 内部类不可以用abstract修饰符定义为抽象类
) V4 K% p9 u5 \% I: KD. 内部类可作为其他类的成员,而且可访问它所在类的成员
, y, b- h" H( X" r5 L8 E 7 . 下列关于Java Application与Applet的说法中,正确的是$ A/ u& s9 K% i r
A. 都包含main()方法% w- H0 F, Z8 u H. L1 p) s- E
B. 都通过“appletviewer”命令执行
2 o; }# @/ O! P i' zC. 都通过“javac”命令编译: j0 ]- G" k3 C% X
D. 都嵌入在HTML文件中执行) k# z G. h: Y3 @2 Z4 _6 T
8 . 选择所有有效的构造函数。
: ~6 K) C; ^; E2 j% [: V3 F) ]class Happy {
4 X2 v4 e# q" w7 r6 ?+ D J/ f}
. U: g) ]6 w- U4 P: _% \- [+ y* q2 U}3 W! \) N) @( r* T
A. public void Happy(){}
: W) d( j( P! CB. public Happy(int c){}* n% V' M& b/ M0 ?1 K, C
C. protected Happy(){}
8 Y1 T& Z, L& tD. public int Happy(){}8 M' Y |+ |+ m" o4 N
E. void Happy(){}
' k6 h9 o8 ?) i* R: s7 k4 H 9 . 下面的哪些程序段可以正确地获得从命令行传递的参数的个数?
# n8 j% g% j1 f3 B9 S- GA. int count = args.length;
& p B$ u4 {8 t9 [! D2 b6 @# ^B. int count = args.length-1;
# Y9 A2 q% T/ P& W$ n& @/ FC. int count=0; while(args[count]!=null) 7 T2 l- J r& c
count++;* K& X* b- x% T4 g# g
D. int count=0;while $ I* k( s( S. B ]% c
(!(args[count].equals(“”))) count++;
% A% e9 K& F9 C) _$ m, j 10 . 设有下面两个类的定义:
8 A+ X! N3 Z- M2 J' L' aclass Person {
9 ?& m# A# \! s: y8 w1 [0 r: I long id; // 身份证号" L4 a4 V' X. A" z; B
String name; // 姓名 B1 h9 W! g' }& `
}
& d p0 l2 X+ M+ F class Student extends Person {
6 O3 y7 w! D7 z( x) w int score; // 入学总分
' F, f& i0 `% H. A" i7 W& M5 |, m int getScore(){
w; U- C( e, ~
, \- Y$ e$ A+ i" w6 I6 p( j4 `A. 包含关系
- m+ M! u5 W' n ^9 ]6 bB. 继承关系) s; y7 f& _9 T5 X2 G. V& }$ D
C. 关联关系2 ?$ }. ?# i$ M
D. 无关系,上述类定义有语法错误) p* J, T2 i) i+ b7 O ~
11 . 下面的语句的作用是:( )。4 }+ C( A: |3 O9 u- X: J3 ~3 ]
Vector MyVector = new Vector(100,50);" u. z& Q) Q' r, P
A. 创建一个数组类对象MyVector,有100个元素的空间,每个元素的初值为50。8 Z& [; P% M1 y
B. 创建一个向量类对象MyVector,有100个元素的空间,每个元素的初值为50。
- ]6 F6 Y/ T% A) f+ J; BC. 创建一个数组类对象MyVector,有100个元素的空间,若空间使用完时,以50个元素空间单位递增。7 M' d4 _/ g9 ~
D. 创建一个向量类对象MyVector,有100个元素的空间,若空间使用完时,以50个元素空间单位递增。' n7 N2 O4 U/ e* V4 q" R
12 . 在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上( )语句。
" c# j$ S3 Z( j! Q: G. S z1 EA. import java.awt.* ;; R% g; D/ o3 c3 I& P; `6 K9 ]
B. import java.applet.Applet ;
- [3 I& ?7 _9 m1 e }C. import java.io.* ;* |1 T, y" O1 s& G, `1 Z" B' b
D. import java.awt.Graphics ;
' r2 Q3 X0 \, b- I/ A& S1 [ 13 . 将字符变量c设置为一个空格字符的两种方法是:
& g, ]1 w- j V; x) R! qA. c=" " 和 c=' '
7 q) ~) p% \ D& K7 L! ]B. c=" " 和 c="\u0000"
) r& g% }+ o6 W; S" K! rC. c=' ' 和 c='\u0020'
5 m: r0 H+ p: M. A1 \D. c=" " 和 c='\u0020'4 s0 W O3 S1 Y! z: i
14 . 针对下面的程序,那些表达式的值是true?5 ~. f Y0 H5 z) r' F9 Y# i3 Z
Class Aclass{
4 u! X. q6 f2 H4 G private long val; 3 z3 b/ m9 A+ F/ C" S
public Aclass(long v){val=v;}
6 ]: v) p4 t( S9 R) z public static void main(String args[]){
* }2 _7 N( _. T, n Aclass x=new Aclass(10L); - a y5 `& H% l* m7 l' L
Aclass y=new Aclass(10L); ; o0 W+ G6 x" x( h) G8 @
Aclass z=y;
& z G$ Q. M' O" A long a=10L; : D9 S6 u# K5 V( T9 N3 B c
int b=10; " ^6 \ |1 r& W* \+ g( a+ }, |
} : \3 e( {2 A. z+ l# n
2 n: o$ P* b2 `2 f) E
A. a==b;
. B& g1 I4 |2 u4 Y. i; {* n, D9 JB. a==x;8 H8 E6 _: }) e% f# x% d
C. y==z;
( V B# T, `) Q6 R4 ~" eD. x==y;
2 K9 ]5 _6 i& F F, jE. a==10.0;/ ?" b$ R. W4 r- n8 ?. D
15 . 如果有以下代码,哪几个数字能产生输出 "Test2" 的结果?
+ o0 x9 U8 }# @- C6 A3 y! dSwitch(x){3 }. I, Z/ F* j5 `+ W$ j7 f W
case 1: System.out.println("Test1");
6 Z" d2 s. z0 ~3 i/ {* ucase 2:3 X8 L: b7 q! h* l0 g# Y& n2 J
case 3: System.out.println("Test2");
6 J4 T8 p" |( N; p+ D: j2 ?+ a# Kbreak;}
3 a: w& P% m1 p* WSystem.out.println("Test3");
5 r: O3 C6 A n6 Y- U}8 v5 r, n) g3 a
A. 0. ?2 N+ \0 _# u
B. 1/ W7 t4 g2 Y+ \; I2 w
C. 2
! a% ]0 T3 n0 U% wD. 3
7 J7 k I6 M0 W; k1 `2 n+ l 16 . 已知如下代码:$ P. M& ?: p1 w- j( F
public class Test
1 w1 A0 T4 M3 \& B{
B& t* }! }& a+ Dlong a[] = new long[10];! h0 p% |9 ?& T+ l) V- t w4 z N
public static void main ( String arg[] ) {
: g4 e- O5 R+ ?* F) R3 G; {" eSystem.out.println ( a[6] );
! Q' d/ y7 j' |9 ]4 {. ]}
: ?3 G& J+ Z4 Q0 v}
4 t$ {2 d( z( i9 ~2 g K请问哪个语句是正确的?: N2 r% M( ?+ c/ P. V1 Y
A. 输出结果是 null., z) m2 D2 e" w, f+ ~; p+ I
B. 输出结果是0( N- @( F: \0 W9 W9 g. q7 |2 u
C. 编译时出错5 G. x9 ]" a; S1 @8 i, z }6 A, g1 P
D. 运行时出错
4 G4 A' V; D# o p3 D' Y 17 . 下面哪些是合法的标识符。# d% ~6 R& P( e; r5 e" H
A. $persons4 ? f6 v) u* }" B& k
B. TwoUsers1 x. ?( r$ V* [, _2 D" J
C. *point) {2 ^9 ^" g0 r5 A* p6 @
D. this
, L! M* |4 F' z7 m* A2 gE. _endline
' O8 W& _5 p5 J' @ 18 . 如果类中的成员变量可以被同一包访问,则使用如下哪个约束符?: \& O* m q2 I% R5 T7 y! e D! w
A. private
6 G, M0 _+ c* S. G, c2 ]9 l% PB. public2 V/ W4 @9 o" H2 p3 b! t2 h
C. protected
, h, x. R% @+ {' k$ x; C: q/ @D. 不使用约束符5 b2 B& s7 }" f
E. final
( I9 c' a( b$ {! O; R7 M 19 . 下面哪个事件监听器在Java中有事件适配器?' q L2 {6 u! v4 }3 G. Q
A. MouseListener
/ X. m3 X n) V/ q3 iB. KeyListener
# F5 A" \) S, v0 g2 DC. ActionListener
' t7 z0 V; y) J5 N& ^D. ItemListener
2 z4 o/ U6 U5 B) v4 z1 d) |E. WindowListener; C* W* g- m: Y$ h
20 . 下面哪些不是java的原始数据类型。* C+ _5 O3 ?* [3 S! m2 |8 c
A. short) D1 i2 W9 P* Z/ ?1 v% g9 @ J
B. Boolean
) J) c+ Z% L- o$ P* PC. unit
# G; J- a3 `3 Y% r; l0 d) t, \D. float
- P/ m% I# j; D9 `二、读程序(每小题5分,共20分)
9 n' d$ q. A* ^) r1. 写出以下程序的运行结果。
. I3 U* j& h% Bclass StringTest1+ F7 d& A, r0 l6 |
{7 Q0 V7 h4 _) ]
public static void main(String[] args)
# h5 e" t; e1 B& J8 u+ w& a {9 Z! Z$ h2 h8 k) W* M4 ?, D! \
String s1=new String("hello");
' _3 ^" x+ f8 t5 [. Q, M% Q6 Z- y4 ` String s2=new String("hello");
& w& E" t1 y; t( Q* I( v: p! j if(s1==s2){5 v5 A* F, z( K7 C2 k7 S+ H: n
System.out.println("s1==s2");* p7 N( ?: ~) {* E8 b4 e
}else{
$ L, L t2 A- z$ v System.out.println("s1!=s2");}' e9 p6 c6 S/ F0 F8 R' y& e
}5 ?/ ?$ {& I, B5 l
}
* N4 W$ v+ H; M4 u5 | f$ b, K4 }( L& s8 u4 C
) v$ `& f) F, V, @4 K0 w1 g# d, i6 n
2. 设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 110 };
5 }; o6 g5 L/ H1 u- W则执行以下几个语句后的输出结果是 。: P) y% E# E% l+ i/ i
int s = 0 ;6 S. ^8 A. j p6 `6 }4 I
for ( int i = 0 ; i < MyIntArray.length ; i + + ) f2 e1 O2 S( h
s += MyIntArray[i] ;
- l3 p- q4 q- d$ ^System.out.println( s );
R: O3 H* N$ V% P- f$ ?% g$ g. Q8 `2 ?9 q& V% Q
; a) R+ \8 B e) Z2 y
1 W c5 b* y& r# I
3. 写出下列程序完成的功能
! o& y6 H8 P2 |( ~+ a) Kimport java.awt.*;
, j6 A* n" Q5 J W3 [import java.applet.Applet;0 g( @2 O4 C' D- E2 ]2 J" f
public class DrawMyImage extends Applet
0 z5 J6 c: h/ @8 w2 M, G4 k# n{& p% Z9 y* {" u1 p2 Q2 ?
Image myImage; // 定义一个图像类Image的对象myImage
V2 U+ e* A* h* s public void init( )
; l: {' i& }% a+ {8 | {
7 [( a' M/ A% h myImage = getImage(getDocumentBase( ),"pica.jpg");& ]' B* G+ [: q8 s+ [
}! o, p4 V- T* j0 \$ H; P; Y
public void paint(Graphics g)) Z/ g8 q" M+ a+ {' H+ E
{
( y* X& \9 m/ ?8 a4 B& \3 z% X7 v g.drawImage(myImage,0,0,this);
7 U) c$ b. l4 F }
5 W+ R) o0 q3 C E, K/ R}
; X9 [8 |/ y# L A( G: a, }3 Y) K9 A R& {
" p" M6 H- E0 \
% I+ p; e7 w! C+ |& ?7 L+ L4.写出以下程序的运行结果。( w4 V+ a: Y% p$ D+ R
class Parent5 p$ Y$ m; C( f; ] n
{void printMe(){System.out.println("parent");}6 t8 a; j2 [9 g4 X
}
$ I% @) W2 m- Iclass Child extends Parent
6 q! t3 ^8 A) u+ r' }{void printMe(){System.out.println("child");}
" J) g6 @; j6 l- Q5 K, P* B) {$ @; Vvoid printAll(), D4 c2 d5 r& E- h. P
{ super.printMe();$ J; `$ B, j% e+ a2 x
this.printMe();
, C4 k7 X# w, }printMe();( k% q4 p" z7 Y) d) |) v2 R
}}3 a; w, U" } s# K, @8 v
public class A3 b* f. b$ A1 X' R
{public static void main(String args[])
6 N* s! ^5 o: n! `{Child myC=new Child();& b' t2 x8 C* M7 t6 v0 n
myC.printAll();
+ [0 E+ k5 A3 F}}+ ^% s; p* B: z
; H( ~0 c0 b" ?% d0 h: d& \
0 N5 K- z8 G; s: h* P* Z' f _
# \- Y. @4 s2 Q7 r
$ U: ~) s1 j" z W( k: Y! o' y( L7 \三、程序设计题(共20分)
, Y# A- s# `; C' ~建立一个表示分数的类:私有数据为两个整数分别表示分子和分母,初始化方式有1)无参默认为1;2)两个整数数分别表示分子和分母;外部接口有:以a/b的形式输出的分数;两个分数相加;分数加一整数;比较两个分数是否相等。* i0 `. f& G( c7 d' m& Y
# E0 p* t2 t' A# z7 s
_+ `% z; v$ K! M) b0 U3 o: O1 ^* p4 ?- S& E
+ C3 w: e" d3 b8 |, T' R" D3 C! P f# Z
) P6 S, |7 \- d! T
5 P$ v& K4 n4 V5 y1 G
+ f; y. A+ ~$ o4 \" `
$ @6 b2 T1 H" j8 Y
7 P& L+ `& W$ I9 X' x6 u" _& M6 v
! z; V, O. o2 |0 M1 a0 I+ F9 V, v3 \9 J( p9 F
% C# S+ B/ g; U1 | G
# d1 T9 {3 _0 Q$ g$ T
; A. z8 h% P* I- W' j
) V3 {7 k3 C0 R% ?7 S/ g" e+ z, _
+ k" p; G# I: V% q
) N4 @' W3 M; o% N7 o
% |9 g2 F8 |3 X' b- f; R3 i) j$ c& z
7 } x7 S5 D, Z- @& L6 ^! e1 G( { |
|