视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
四川大学JAVA期末试题
2025-09-26 04:31:02 责编:小OO
文档
四川大学期末考试试题(闭卷、开卷、半开卷)

(2007-2008学年第1学期)

课程号: 30485830    课程名称:  JAVA程序设计    任课教师: 张兵、张卫华、李莉        

适用专业年级:     学号:     姓名:     

考试须知

四川大学学生参加由学校组织或由学校承办的各级,必须严格执行《四川大学考试工作管理办法》和《四川大学考场规则》。有考试违纪作弊行为的,一律按照《四川大学学生考试违纪作弊处罚条例》进行处理。

四川大学各级的监考人员,必须严格执行《四川大学考试工作管理办法》、《四川大学考场规则》和《四川大学监考人员职责》。有违反学校有关规定的,严格按照《四川大学教学事故认定及处理办法》进行处理。
题    号

卷面成绩
得    分

阅卷教师
阅卷时间
一、判断题(本大题共10小题,每小题1分,共10分)在对的后面打√,错的后面打×。

1.Applet是一种特殊的Panel,它是Java Applet程序的最外层容器。             (正确)

2.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。( 正确  ) 

3.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 (  错误 )

4.Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。          (  错误 )

5.构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。 (   错误)

6.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。        ( 正确  )

7.拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。      (   正确)

8.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。        (   正确)

9.静态初始化器是在其所属的类加载内存时由系统自动调用执行。              (  正确 )

10.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。                                                   (错误)

二、单项选择题(本大题共20小题,每小题1分,共20分 )

1.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?( B   )

A、 String  args   B、String  ar[]     C、Char  arg        D、StringBuffer args[]

2.以下关于继承的叙述正确的是( A )。

A、在Java中类只允许单一继承  

B、在Java中一个类只能实现一个接口

C、在Java中一个类不能同时继承一个类和实现一个接口

D、在Java中接口只允许单一继承

3.paint()方法使用哪种类型的参数? (  A  )

A、Graphics       B、Graphics2D     C、String      D、Color

4.以下哪个不是Java的原始数据类型(   B   )

A、int     B、Boolean     C、float  D、char

5.以下哪项可能包含菜单条(   B  )。

A、Panel   B、Frame       C、Applet      D、Dialog

6.若需要定义一个静态域或静态方法,应使用哪种修饰符?(   A  )

A、static  B、package    C、private        D、public

7.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行(   A  )。

A、init()  B、start()     C、destroy()       D、stop()

8.给出下面代码,关于该程序以下哪个说法是正确的?(    C )

public class Person{ 

static int arr[] = new int[5];

public static void main(String a[]) { 

          System.out.println(arr[0]); }

A、编译时将产生错误        B、编译时正确,运行时将产生错误

C、输出零            D、输出空

9.下列哪些语句关于Java内存回收的说明是正确的? (   B  )

A、程序员必须创建一个线程来释放内存

B、内存回收程序负责释放无用内存

C、内存回收程序允许程序员直接释放内存

D、内存回收程序可以在指定的时间释放内存对象

10.以下哪个关键字可以用来声明抽象方法?(C     ) 

A、transient         B、synchronized   C、 abstract   D、static

11.以下代码段执行后的输出结果为(   A   )

     int  x=-3; int  y=-10;

       System.out.println(y%x);

A、 -1    B、2       C、1              D、3

12.在Java中,假设我们有一个实现ActionListener接口的类,以下方法中( C )能够为一个Button类注册这个类。

      A、addListener()   B、addActionListener()   C、addButtonListener()     D、setListener()

13. 设有下面两个赋值语句:

         a = Integer.parseInt(“12”);

         b = Integer.valueOf(“12”).intValue();

