软件工程08级《Java程序设计》A卷
湖南工业大学考试试卷纸
() 计算机与通信   课程名称  Java程序设计  班级  软件工程08    姓名          学号         
密封线
课程名称: JAVA程序设计        ( A    闭卷)
适用专业年级:软件工程08    考试时间:  100 分钟
题号
总分
统分人
题分
36
27
12
25
100
得分
考生注意事项:1、本试卷共  4  页,试卷如有缺页或破损,请立即举手报告以便更换。
              2、考试结束后,考生不得将试卷和草稿纸带出考场。(答案请写在答卷纸正面,否则不记分)
一.简答题(每题4分,共36)
1.在编写Java的循环结构程序时,“break”和“continue”各自的作用是什么?
2Java在进行异常处理时,throwthrows语句的作用有何不同?
3.在一个子类程序中,如果局部变量、实例变量和父类的实例变量重名,如何加以区分?
4.编写Web应用程序时,客户端向服务器端发出服务请求,服务器每次根据客户的请求创建线程,他们之间的通信结束后销毁线程,采用何种技术避免反复创建和销毁线程而带来的系统资源开销过大问题?
5.为什么wait()/notify()/notifyall()必须放在synchronized代码块中? 为什么 wait()/ notify()/notifyall()必须派对使用?
6.在编写异常处理程序时,使用的多重catch语句有明确的父子关系时,应该如何安排各catch的顺序,为什么?
7.在Java线程程序设计时,如果要重写run()stop()方法,需要如何实现,为什么?
8.简述Java如何通过网络编程技术实现一个服务器与多个客户间相互传递信息。
9Java事件编程包括哪几个步骤?
二.程序分析题(27)
1在如下 try-catch块中,假定“statement2产生了异常, 请回答下面问题(6分)。
try{
      statement1;
statement2;
    statement3;   
}
catch(Exception ex1){    }
catch(Exception ex2){    }
statement4;   
(1) statement3能否被执行?为什么?
(2) 如果异常未被捕获,statement4能否被执行?为什么?
(3) 如果异常已经被捕获,statement4能否被执行?为什么?
2.请问下面程序哪些语句编译时会出错,请指出出错的原因4分)
public class TestMain {
        int x =1;
        void method1(){}{
            System.out.println("invoke no static method1");
        }
        static void  method2(){
            System.out.println("invoke static method2");
        }
        static int y=9;
        public static void main(String[] args){
            System.out.println(x);       
            System.out.println(y);       
            method1();       
            method2();       
            TestMain test = new TestMain();
            System.out.println();
            hod1();
        }
}
  1      4                                   
湖南工业大学考试试卷纸
() 计算机与通信  课程名称  Java程序设计  班级  软件工程08    姓名          学号         
密封线
                                                                                                                                                                                                                          2      4 
3.阅读下面程序并回答问题5分)
class GeometricObject{
        public  void  draw(){…}
}
class  Ellipse  extends  GeometricObject{
        public  void  draw(){…}
public  void  getCenter(){…}
}
public class  Circle  extends  Ellipse{
        public  void  draw(){…}
        public  double  getArea(){…}
public static void main(String arg[]){
GeometricObject  g = new  Circle();
g.draw();                  //语句1
double  d = g.getArea();        //语句2
        }
    }
    (1) 语句1调用的是哪个类的方法?如果g换成Circle类引用呢?如果Circle类不覆盖draw方法,调用的是哪个类的方法?
(2) 语句2编译时能否通过,为什么。
4.下面程序能否编译通过?为什么?4分)
class TestA{
    public void start(){
        System.out.println("TestA");
    }
}
public class TestB extends TestA{
    public String start(){
        return("TestB");
}
  }
5.下面的类编写是否有错误?如果有,如何改正?4分)
private class MyWindowListener implements WindowListener
{   
      public void windowClosing(WindowEvent e)
{
          int result = JOptionPane.showConfirmDialog(……);
          if(result == JOptionPane.OK_it(0);
        }
}
6.下面的Java程序是否可以正常编译运行?为什么?4分)
class First {
    private int a = 1;
int b = 2;
  }
class Second extends First {
        int c=5;
public void method() {
            System.out.println(a + b+ c);
    }
}
三.程序填空题(每空2分,共12)
1.从键盘读入一个整数值n,打印123+……n
  import java.io.*;
  public class ComputeSum {
  public static void main(String[] args) throws Exception{
                                                ;
        //键盘转换成一个能读取文本行的字符输入流
        String s;
        int n=0 
        int sum=0, k=0;
        System.out.println(“请输入一个整数值”);
                        ;    //从键盘读入一行
                      ;    //转换成整数型
        for(k=1; k<=n; k++)
            sum=sum+k;
        System.out.println(“123+……”+ n+”=”+sum);
  }
湖南工业大学考试试卷纸
() 计算机与通信   课程名称  Java程序设计  班级  软件工程08    姓名          学号         
 
密封线
                                                             
2下面程序是一个简单圆柱体的类
Public class Cylinder extends Circle
{
      Private double radius, length;
public Cylinder(double radius, double length)  {
          //实现该构造方法
  }
    Public double findArea( )
      {         (2)        //实现求圆柱体面积的方法 
      }
      Public double findVolume( )
      {         (3)        //实现求圆柱体体积的方法
      }
  }
四.编程题(25)
1.一个数如果恰好等于其因子之和,这个数就称为“完全数”编写程序求5001000之间的所有“完全数”。9分)
public class TestNum {
static void main(String[] args){
      }
  }
2.请编写Square类,使其继承Rectangle,覆盖findAreafindPerimeter方法,实现Printable接口以便输出三行三列‘*’。8分)
public interface Printable {
  public void pringtItMyWay(char myChar);
}
public class Rectangle {
    public double getHeight()
      { return height;  }
public void setHeight(double height)
      { this.height = height; }
    public double getWidth()
      { return width; }
    public void setWidth(double width)
    { this.width = width; }
  public double findArea()
      { return width*height; }
    public double findPerimeter()
          { return 2*(width+height); }
  }
                  3      4 
                                             
湖南工业大学考试试卷纸
() 计算机与通信   课程名称  Java程序设计  软件工程专业课程班级  软件工程08    姓名          学号         
密封线
 
3.在Mysql中创建了xscj数据库,在此数据库中创建一个student表,表中有6个字段,其中degree目前为空。8分)
ID          int        4      //学号
Name        char        16    //姓名
Sex          tinyint      1      //性别
Math        float              //数学成绩
English      float              //英语成绩
Degree      char              //成绩综合等级
编程实现如下功能,根据数学和英语成绩情况确定综合等级:
数学和英语都及格(60分为及格线),总分大于180分者综合等级为‘A’;
数学和英语都及格(60分为及格线),总分大于160分者综合等级为‘B’;
数学和英语都及格(60分为及格线),总分大于140分者综合等级为‘C’;
数学和英语都及格(60分为及格线),总分大于120分者综合等级为‘D’;
其他情况综合等级为‘E’。
package org.jdbc;
    import java.sql.*;
    public class DecideDegree {
        public static void main(String[] args) {
            ResultSet rs = null;
            Statement stmt = null;
            Connection conn = null;
            int thisID;
            float thisMath, thisEnglish, sum;
            char thisDegree;
  }
}
                  4      4 
                                                                         

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。