|
西南大学培训与继续教育学院课程考试试题卷
& N3 m" \6 z! ?* h
3 K* U- h/ r) M7 L8 l学期:2020年秋季
5 ?9 @8 y n6 ]# D% E课程名称【编号】:面向对象程序设计【0837】 A卷9 h$ a/ J8 n1 P+ a
:大作业 更多资料下载:谋学网(www.mouxue.com):100分0 ~' Z( m4 j; I( W2 {( y
- N* b0 \/ L' _4 g( h" H' A9 c C
一、更多资料下载:谋学网(www.mouxue.com)(共10小题,3分/题,共30分)! Q+ }- \* f; ^+ u0 K% ~
1.Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序“一次编写,到处运行”的特点:( ); _3 P! h# Y5 h4 D
A.多线程8 g% K2 |. W! b4 O2 i4 g
B.与平台无关: l" g" }/ L, m4 T$ b: @/ K
C.面向对象
e( F; O6 P U2 q. G! Z FD.分布式
! k) a% Y- b$ h4 q* X5 d ~, {5 a3 x" h2.下列字符序列中可以作为Java语言标识符的是:( )8 I. Y- f5 e( i; o7 h) W# C
A.true7 h. P+ W- o1 n$ P
B.123_xyz
/ l3 R1 W- \9 R9 o1 [" ZC.x.y
. M# e* j; ^$ |/ CD._x123
7 ^. a9 X- U" O4 ]2 p& f4 O3.下列选项中,用于声明实现一个接口关键字是:( )3 |$ r+ }! d1 t+ A' {0 e& a% G! }) V
A.interface ! L A% F& o8 n2 k
B.implements
0 V T* E9 T/ A. kC.import
; N: w4 ~8 C( o6 F8 K9 QD.abstract
; d/ Y( g, ?: L; y9 q4.设有定义 int i=7;char ch='b'; 下面赋值语句中不正确是:( )0 { X2 D6 `! w; q' J8 X' p5 _
A.i = ch;
* ~4 L3 A h2 ?4 b* D% DB.ch = i;
& U) b( v, t( x) S: B( s0 [! eC.ch = (char)i;
+ R1 H8 `' i" \" y! jD.i = (int)ch;) I& c5 s, E& k1 u6 }
5.以下由for 语句构成的循环的执行次数是:( )
% J' z+ G7 ?# d a" h' D5 Y) n/ K for ( int i = 0; i<=0; i = i ) ;
5 ~# ^8 o; r+ f zA.有语法错,不能执行
( q0 t) A; ?5 ?2 R! JB.一次也不执行
$ E1 T- o8 {" NC.执行1次 & v1 E' d5 Y8 S5 i
D.无限次: l s. m9 p" v5 F' ?" _
6.既能作为类的修饰符, 也能作为类成员的修饰符的是( )
9 ^" C& J( a8 ` X- q& UA.public h4 m% H X: e9 n3 D- O
B.extends& M+ \( \" [# L2 Q5 s" P
C.void ~( L- q4 R0 _. b
D.private1 z* i1 w3 X* k* \3 [' ?
7.下列构造String的语句中,不正确的是:( ). N( b8 R0 | L, L
A.String str2 = “” ;/ J; s5 p4 t% L- G/ a. J
B.String str1 = new String( );2 [* }& x) D8 w- a5 D0 T
C.String str4 = “” + 123;
e# V+ G0 N. u* u8 K% M. aD.String str3 = new String(123);( C3 o% ?" L, `( [5 f u& j0 [$ g
8.下列语句序列给出了myArr,k与myMethod()的声明。当调用方法myMethod(myArr,k)之后,存储在myArr和k里的值分别是:( )( i& X& \$ V: e
String myArr[] = {“peace”,“love”,“and”};9 X$ B+ T* n3 }8 L# t4 F
int k = 7;* R3 v1 d& ~7 H0 c0 f* y% g- x
void myMethod(String a[], int m) {
- b4 [7 j) C! X String temp = a[1];% r7 }' E0 _0 E! L) S) B* S% {9 I
a[1] = a[2];
# {9 ~& h% O, ?, M a[2] = temp;
( X( e: Y1 d# s8 s, I7 m K) ?+ I m = a[2].length();
: p7 U1 o4 X, M; i- M}, ?; `% m# V! K; [
A.{“peace”,“love”,”and”},7
2 ~' X, K4 S' X0 S+ KB.{“peace”,“love”,”and”},4! }$ O- L4 J0 J0 [' v
C.{“peace”,“and”,”love”},7
. i" w) T+ n. I, e$ [D.{“peace”,“and”,”love”},46 C& O* x5 e- l4 x
9.把容器划分为东、西、南、北、中5个区域的布局管理器是:( )8 h* Y1 c- H" M; |3 @" M
A.BoxLayout5 V. @3 t6 G+ ~1 Z$ G8 k: W2 o
B.FlowLayout
# u* _1 X' ` f C% i, q4 @C.CardLayout
3 R! e* b6 u# [7 CD.BorderLayout
3 P2 ]; f8 V; }* F, m1 i10.从开始执行到执行结束,小应用程序经历的3个状态分别是:( )1 `9 g; y8 O; o- a( ?
A.初始态、就绪态,结束态9 V1 O, m3 z5 h" F/ K$ [, G
B.就绪态、运行态,停止态
" ^2 K5 p% {9 L* U5 }4 P" ]" Y& tC.初始态、运行态,停止态0 ~- o8 ^2 Y/ p3 X
D.就绪态、运行态,休眠态) j4 N! w: e! ?8 w& w! l* @
1 ~3 A1 D. r0 q3 u% C1 H: ^5 N
二、程序分析题(共4小题,更多资料下载:谋学网(www.mouxue.com)各10分,共40分)0 @ o1 _1 d2 d/ z: ?
1.阅读下面的程序,写出程序运行的输出结果。* [1 u5 J/ ?* a. R, N) J
public class Test1 {
& n4 k7 [4 d! r/ j public int method(int n) {
1 }; ~% W9 ~& ~' n# p) S& B; c. z% x int result = 1;4 y/ w) w7 h3 X- m. m- m+ K9 S# @3 F
for(int i=1; i<=n; i++) {& \" X$ N' H5 G9 j6 L
result *= i; J7 ]& k7 ]6 g9 N0 }
}
" `7 M4 L( P, L* p5 u: [' a return result;' s/ R3 z! m1 Y
}
9 ~! ]; O8 ?+ h0 A m7 h" [3 l2 [" M8 G public static void main( String[] args) {& e, X, y2 V8 B ^" }
Test1 test = new Test1( );
$ v1 y% \, t8 r6 M int sum[ ] = new int[6];8 t' w# a. y( ?( x$ e
for ( int i=1; i <=5; i++) {# s- ]' d4 U5 V. b
sum = test.method(i) ;
2 |, I- G; y5 H, F. i. V) B/ c System.out.print(sum + " ");" Q" l# b3 ^2 V7 x" P; u+ A o
}% q# |+ S8 p R3 `9 P
}
" B1 k: L% S+ @2 l }1 q& X& i6 k( I5 P" O' m
8 Q' m, f: F( z& s2.阅读下面的程序,写出程序运行的输出结果。+ [' b- c) u* A P6 w9 U8 a0 M
public class Test2 {
/ n: Y! N- w4 A |! K- Q. x public static char method(char ch){
8 `1 I4 j1 C6 V, C8 y" _4 s if((ch>='A') && (ch<='Z'))
5 i' L6 O6 w b( a0 F! K return (char)(ch + 32);
: d2 V) ]8 T; C7 F/ G/ `! I else return ch;9 e- a3 U+ J* N F
}1 |% s7 ]( ]8 h4 Z& Y
public static void main(String[] args) {& ?: r. k# d0 o7 T9 _ [
String s= "0123456789ABCDEF",s1=""; ! e, E9 }% F3 V7 u- v( H: E$ u
for (int i=s.length()-1; i>=0; i--)
" \: y$ Z1 [0 n; \9 H s1 = s1 + method(s.charAt(i)); 1 V- b. @! b% _& h
System.out.println(s1);
$ T' h5 B# W3 U9 ~7 z; n' d/ v }
0 g2 H1 ]. V/ Q5 B7 ]}
- S8 K) ~2 R2 k
+ }- ]- ]! Y+ R2 m3.阅读下面程序,并回答问题。
6 I$ X# e$ q: O$ Y4 Iclass Parent {, C( y2 V: R1 g; w, n4 K+ ]
public void printMe( ) {; o) B; H+ v+ L5 T& d' Y( U! W
System.out.println("parent");6 x5 s5 M9 w2 L
}
p* q& E8 S M$ y}
& w A# T) ]0 G) {. |8 o, W5 K; x, w+ ~7 W! L! z, i$ S
class Child extends Parent {
" _6 B. T/ g6 J9 ^; X4 U public void printMe( ) {: M' F7 k+ j) x2 z: ~
System.out.println("child");& ?+ e2 e3 e, r8 z0 K) A
}2 M) y9 N G+ |' g1 F" B% y8 o" }
public void printAll( ) {
- ^, a+ E8 E ^& ^% ^ super.printMe( );3 K; y3 h0 H. d5 S+ ^/ b2 f
this.printMe( );;
x0 T, G: d9 |9 i }
1 B2 y5 u- g/ V, [: Z3 a1 o}1 r* n" w r* @/ {5 R; C3 t/ r
9 ], b# e$ ~5 G) [ ]
public class Test3 {
3 b, M) w8 o* X2 p public static void main(String[] args) {
: e8 J2 [/ w% j, ^% n/ @3 Q5 q' K Child myC = new Child( );
( ]9 P1 d; x; a0 i* b1 g! E8 N- q myC.printAll( );
. v& F+ i$ O( R0 h' j }
: A7 Q9 W0 V3 H9 Z) p! `) A6 ]4 m}
& K8 ~+ s: @! H$ ^" e2 S% B0 l
+ ]% @' Y, s5 F4 L# D4 O! E5 h问题(1):类Child和类Parent之间是什么关系?
# }, G. K4 e0 ^问题(2):关键字super和this分别是什么含义?4 y/ ^1 N6 u0 Q9 o! p
问题(3):这段程序的输出是什么?
8 h5 n! i! D! ?1 o6 l
' l( N- ~2 Q2 ~$ F* i4.阅读下面程序,并回答问题。% t+ |, ~ i! u0 Q8 P9 G
import javax.swing.*;
9 h {$ L. y# {+ u% cimport java.awt.*; % Z/ P) t- ~/ A8 k' y* t
import java.awt.event.*;5 {% ~) B6 i$ U- y5 o0 A8 d
& B7 X( v: a3 o# u P6 y' {1 }) ?" bpublic class Test4 extends JApplet implements ActionListener{8 H* G7 q; b& [+ G5 F& Y- Q
private Container cp = getContentPane();;
8 q+ n( L# `, u, ]/ Z' ? private JLabel prompt = new JLabel("请点击按钮"); $ D0 Z+ p+ j. {3 k5 a' W) E
private JButton start = new JButton("开始");% l: Y h" O" Z/ f8 \5 q
private JTextField output = new JTextField(20);' w2 ~$ e2 h, S1 [$ _ _. i7 k
public void init( ){& I: s6 i3 b& \! d3 p4 E
cp.setLayout(new FlowLayout());
4 }; {& c! p( [, c! A cp.add(start);6 J# D- \7 ^7 ]
cp.add(prompt);% Y( }5 v* P+ N3 h2 n
cp.add(output);
8 B& Z) _* y4 w6 L1 } |$ c output.setEditable(false);
7 s' V; y, v' r0 G3 h5 w start.addActionListener(this);' ?$ h; C e. T o. {& J' c/ p! ?
}
: S% H; u$ D, X. L- Y! I public void actionPerformed(ActionEvent e){
7 m9 ?" p& O$ v! t: o2 R if ((JButton)e.getSource( ) == start )* \. k( g, S6 [0 A o, o2 q$ L& Z2 d
output.setText("好好学习,天天向上");; h- N- P$ s. t6 u9 d
}# I9 q9 f2 @1 q6 _" S
}3 N1 F7 ^. Q& _" e2 R( g! M* }
问题(1):Java程序分为哪两种类型,这段程序是哪一类Java程序?$ g7 x% g. X6 \ j1 V
问题(2):这个图形用户界面上包含那几类组件?点击按钮后程序显示什么?2 [& T8 I0 q$ F4 p) B* O
问题(3):ActionListener是什么?程序中哪个方法是ActionListener中的方法?其功能是什么?
5 V& T/ _3 I. G" O8 [ V) v: C) K9 s \, g; U; v# N5 }6 M) y9 q
三、程序设计题(共1小题,共30分)3 u% v/ h& P2 Y" Q
编写一个简单的乘法器,界面如下图所示,在第一个文本框中输入第一个乘数;在第二个文本框中输入第二个乘数;当单击“=”按钮时,在第三个文本框中输出其乘积。
. X* Q8 ~+ p3 Z, T, s" U$ X- T
0 y6 y ?! `3 V$ N7 q4 y3 p
/ I, X5 _) u' Q' E3 g# L: O! f* q# Q4 m6 B5 _
! g5 Z! r, ?3 \+ D6 d1 a3 m
1 V+ r p' I" w5 p
4 R/ w, s! ?5 d2 q6 H* X
* G, C, x( y9 h' H2 s, R6 `7 ]; K) M! R( h
7 @; G( Z2 `/ U0 X* O
/ N: C& q2 O4 ^/ F! n0 J
7 f+ S& c& S9 c5 x8 X8 w; t1 Z
0 g0 k% J q1 B1 B" u. h
9 r' }$ G: l* C) T' F% R- f1 y' Z& U) M" |6 s1 a' `7 z! S
% G0 m9 X( j7 V+ s& j
; m) ~: m/ g9 A& N6 m" u! o$ n7 A/ o; Y
2 r" G; R: D' E, X0 Z' n' t
8 B+ a- D* D* f0 L* h0 d4 d4 c- I* t0 e! _. C" K9 E
9 x: b$ g- y4 P; {9 p r
/ @6 X. H2 L; M+ O3 K' `0 T* K+ | G7 _ R! \! [
; ^% O/ f; w/ v6 v, E$ D
- K3 y; i' K0 }( a- t. X* y) ^ ]$ b9 L& i$ T! a/ e+ ~9 t3 h. X6 P+ ^7 e
& r. Z; K4 o3 _6 g
3 i: \$ h4 y6 a4 w7 e. v) y. F" P- F/ v' m4 x0 V
& l3 O1 P* K; y$ d, l, p! X0 ]& i0 q( t9 Z, W2 A
4 Q' S0 p9 G% t7 Y2 O( i
& e8 E) `+ [# f0 r# W. i/ _* m& ~
1 {2 F, s- R% U/ I9 C8 F& n( Z+ w$ g5 W h" R* x
. m# q" \' B+ y( r' Y: ^" W& w* c
' _ J/ I5 s: _1 \* i
+ e' @/ z' B% \
1 [0 F/ ], v# h+ ]/ g! v |
|