     下述说法正确的是(   B  )。

A、a是整数类型变量,b是整数类对象。 B、a是整数类对象,b是整数类型变量。

C、a和b都是整数类对象并且值相等。   D、a和b都是整数类型变量并且值相等。

14.FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型?B

A、OutputStream   B、File    C、InputStream     D、BufferedOutputStream

15.在编写Java  Applet程序时,需在程序的开头写上( A )语句。

A、import  javax.swing* ;         B、import  java.applet.Applet ;

C、import  java.io.* ;         D、import  java.awt.Graphics ;

16.在JAVA中的布局管理器,以下说法中错误的是( C ). 

      A、FlowLayout以由上到下的方式从左到右排列组件 

      B、BorderLayout使用 "东"."西"."南"."北居中"来指定组件的位置 

      C、GridLayout可以创建网格布局,网格布局中各组件的大小可以任意调整 

D、可以通过容器的setLayout方法为容器指定布局管理

17.在使用interface声明一个接口时,只可以使用(D)修饰符修饰该接口。

A、private      B、protected   C、static   D、public

18、在Java中,要想使只有定义该类所在的包内的类可以访问该类,应该用(A)关键字。

    A、不需要任何关键字   B、private    C、final    D、protected

19、关于以下代码段的说法正确的是(  C)

① String  s="abcde";

② StringBuffer  s1=new  StringBuffer("abcde");

③ if(s.equals(s1))

④    s1=null;

⑤ if(s1.equals(s))

⑥    s=null;

A、第1行编译错误,String的构造器必须明确调用

B、第3行编译错误,因为s与s1有不同的类型

C、编译成功,但执行时在第5行有异常抛出

D、编译成功,过程中也没有异常抛出

20、编译并运行以下程序,以下描述哪个选项是正确的( A)

① class  X{

  ②    protected  String  toString(){

      ③           return  super.toString();}

      ④  }

A、编译通过运行无异常     B、编译通过但运行时出错

C、行2出错,不能成功编译     D、不能成功编译,行3出错

三、程序阅读题(本大题共9小题,每小题4分,共36分)

1.阅读以下程序:

class Exp1 {

       public static void main(String[] args)        {

              String s,s1="";

              char c;

              s=args[0];

for (int i=0;i              {     c=s.charAt(i);

if(c>='a' && c<='z'){

                            s1=s1+Character.toUpperCase(c);

                     }else{

                            s1=s1+Character.toLowerCase(c);              }

              }

              System.out.println(s1);

       }

}

若在dos命令行输入:java  Exp1 cHINA,则输出为:                              

2.阅读以下程序:

import java.io.*;

public class  AboutFile{

              public static void main(String[ ]  args){

                     BufferedReader  b=new BufferedReader (new InputStreamReader(System.in));

                     String s;

                     System.out.flush();

                     s=b.readLine();

                     System.out.println(“String is:”+s);

              }

}

运行以上程序,若从键盘输入: javaworld<回车>

则输出结果为:                              

3.以下程序段的输出结果为:                      

public  class  C{

