Java编程语言期末考试
一
1 2 3 4 5 6 7 8 9 10
D B C C A A D D A A
11 12 13 14 15
D D B B A
二
1 2 3 4 5 6 7 8 9 10
× √ √ × × × √ √ √ ×
11 12 13 14 15
× √ √ √ √
三
1.(1)max(i1,i2,i3)
(2)static
2. 5050
3. 输出结果: 我是: 张三, 年龄:18
4. 输出结果: 这是 else 语句
一、单项选择题型 30分
1.假设类A是类B的父类,下列声明对象x的语句中不正确的是:( D )
A)A x=new A(); B)A x=new B();
C)B x=new B(); D)B x=new A();
2.现有两个类A、B,以下描述中表示B继承自A的是( D )。
A) class A extends B B) class B implements A
C) class A implements B D) class B extends A
3.下面属于容器类的是( A )。
A) JFrame B) JTextField C) Color D) JMenu
4.6+5%3+2的值是___________( D )
A)2 B)1 C) 9 D)10
5.设 A为已定义的类名,下列声明A类的对象a的语句中正确的是( A )。
A) public A a=new A( ); B) public A a=A( );
C) A a=new class( ); D) a A;
6.下列选项中能独立完成外部文件数据读取操作的流类是 ( B)
A)InputStream B)FileInputStream C)FilterInputStream D)DataInputStream
7.下列修饰符中与访问控制无关的是:( D )
A)private B)public
C)protected D)final
8.下列变量定义错误的是。 ( D )
A) int a; B) double b=4.5; C) boolean b=true; D)float f=9.8;
9.以下选项中,合法的赋值语句是( B )。
A) a = = 1; B) ++ i; C) a=a + 1= 5; D) y = int ( i )
10.以下选项中属于字节流的是( A )
A)FileInputSream B)FileWriter C)FileReader D)PrintWriter
11.Java 程序经过编译后生成的文件的后缀是 ( D )。
A) .obj B) .exe C).java D) .class
12.下面关键字中哪一个不是用于异常处理语句( B )。
A)try B)break C)catch D)finally
13.下面有关线程的说法,错误的是( B )。
A) Java支持多线程编程。
B)Java中实现多线程编程,必须创建用户自己的线程子类 把Thread作为父类。
C)在多线程编程中,同一个程序多次运行,可能输出的结果不同。
D) 可以调用sleep()使线程挂起(休眠)。
14.在使用FileInputStream流对象的read方法读取数据时可能会产生下列哪种类型的异常( D )
A)ClassNotFoundException B)FileNotFoundException
C)RuntimeException D)IOException
15.当对线程进行调度使其暂停时,暂停的时间单位是( A )。
A) 毫秒 B)秒 C) 分钟 D) 小时
16.下列哪个不是面向对象程序设计方法的特点( D )。
A) 抽象 B) 继承 C)多态 D) 结构化
17.Java语言的各种分隔符中,非法的是( D )。
A.空白符 B.分号 C. 逗号 D. 问号
18.下列关于数组的定义形式,正确的是( B )。
A.int []a; a=new int; B. char b[]; b=new char[80];
C.int []c=new char[10]; D.int []d[3] = new int[2][];
19.下列循环语句的循环次数是( D )。
int i=5;
do{
System.out.println(i--)
i--;
}while(i!=0);
A.0 B. 1 C. 5 D.无限
20.如果一个类的成员变量只能在所在类中使用则该成员变量必须使用的修饰是(C)。
(A) public (B) protected (C) private (D) static
二、判断题型 30分
1.Java语言具有良好的安全性和可移植性及平台无关性。( √ )
2.如果一个java程序中有多个类,编译后只生成一个字节码文件,其名字同主类名。(×)
3.创建数组时,系统自动将数组元素个数存放在length变量中,可供用户对数组操作时使用 。(√)
4.Java语言定义符号常量使用final关键字。(√ )
5.类是一种类型,也是对象的一种模板。(√)
6.intArray [ ] a1,a2; int a3[ ]={1,2,3,4,5};定义了三个整型数组a1、a2、a3。(× )
7.显示JFrame框架的方法名是setVisible。(√ )
8.FileInputSream属于字节流。(√ )
9.Java语言具有良好的安全性和可移植性及平台无关性。( √ )
10.getAddress()不是InetAddress类提供的静态方法。 ( × )
11.Java语言定义符号常量使用final关键字。(√ )
12.类是一种类型,也是对象的一种模板。(√ )
13.抽象方法是一种只有说明而无具体实现的方法 (√)
14.创建对象时系统将调用适当的构造方法给对象初始化。 (√)
15.一个类可以实现多个接口.接口可以实现“多重继承”。 (√)
16.在某类中存在方法:void sort(int x),则 void sort(double y)可以作为重载声明。(√ )
17.Java源程序文件的扩展名是“.java”,字节码文件的扩展名是“.class”。(√ )
18.final修饰的最终类可以作为其它类的父类。(×)
19.用于定义接口的关键字是interface。(√ )
20.String str=”welcome”;则str.substring(1,4)的输出结果是“c”。(×)
三、程序分析题型 20分
1.现有类说明如下,请回答问题:
public class A {
String str1 = " Hello! \t";
String str2 = " How are you?";
public String toString() {
return str1 + str2;
}
}
public class B extends A
{
String str1 = "\b\b,Bill.";
public String toString() {
return super.str1 + str1;
}
}
1.问题:
-
1) 类A和类B是什么关系?
答:继承关系
-
2) 类A和类B都定义了str1属性和方法toString( ), 这种现象分别称为什么?
答:属性的隐藏;方法的覆盖。
2.下面程序的功能是通过调用方法max()求给定的三个数的最大值,请将其补充完整。
package ceshi;
public class Class1 {
public static void main(String args[]) {
int i1 = 1234, i2 = 456, i3 = -987;
int MaxValue;
MaxValue = [1];
System.out.println("三个数的最大值:" + MaxValue);
}
public [2] int max(int x, int y, int z) {
int temp1, max_value;
temp1 = x > y ? x : y;
max_value = temp1 > z ? temp1 : z;
return max_value;
}
}
答:(1)max(i1,i2,i3)(2)static
3.写出以下代码的功能:
package ceshi;
import java.io.*;
public class TestIO {
public static void main(String[] args) {
byte[] buffer = new byte[100];
try {
System.in.read(buffer);
String str = new String(buffer);
System.out.println(str);
} catch (IOException e) {
e.printStackTrace();
}
}
}
答: 读取用户从键盘输入的字节数据,把数据存放到数组buffer中,然后显示在屏幕上,带输入输出异常控制
4.阅读下面程序,写出程序运行结果。
package ceshi;
class Student{
private String name;
private int age;
public Student(String n, int a) {
name = n;
age = a;
}
public void read(){
System.out.println("我是:"+name+",年龄:"+age);
}
}
public class Example06 {
public static void main(String[] args) {
Student stu = new Student("张三",18); // 实例化Student对象
stu.read();
}
}
程序运行结果是: 我是: 张三, 年龄:18
5.阅读下面程序,写出程序运行结果。
package ceshi;
class Student {
private String name;
private int age;
// 定义构造方法
public Student(String name,int age) {
this.name = name;
this.age = age;
}
public String read(){
return "我是:"+name+",年龄:"+age;
}
}
public class Example10 {
public static void main(String[] args) {
Student stu = new Student("张三", 18);
System.out.println(stu.read());
}
}
程序运行结果是:我是: 张三, 年龄:18
6.阅读下面程序,写出程序运行结果。
package ceshi;
//定义Animal类
class Animal {
String name = "牧羊犬";
//定义动物叫的方法
void shout() {
System.out.println("动物发出叫声");
}
}
// 定义Dog类继承动物类
class Dog extends Animal {
//重写父类Animal中的shout()方法,扩大了访问权限
public void shout() {
super.shout(); //调用父类中的shout()方法
System.out.println("汪汪汪……");
}
public void printName(){
System.out.println("名字:"+super.name); //调用父类中的name属性
}
}
//定义测试类
public class Example05 {
public static void main(String[] args) {
Dog dog = new Dog(); // 创建Dog类的实例对象
dog.shout(); // 调用dog重写的shout()方法
dog.printName(); // 调用Dog类中的printName()方法
}
}
程序运行结果是:
动物发出叫声
汪汪汪……
名字: 牧羊犬
7.阅读下面程序,写出程序运行结果。
package ceshi;
//定义抽象类Animal
abstract class Animal {
abstract void shout();//定义抽象shout()方法
}
//定义Cat类继承Animal抽象类
class Cat extends Animal {
// 实现shout()方法
public void shout() {
System.out.println("喵喵……");
}
}
//定义Dog类继承Animal抽象类
class Dog extends Animal {
// 实现shout()方法
public void shout() {
System.out.println("汪汪……");
}
}
//定义测试类
public class Example14 {
public static void main(String[] args) {
Cat an1 = new Cat(); // 创建Cat对象,使用Animal类型的变量an1引用
Dog an2 = new Dog(); // 创建Dog对象,使用Animal类型的变量an2引用
an1.shout();
an2.shout();
}
}
程序运行结果是:
喵喵……
汪汪……
8.阅读下面程序,写出程序运行结果。
package ceshi;
public class Test{
public static void main(String[] args){
int i=1;
int sum=0;
while(i<=100)
{sum+=i;i++;}
System.out.print(sum);
System.out.print("\n");
}
}
答:5050
应用题型:程序设计题:20分
1.计算立体盒子体积。
1.问题描述:定义一个盒子类Box,指定盒子的长宽高后,输出该盒子的体积。
2.问题分析:盒子的体积为长乘以宽乘以高,所以对于一个盒子来说,长宽高是最基本的三个属性,另外,为了得到体积,我们还需要定义一个体积属性(volumn),该属性的值由盒子类的求体积方法(getVolumn)得到,该方法对长宽高做出乘积,把结果赋值给体积属性。
3.参考步骤:
(1) 创建Box类;
(2) 重写Box类的构造方法,接收长宽高三个参数;
(3) 定义getVolumn方法,计算体积。
(4) 创建Box对象,调用getVolumn方法,输出体积。
参考代码如下:
package Box;
public class Box { // 创建Box类
// 盒子的长宽高
int depth;
int width;
int height;
int volumn;
public Person(int depth,int width,int height) {
this.depth=depth;//重写Box类的构造方法,接收长宽高三个参数;
this.width=width;
this.height=height;
}
public void getVolumn() {// 定义getVolumn方法,计算体积。
this.volumn = depth * width * height;
System.out.print("盒子的体积为:" + this.volumn);
}
public static void main(String[] args) {
Person v = new Person(10, 6, 3);// 创建Box对象,调用getVolumn方法,输出体积
v.getVolumn();
}
}
2.类似下面设计一个类,类名为Person,用于描述人类的特征和行为,并完成自我介绍的功能。
问题描述:编写人类代码,指出人类都有哪些常见特征,哪些常见行为,并通过产生对象来调用这些属性和行为。
问题分析:列举人类属性及行为,在测试类中生成人类对象,调用人类方法即可。
下面只提供部分参考代码,可以自己去思考补充完整:
public class Person {
String name;
int age;
String hand;
String head;
String foot;
//1.构造方法
public Person() {
}
//2.重写构造方法
public Person(String name, int age, String hand, String head, String foot) {
this.name = name;
this.age = age;
this.hand = hand;
this.head = head;
this.foot = foot;
}
//3.调用(定义)方法--自我介绍
public void introduceSelf() {
System.out.println("大家好,我叫 " + name + ", 我今年 " + age + " 岁,我有 " + hand + " 的手," + head + " 的头和 " + foot + " 的脚。");
}
//4.定义测试类
public static class Test {
public static void main(String[] args) {
Person person = new Person("张三", 25, "灵巧", "聪明", "有力");
person.introduceSelf();
}
}
}

浙公网安备 33010602011771号