2007-2008学年第一学期期末考试试题(B卷)(1)
一、选择题(每题2分,共20分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在答案表格中
?
1.以下的变量定义语句中,合法的是( )。
A) float $_*5= 3.4F; ?????????????????????? B) byte b1= 15678;
C) double a =Double. MAX_VALUE; ??????????????? D) int _abc_ = 3721L;
?
2.Java语言的类间的继承关系是( )。
A) 多重的 ?????? B) 单重的 ?????? C) 线程的 ?????? D) 不能继承
?
3.下列选项中,用于在定义子类时声明父类名的关键字是( )。
A)interface ?? ??? B) package ???? C) extends ???? D) class
?
4.若已定义 byte[ ] x= {11,22,33,-66} ;
其中0≤k≤3,则对x数组元素错误的引用是( )。
A) x[5-3] ????? B) x[k] ??????? C) x[k+5] ????? D) x[0]
?
5.下列语句序列执行后,k 的值是( )。
int i=10, j=18, k=30;
switch( j - i ){
??? case 8 : k++;
case 9 : k+=2;
case 10: k+=3;
default : k/=j;
}
A)1??????? B) 2?? C) 35??? D) 30
?
6.定义类头时能使用的修饰符是( )。
A) private B) static C) abstract D) protected
?
7. 下列类定义中,不正确的是( )。
A) class x { .... }???????? B) class x extends y { .... }
C) static class x implements y1,y2 { .... }
D) public class x extends Applet { .... }
?
8. 用于定义类成员的访问控制权的一组关键字是( )。
A) class, float, double, public???????? B) float, boolean, int, long
C) char, extends, float, double???????? D) public, private, protected
?
9.现有两个类A、B,以下描述中表示B继承自A的是( )。
A) class A extends B ?????? B) class B implements A
C) class A implements B ??????? D) class B extends A
?
10.若一个类中对某个方法进行了重载,能够区分这些重载方法的手段是 ( )。
A)它们的返回值类型的不同 ???????? B)它们的名称的不同
C) 它们的参数表的不同 ??????????? D) 它们的修饰符不同
?
二、多项选择题(每题2分,共10分)
在每小题的五个备选答案中选出正确答案,并将正确答案的序号答案表格中,错选多选,漏选均不得分。
?
1.下面哪个语句是创建数组的正确语句?
?A、 float f[][] = new float[6][6];???? B、float []f[] = new float[6][6];
?C、float f[][] = new float[][6];?????? D、float [][]f = new float[6][6];
?E、float [][]f = new float[6][];
?
2.已知如下代码:
switch (m)
{
case 0: System.out.println("Condition 0");
case 1: System.out.println("Condition 1");
case 2: System.out.println("Condition 2");
case 3: System.out.println("Condition 3");break;
default: System.out.println("Other Condition");
}
当m 的值是何值时能输出"Condition 2"?
?A、 0????? B、1?????? C、2?????? D、3?????? E、4
?
3.在如下源代码文件Test.java中, 哪个是正确的类定义?其中T1,T2是已知的类。
?A、 public class test {
public int x = 0;
public Test(int x){
this.x = x;
}
}
?B、public class Test{
public int x=0;
public Test(int x) {
this.x = x;
}
}
?C、public class Test extends T1, T2 {
public int x = 0;
public Test (int x) {
this.x = x;
}
}
?D、 public class Test extends T1{
public int x=0;
public Test(int x){
this.x = x;
}
}
?E、protected class Test implements T2{
public int x=0;
public Test(int x){
this.x=x;
}
}
?
4.当Frame改变大小时,放在其中的按钮大小不变,则使用如下哪个layout?
?A、 FlowLayout???? B、CardLayout? ?????? C、North and South of BorderLayout
?D、East and West of BorderLayout?????? E、GridLayout
?
5.下面哪个不是Java中的容器?
?A、 ScrollPane???? B、Canvas????? C、Scrollbar?? D、Applet? E、Dialog
?
三、判断题( 每小题1分,共10分 )
下列各题中,你认为正确的就在答案表格中打"√",错误的打"×"。
1.Java中的的字符使用的是 16 位的Unicode 编码。
2.接口是由常量和抽象方法组成的特殊类。
3.构造函数的方法名可由编程人员任意命名。
4.类的私有属性和私有方法可以被其子类访问。
5.abstract 是抽象修饰符,可以用来修饰类及其属性和方法。
6.一个 Java 源程序中允许有多个公共类。
7.Java 程序可以划分为两大类: Application 和 Applet。
8.用static修饰的方法称为静态方法,它不属于类的一个具体对象,而是整个类的类方法。
9.java语言中的接口可以继承,一个接口通过关键字extends可以继承另一个接口。
10.声明为final的方法不能在子类中重载。
?
四、填空题( 每题3分,共30分 )
请将正确答案填写在答题纸相应位置上,答在试卷上不得分。(一题多空时,答案用分号隔开)
?
1.下面是用户程序对 Applet 类中方法 action( ) 的重新定义,功能为从单行文本编辑区 input 中输入数据赋给k。TextField
类的对象input和int型变量k已在类体中正确说明。
public ___________ action( Event e, Object o ){
if( e.target==input )
k=Integer.parseInt( _______.getText( ) );
repaint( );
return true;
}
?
2.分析下面的Java程序:
public class yy {
? public static void main(String[] ards) throws Exception {
??? ?try {
??? ??? ?throw new Exception();????
??? }catch(Exception e){
??????? ?System.out.println("Caught in main()");
??? ?}???
??? System.out.println("nothing");
? }
}
输出结果为__________
?
3.下面程序的功能为计算数组各元素的和。
import java.awt.Graphics;
import java.applet.Applet;
public class SumArray extends Applet {
int a[] = { 1, 3, 5, 7, 9, 10 };
int total;
public void init(){
total = 0;
for ( int i = 0; ___________; i++ )
total=______________;
}
public void paint( Graphics g ){
g.drawString( "Total of array elements: " +total, 25, 25 );
}
}
4.下面Calculation类中的重载函数add分别计算整型、浮点型和字符串的和。
class Calculation {
? public void add(_____) {
?? int c = a + b;
?? System.out.println("两个整数相加得 "+ c);
? }
? public void add(________){
??? float c = a + b;
??? System.out.println("两个浮点数相加得"+c);
? }
? public void add( ________) {
??? String c = a + b;
??? System.out.println("两个字符串相加得 "+ c);
? }
}
?
5.下面程序是方法覆盖示例,其运行的结果是_______________.
?
class SuperClass {
?int a;
?SuperClass(){ a = 10;}
?public void printA(){System.out.println("父类中a ="+a);}
}
class SubClass extends SuperClass {
?int a;
?SubClass(int a){ this.a = a;}
?public void printA(){ System.out.println("子类中a = "+a); }
}
public class OverrideDemo {
?? public static void main(String args[]) {
????? SuperClass s1 = new SubClass(10);
??? ?? s1.printA();
?? }
}
?
6.下面程序定义一接口A,类B实现了接口A
________? A {
? ? double g=9.8;
? ? void show( );
}
class B ______ A {
??? ?public void show( ) {
?? ???? System.out.println(“g=“+g);
??? }
}
?
7.给出下面程序运行结果___________
?public class ExceptionDemo {
??? public static void main(String args[]) {
??? try ?{
??? ?? int c= calculate(9,0);
??? ?? System.out.println(c);
??? ? }
??? ? catch (Exception e) {
??? ?? System.err.println("发生异常");
??? ? }
??? }
??? static int calculate(int a, int b) {
??????? int c = a/b; return c;
??? }
?}
?
8.下面程序运行的结果是:_______________.
public class TestString {
??? public static void main(String args[ ]) {
??????? String s1="Java", s2="Java";
??????? String s3=new String(s1);
??????? System.out.println(" s1==s2 is "+(s1==s2));
??????? System.out.println(" s1==s3 is "+(s1==s3));
??? }
}
?
9.下面程序定义了一个二维数组a,给出程序运行结果___________.
?public class Test_Array{?
????? public static void main(String [ ] args){
??? int? a[ ][ ];??????
??? a=new int[2][ ];
??? a[0]=new int[3];?
??? a[1]=new int[6];?
??? System.out.println(" a?? 的长度 = " + a.length );
??? System.out.println("a[0] 的长度 = " + a[0].length );
??? System.out.println("a[1] 的长度 = " + a[1].length );
??? }
}
?
10.下面程序运行的结果是____________.
class? test{??? int x;? }
public class Test_Paras {
??? static test fun(test o,int y){
??????? o.x=20;
??????? y=1;??? ???
??????? return? o;
??? }
??? public static void main(String [ ] args){
??????? test? obj1 , obj2;
??????? int?? Val = 3;?????
??????? obj1=new test( ) ;
??????? obj1.x=100;????
??????? obj2=fun(obj1,Val);
??????? System.out.println(obj1.x+","+ obj2.x+","+Val);????
??? }
}
?
五、(每题6分,共30分)
将下面程序中标号①②③处的代码补齐,完成程序的功能
1.下面程序实现了一个标题为“我的窗口”的框架Frame,其背景颜色为Color.red。
______①_______;
class FrameTest {
??? public static void main(String args[]) {
?? ??? Frame f=_____②________;
? ? ??? f.setSize(300,200);
??????? ________③__________;
f.setVisible(true);
??? }??
?}
?
2.下面程序实现如下界面:

?
import java.awt.*;
class Qualification extends Frame {
??? Checkbox t1=new Checkbox("Visual Basic");
??? Checkbox t2=new Checkbox("Visual C++");
??? Checkbox t3=new Checkbox("Java");
??? _________①___________;
??? Checkbox r1=new Checkbox("专科",cg,false);
??? Checkbox r2=new Checkbox("本科",cg,false);
??? Checkbox r3=new Checkbox("硕士",cg,false);
??? Checkbox r4=new Checkbox("博士",cg,false);
? ? Label lb1=new Label("您的学历为:" );
??? Label lb2=new Label("您精通的语言为:" );
public Qualification(String s ) {
??? super(s);
setLayout(_____②_________);
??? add(lb1);
add(r1);add(r2);add(r3);add(r4);
add(lb2);
add(t1);add(t2);add(t3);
?? }
??? ?public static void main(String args[]) {
??????? Qualification q=________③___________
??????? q.setSize(400,250);
??????? q.show( );
??? }
?}
?