    public  static  void   main(String  args[ ]){  

                 int   i , j ;

                 int  a[ ] = { 5,1,3,9,7};

for ( i = 0 ; i < a.length-1; i ++ ) {

                       int  k = i;

for ( j = i ; j < a.length ; j++ )

if ( a[j]                          int  temp =a[i];

                          a[i] = a[k];

                          a[k] = temp;

                   }

for ( i =0 ; i                            System.out.print(a[i]+"  ");

         System.out.println( );

    }

}

4.阅读以下程序,写出输出结果。

class  Animal {

  Animal() {

    System.out.print ("Animal  ");  }

}

public  class  Cat  extends  Animal {

Cat() { System.out.print ("Cat ");  }

  public static void main(String[] args) {

    Cat  kitty= new  Cat();  }

}

5.阅读以下程序,输出结果为:                   

import    java.io.*;

public    class   ATest{

   public   static   void   main(String args[]) {

   SubClass    sb = new   SubClass( );        

     System.out.println(sb.funOfMod( ));    }

}

class    SuperClass{ 

  int  a = 10 , b = -3 ;  

}

class  SubClass  extends  SuperClass{ 

  int  funOfMod( ) {  return   a%b;  }  

 }

6.以下程序段的输出结果为:                      

class  Cruncher{

      void  crunch( int  i ){

               System.out.print(“int”);     }

 void  crunch(String  s){

 System.out.print(“String”); }

public  static  void main(String  args[ ]){

Cruncher crun=new  Cruncher ( );

char    ch=’h’;

int    i=12;

crun.crunch(ch);

System.out.print(“,”);

crun.crunch(i);       }

}

7.阅读以下程序,输出结果为 :                  

import    java.io.*;

public  class  TestString{

     public  static  void  main(String args[ ])

      {    StringC  s = new  StringC ("cool

           System.out.println(s);      }

}

class   StringC {

  String   s1;

  String   s2;

  StringC( String  str1 , String  str2 )

  {  s1 = str1;  s2 = str2; }

  public   String   toString( )

  { return  s1+s2;}

}

8.写出以下程序的运行结果。

class  StringTest1

{

       public static void main(String[] args) {

              String s1="hello";

              String s2=new String("hello");

              if(s1==s2){

                     System.out.println("s1==s2");

              }else{

                     System.out.println("s1!=s2");}

       }

}

9.写出以下程序的运行结果。

class Bird {

    protected static int referenceCount=0;

    

    public Bird(){referenceCount++;} 

    

    protected void fly(){ }

    

    static int getReCount(){return referenceCount;}

}

class Nightingale extends Bird {

    Nightingale() { referenceCount++;}

    

    public static void main( String args[ ]){

        System.out.print("Before:"+referenceCount);

        Nightingale florence=new Nightingale( );

        System.out.println(" After:"+referenceCount);

        florence.fly( );

    }

}

四、程序填空(本大题共10小空,每空2分,共20分 )。阅读程序,根据程序功能,在指定的空白处填上适当的语句或语法成分,使程序完整。

1.下面是一个类的定义:

public class ____________{ 

int x, y;

Myclass ( int i, _______) {// 构造函数

x=i;

y=j;

}

}

2.下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。

public void paint(Graphics ____ ){

int i=6;

g.drawString (“i=” +______ ,20,60); 

}

3.下面是一个Java Application 的主类的定义,其功能是输出所有命令行参数。 

import java.io.*;

public class MyClass{

public static void main(String args[ ]){

if( args.length !=___)

for(int i=0; i < args.length; i++)

System.out.println(___________);

else System.out.println("没有命令行参数");

}

}

4.下面是一个小程序的主类myprogram的定义, 其中A、B是该主类所在源程序中已定义的另两个类的类名: 

import java awt.*;

import java applet.*;

public class myprogram extends Applet{//定义小程序的主类

A a; B b;

public ________ init( ){

a=new A( ); b=_____ B( ); }

}

5.下面程序的功能是输出数组各元素的和。

import java.awt.Graphics;

import java.applet.Applet;

public class SumArray extends Applet{

float[] a; 

a= new _______[6];

float sum=0.0f;

public void init( ){

for ( int j = 0; j < a.length; j++ )

a[j] = j+1;

for ( int i = 0 ; i < a.length; i++ )

sum+= a[i];

}

public void paint( Graphics g ){

g.drawString( "Total of array elements: " + ________ , 25, 25 );

}

}

五、编写程序(本大题共2小题,第1小题6分,第2小题8分,共14分 )

1.编写一个输出"Welcome to Java World!"的Applet程序和嵌入该Applet的HTML页面。

① // Welcome.java(4分)

②//Welcome.html(2分)

import java.awt.*;

class Welcome  extends Frame{

public void paint(Graphics g){

g.drawString("Hello!java",24,50);

}

}

2.(8分) 用输入/输出写一个程序,让用户输入一些姓名和学号。每一个姓名和学号将加在文件里。用户通过输入"quit"来告诉系统整个列表已输入完毕。 如果用户输完整个列表,程序将创建一个输出文件student.dat。 

文件studentno.dat中的数据格式如:

2004001,杨一

2004002,张三

2004003,李四下载本文

显示全文
专题