湖南科技大学2021年计算机编程专业《Java语言程序设计(一)》课程期末考试试卷
班级                      学号                      姓名         
一、单项选择题
1.编译Java应用程序源程序会产生字节码文件,字节码文件的扩展名为B
    A..java    B..class
    C..html    D..exe
2.表达式-1>>1的值是B
    A.232-1    B.-1
    C.216-1    D.2147483647
3.为类C定义一个int类型的变量x,使得只有同类和同包的其它类能使用代码C.x就可引用它,
则定义x的形式为A
A. static  int  x;                      B. public  int  x;
C. protected  static  int  x;            D. public static int  x;
4. 设有字符串变量String s1="abc", s2=new String("abc"), 则以下表达式的值为true(D)
A. s1pareTolgnoreCase(s2)          B. s1pareTo(s2)
C. s1==s2                             D. s1.equals(s2)
5.在以下Swing的类中,属于容器的是(A)
A. JDialog                           B. JButton
C. JTextArea                         D. JList
6.在以下叙述中,属于CardLayout布局特点之一的是(D)
    A.多个组件从上到下排列    B.容器只能放置一个组件
    C.容器被分成网格状    D.多个组件拥有同一个显示空间
计算机专业java
7.Java组件可以使用抽象类Toolkit提供的静态方法获得一个缺省的Toolkit对象,这个静态方法是(C)
A. getlmage(String name)              B. getlmage(URL ur1)
C. getDefaultToolkit()                 D. getToolkit()
8.一个线程要从运行状态自动进入就绪状态,需要使用的方法是(C)
    A.notify()    B.sleep()
    C.yield()    D.wait()
9.程序将创建输入流的代码写在try-catch语句结构中,其目的是捕获并处理(C)
    A.文件太长异常    B.打开文件太多异常
    C.文件不到异常    D.文件含有病毒异常
10.在Java语言中,用来处理驱动程序的加载和建立新数据库连接的类是(A)
A. DriverManager                      B. Statement
C. Connection                         D. ResultSet
二、填空题
11.Java源文件中最多只能有一个  public  类,其他类的个数不限。
12.Java语言使用的字符集是  Unicode 
13.在Java语言中,package语句必须出现在源程序文件的  起始行 
14.以下代码的输出结果是  45 
Integer x = 234567;
System.out.String().substring(2,4));
15.在Java程序中,设置文本区对象myArea能自动换行的语句是  myAreasetLineWrap(true); 
16.Java语言为处理鼠标事件提供了多个接口,其中能处理鼠标拖动和鼠标移动两种事件的接口是  MouseMotionListener 
17.Graphics2D类定义了多种图形的状态属性,其中用来控制线条的宽度、笔形样式、线段连接方式或短划线图案的属性是  stroke 
18.当线程A使用某个对象,而此对象又需要线程B修改后才能符合A线程继续执行的要求,这时线程A就要等待线程B完成修改工作,这种线程相互等待称为  线程的同步 
19.使用RandomAccessFile类的  writeChar()  方法可以向文件写入一个字符。
20.使用语句对象作数据库查询,能获得带游标的结果集ResultSet对象,此对象中将游标移到最后一行之后的方法是  afterLast() 
三、简答题
21.请写出“条件x=2与y=3有且只有一个成立”的表达式。
答:x==2&&y!=3||x!=2&&y==3   (或 x==2!=y==3)
22.以下代码定义了一个类,请用注释中的编号指出其中有错的代码行。
class Test22{int x;
     Test22(int x){this.x=x;})  //1
     Test22(){Test22(10);} //2
     int f(){  //3
          inta=1;  x=a;  //4
     void g(){ int y;  //5
          y=a+x;  //6
   }
}
答:2、3、6
23.请写出在java.awt.event中,用来检测并对事件做出反应的模型所包括的三种对象。
答:源对象、监视器对象和事件对象。
24.请写出在Java语言中,关键字synchronized的作用。
答:使用关键字synchronized定义临界段,能对共享对象的操作上锁。
25.请写出采用缓冲式输入方式,按行输入文件内容的步骤。
答:先创建FileReader对象,再利用FileReader对象创建BufferedReader对象,然后对该对象使用readLine()方法。
26.已知服务器的IP地址为host,端口号为port,请写出为客户端建立到服务器的套接字对象mySocket的代码(可能发生的例外类型为IOException)。
答:try{
           Socket mySocket: new Socket(host, port); 
      }catch(IOException e){ }
四、程序填空题
27.方法int countDigitNum(int[]a,d)的功能是求己知数组a中元素值为d的个数。
static int countDigitNum(int []a, d){
    int s=0;
     for(int i=0;  i<a.length< span="">  ; i++){</a.length<>
        if(  a[i]==d  ) s++;
    }
    return s;
}
28.面板子类MyPanel实现在面板上放置一个单选列表框,列表框上的选项条目由创建该类对象时的参数提供。当某个选项被单击时,类的监视程序在指定的文本框中输出选中选项条目。程序将单选列表框放置于滚动面板中,并要求滚动面板的垂直滚动条总是可见。以下是类MyPanel的定义。
class MyPanel extends JPanel implements ListSelectionListener {
     JList list;    JTextField t~;
     MyPanel(String listItems[], JTextField tf) {
          this.tf = tf;
          list = new JList(listitems); list.setVisibleRowCount(2);
          list.setSelectionMode(ListSelectionModel. S]NGLE_SELECTlON);
          list. addListSelectionListener(this);
          JScrollPane jsp = new JScrollPane(list);
          jsp.setVerticalScrollBarPolicy(JScrollPane.  VERTICAL SCROLLBAR ALWAYS  );
          add(jsp);
    }
     public void valueChanged(ListSelectionEvent e) {
           Source0 == list) {
                tf. setText(list.   getSelectedValue()  +   ":被选中\n");
        }
    }
}
29.面板子类MyPanel实现在面板监视鼠标单击事件,当鼠标在面板上单击时,面板的背景就会循环改变。以下是类MyPanel的定义。
class MyPanel extends JPanel implements  MouseListener  {
     int index = 0;
     Color bgColorA[] -- { d, llow, Color.blue };
     MyPanel(){
          addMouseListener(this); index = 0;
    }
     public void mousePressed(MouseEvent e) { }
     public void mouseReleased(MouseEvent e) { }
     public void mouseEntered(MouseEvent e) { }
     public void mouseExited(MouseEvent e) { }