2021级网络技术班Java程序设计考试
总分
30
10
60
100
注意:将文件名改为个人学号+姓名保存。
一、单选题将答案写到后面的( )中
1. 下列各选项中,(  A)是有效的标识符。
A. _max
B. class
C. Abc#
D. interface
2. Java语言中while和do-while循环的主要区别是(  B  )。
A. while的循环控制条件比do-while的循环控制条件严格
B.  do-while的循环体会至少执行一次
C.  do-while的循环体不能是复合语句
D.  do-while允许从外部转到循环体内
3. 为表示关系x>y或x<=z,应使用Java语言表达式(  C   )
A.  (x>y)&(x>=z)   
B. (x>=y)||(x<z) 
C. (x>y)|(x<=z) 
D.  (z>=x>y)     
4.请先阅读下面的代码
public class Test {
    public Test(){
        System.out.println("构造方法一被调用了");
    }
    public Test(int x){
        this();
        System.out.println("构造方法二被调用了");
    }
    public Test(boolean b){
        this(1);
        System.out.println("构造方法三被调用了");
    }
    public static void main(String[] args) {
        Test test = new Test(false);
    }
}
上面程序的运行结果为下列哪一项?B
A、  构造方法一被调用了   
       
B、  构造方法一被调用了
构造方法二被调用了   
构造方法三被调用了
C、 构造方法三被调用了
构造方法二被调用了   
构造方法一被调用了
D、构造方法三被调用了
5. int a[ ]={10,9,8,7};(C  )
A. 将4个初值依次赋给a[2]至a[5]
B. 因为数组长度与初值的个数不相同,所以此语句不正确
C.  将4个初值依次赋给a[0]至a[3]
D. 将4个初值依次赋给a[1]至a[4]
6、已知类的继承关系如下:
class Person;
class Teacher extends Person;
class Student extends Person; B
则以下语句能通过编译的有哪些?
A、 Teacher  t=new Person();      B、Person s=new Student();
C、 Student s=new Person();      D、Student s=new Teacher ();
7. 下面关于布尔类型变量的定义中,正确的是( A  )
A. boolean a=false;
B.  boolean d='true';
C. boolean c=True;
D. Boolean e=FALSE;
8. do while语句的循环体中不能包含的语句是(  D )
A. while语句
B. 方法调用语句
C. switch语句
D. 方法定义语句
9. 下面浮点型数据的定义中,错误的是(C   )
A.  double d=1.23;
B. float f='c';
C. float f=1.234;
D.  double d=1.23E7;
10. 下面的代码执行完以后,j的值是?D
int i=3,j=4;
while(i<=7){
j=j*2;
i=i+2;
}
A.  4      B.  8      C.  6      D.  32         
二、填空题将答案写在【          】中
1. 执行一个java程序的.class字节码文件的命令是【    java  】(2分java程序设计考试题)
2. java中的双分支判断语句的关键字分别是【  if   】【 else     】(4分)
3. 如果子类想在自己的构造方法中调用父类的构造方法,可以通过关键字【 super  】实现调用(2分)
4.若int a[4][4]={{1,2},{3,4},{5,6,7},{8,9,10,11}},则a[3][2]= 【  10   】(2分)
三、编程题(将完整的源程序写在题目下方,类命名方式为姓名全拼或缩写加题号1-5,如Lijiayu01,将答案的完整代码复制到下面的空白处)
1. 请编写一个程序,计算5-100(包括边界值)以内所有偶数和(要求用for循环,和if语句)
(10分)
public class Lijiay {
    public static void main(String[] args) {
        int sum=0;
        for(int i=5;i<=100;i++) {
           
            if(i%2==0) {
                sum+=i;
            }
           
        }
        System.out.println("5-100(包括边界值)以内所有偶数和"+sum);
       
    }
}
2. 定义2个方法area,分别求长方形的面积和圆形的面积(边长均为整数),并从main方法中分别调用,实现给定一个数据,两个数据求圆形、长方形的面积。
(10分)
package Lijiay;
public class Lijiay {
    public static void main(String[] args) {
        area(3,4);
        area(3);
       
    }
    static void area (int a,int b) {
        int S1=a*b;
        System.out.println("长方形的面积:"+S1);
    }
    static void area (int a) {
        final double pi=3.14;
        double S2=pi*a*a;
       
        System.out.println("圆形的面积:"+String.format("%.2f", S2));
    }
}
3. 定义一个整形数组score[10],并赋值{53,60,86,55,67,58,85, 96,75,80 }
求该数组中的平均值;将大于等于50且小于60分的改为60,并统计改的人数有几个(要求定义aver方法,change方法,调用这些方法后能输出相应的值,即在main方法中验证结果。)(15分)
package Lijiay;
public class Lijiay {
    public static void main(String[] args) {
        int score[]={53,60,86,55,67,58,85, 96,75,80 };
       
        aver(score);
        change(score);
       
    }
    static void aver (int a[]) {
        int sum=0;
        double avg=0;
      for(int i=0;i<a.length;i++) {
        sum+=a[i];
        }
avg=(double)sum/a.length;
      System.out.println("数组的平均值是:"+avg);
    }
    static void change (int score[]) {
        int count=0;
        for(int i=0;i<score.length;i++) {
        if(score[i]>=50&score[i]<60) {
            score[i]=60;
            count++;
        }
      }
      System.out.println("改的人数有:"+count+"个");
    }
   
}
4.在开发车辆销售管理系统中,需要定义车辆类,要求如下:(25分)(本题可以建一个类如Lijiayu04,将下面两个类放在这个类中。也可以建三个类)
1、定义车辆类Vehicle.java
(1)包括成员变量:车辆类型type、车辆品牌brand、车辆价格price。
(2)无参的构造方法。
(3)一个3个参数的构造方法,分别实现对车辆类型、车辆品牌、车辆价格实现初始化。
(4)输出车辆信息的方法printInfo();输出车辆类型、品牌、价格。
package Lijiay;
public class Vehicle {
    String type;
    String brand;
    double price;
    public Vehicle() {
    }
    Vehicle(String type, String brand, Double price) {
        this.type = type;
        this.brand = brand;
        this.price = price;
    }
    public void printlnfo() {
        System.out.println("------车辆信息-------");
        System.out.println("车辆类型:" + type);
        System.out.println("车辆品牌:" + brand);
        System.out.println("车辆价格:" + price);
   
    }
}
2、以Vehicle车辆类为父类,创建小轿车子类Car.java
(1)定义Car类无参的构造方法,用super调用父类的无参的构造方法。
(2)定义Car类的3个参数(类型、品牌、价格)的构造方法,应用super去调用父类的有参的构造方法。
package Lijiay;
public class Car extends Vehicle {
    Car() {
        super.printlnfo();
    }
    Car(String type, String brand, double price) {
        super(type,brand,price);
    }
}
3、以Vehicle车辆类为父类,创建大巴车子类Bus.java
(1)Bus类中增加成员变量座位数numOfSeat。
(2)定义Bus类的4个参数(类型、品牌、价格、座位数)的构造方法,自己使用this返回自己的所有的形参的数据。
(3)重写父类的printInfo()方法,在继承父类printInfo()方法基础上,增加座位数的输出信息。

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