Java程序设计期末考试试题及答案

  • 格式:docx
  • 大小:22.83 KB
  • 文档页数:7

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

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分)

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

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

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去