没有合适的资源?快使用搜索试试~ 我知道了~
Java练习题(试卷).
资源推荐
资源详情
资源评论
Java 练习题 1(第 1 页 共 14 页)
Java 程序设计练习题(1)
一、单项选择题
1.下面( B )是合法的 Java 标识符。
A、#_pound B、_underscore C、5Interstate D、class
2.下面( D )赋值语句不会出现编译警告或错误。
A、float f=1.3; B、char c="a"; C、byte b=257; D、int i=10;
3.编译一个定义了两个类和三个方法的 Java 源程序文件,总共会产生( D )个字节码文件。
A、5 个字节码文件,以“.java”为扩展名 B、2 个字节码文件,以“.java”为扩展名
C、5 个字节码文件,以“.class”为扩展名 D、2 个字节码文件,以“.class”为扩展名
4.有关类的说法,正确的是( B )。
A、类具有封装性,所以类的数据是不能被访问的
B、类具有封装性,但可以通过类的公共接口访问类中的数据
C、声明一个类时,必须使用 public 修饰符
D、每个类中必须有 main 方法,否则程序无法运行
5.执行完下面程序片段后,( B )的结论是正确的。
int a, b, c;
a = 1;
b = 2;
c = (a + b > 3 ? a++ : b++);
A、a 的值是 2,b 的值是 3 B、a 的值是 1,b 的值是 3
C、a 的值是 1,b 的值是 2 D、c 的值是 false
6.将类的成员的访问权限设置为默认的,则该成员能被( A )。
A、同一包中的类访问 B、其他包中的类访问
C、所有的类访问 D、所有的类的子类访问
7.下面的方法重载,正确的是( C )。
A、int fun(int a, float b) { } B、float fun(int a, float b) { }
float fun(int a, float b) { } float fun(int x, float y) { }
C、float fun(float a) { } D、float fun1(int a, float b) { }
float fun(float a, float b) { } float fun2(int a, float b) { }
8.下面关于继承的说法,正确的是( D )。
A、超类的对象就是子类的对象 B、一个类可以有几个超类
C、一个类只能有一个子类 D、一个类只能有一个超类
9.下面关于多态性的说法,正确的是( C )。
A、一个类中不能有同名的方法
Java 练习题 1(第 2 页 共 14 页)
B、子类中不能有和父类中同名的方法
C、子类中可以有和父类中同名且参数相同的方法
D、多态性就是方法的名字可以一样,但返回的类型必须不一样
10.关于下面程序,( A )的结论是正确的。
class J_SubClass extends J_Test { }
public class J_Test {
J_Test(int i) {
System.out.println(i);
}
public static void main(String[] args) {
J_SubClass a = new J_SubClass();
}
}
A、不能通过编译,因为类 J_Test 没有定义无参数的构造方法
B、不能通过编译,因为类 J_SubClass 没有定义无参数的构造方法
C、不能通过编译,因为没有实现 J_SubClass(int i)的构造方法
D、可以成功通过编译
11.关于下面程序片段,( B )的结论是正确的。
String a = "Java";
String b = "Java";
String x = "Ja";
String y = "va";
String c = x + y;
A、a 和 b 指向同一个实例对象,a 和 c 指向同一个实例对象
B、a 和 b 指向同一个实例对象,a 和 c 不指向同一个实例对象
C、a 和 b 不指向同一个实例对象,a 和 c 指向同一个实例对象
D、a 和 b 不指向同一个实例对象,a 和 c 不指向同一个实例对象
12.假设下面的程序代码都放在 MyClass.java 文件中,( D )程序代码能够编译通过。
A、import java.awt.*; B、package mypackage;
package mypackage; import java.awt.*;
class MyClass { } public class myClass { }
C、int m; D、/*This is a comment*/
package mypackage; package mypackage;
import java.awt.*; import java.awt.*;
class MyClass { } public class MyClass { }
Java 练习题 1(第 3 页 共 14 页)
13.当需要在文件中写入字符而不是字节时,在下面的类中最好选用( B )类。
A、java.io.RandomAccessFile B、java.io.PrintWriter
C、java.io.PrintStream D、java.io.PrintOutputStream
14.关于事件监听,正确的是( C )。
A、一个事件监听器只能监听一个组件
B、一个事件监听器只能监听处理一种事件
C、一个组件可以注册多个事件监听器,一个事件监听器也可以注册到多个组件上
D、一个组件只能引发一种事件
二、填空题
1. Class 类是由 Java 编译器自动生成的,它伴随每个类。
2.任何一个 Java 程序都默认引入一个包,这个包的名字是 java.lang
。
3.在 Java 语言中,有一个类是所有类或接口的父类,这个类的名称是 java.lang.Object
。
4.在 Java 中所实现的二维数组,实际上是由一维数组构成的 数组
。
5.在 Java 中,字符串是作为 对象
出现的。
6.接口可以看作是仅容纳 抽象方法
、常量,而又不能直接生成对象的特殊抽象类。
7.FileInputStream 是字节流,BufferedWriter 是字符流,ObjectOutputStream 是 对象流
。
8.在 Java 中,组件不能独立地显示出来,必须将组件放在一定的 容器
中才能显示。
9.Applet 是能够嵌入到 HTML
格式中的文件,并能够在浏览器中运行的 Java 类。
三、判断题
1、Java 程序一般应当含有 main 方法,因为它是所有 Java 程序执行的入口。( × )
2、Java 语言的标识符是不区分大小写的。( × )
3、Java 语言为所有的 Java 程序自动导入包“java.lang”, 因 此 Java 程序可以直接用“java.lang”
中的类和接口。位于类继承关系层次结构树的根部的类 Object 就是在包“java.lang”中的类。
( √ )
4、有时候为了避免引起混淆,构造方法的方法名可以不与所属类名同名。( × )
5、Java 语言规定,任何一个子类的构造方法都必须调用其父类的构造方法(包括隐式调用),并且
调用父类构造方法的语句必须是子类构造方法的第一条语句。( √ )
6、Java 语言对内存的释放是采用垃圾回收机制。Java 虚拟机自动判断并收集“垃圾”,但一般不
会立即释放它们的存储空间。( × )
7、在编 译 Java 源程序时,计算机根本不会去识别各个变量名的具体含义,因此命名规范对编写 Java
程序而言不是必要的,而且有可能会降低编写 Java 源程序的效率。( × )
四、程序改错题
1、请改正程序中的错误,使它得到正确的结果。
Java 练习题 1(第 4 页 共 14 页)
【操作说明】
如下 java 源程序文件中“/*$1*/”行中的语句有错误,请改正。(注意: 不改动程序的结构,不得
增行或删行)
【运行结果】
Call Constructor of Base Class, 1
Call Constructor of Derived Class, 2
【程序代码】
class Base {
public Base(int i) {
System.out.println("Call Constructor of Base Class, " + i);
}
}
class Test extends Base {
private int b;
public Test(int a, int b) {
Base(a); /* $1 */ super(a);
System.out.println("Call Constructor of Derived Class, " + b);
}
public static void main(String[] args) {
Test obj = new Test(1, 2);
}
}
2、请改正程序中的错误,使它得到正确的结果。
【操作说明】
如下 java 源程序文件,该文件中“/*$1*/”行中的语句有错误,请改正。(注意: 不改动程序的结
构,不得增行或删行)
【运行结果】
30
【程序代码】
public class Test {
private int value;
public void Test(int n) /* $1 */ public Test(int n)
{
value = n;
}
public int getMax(int x, int y) {
if(x >= y && x >= value)
return x;
else if(y >= value)
return y;
else
return value;
Java 练习题 1(第 5 页 共 14 页)
}
public static void main(String[] args) {
Test obj = new Test(10);
System.out.println(obj.getMax(20, 30));
}
}
五、程序填空题
1、请完善程序,使它得到正确的结果。
【操作说明】
如下 java 源程序文件中,定义了 Bicycle 类及其子类 MountainBike 类,Bicycle 类的成员变量 model
只能被类自身的方法所访问。该文件中“/*$1*/”和“/*$2*/”行是需要补充的语句,请仔细阅读程序,
补充相应的语句,使整个程序能够正常运行。(注意: 不改动程序的结构,不得增行或删行)
【运行结果】
China-GIANT ATX-660
【程序代码】
class Bicycle {
protected String make; //生产厂家
/*$1*/ String model; //型号 private
public Bicycle(String make, String model) {
this.make = make;
this.model = model;
}
public String toString() {
return(make + " " + model);
}
}
class MountainBike extends Bicycle {
public boolean hasSuspension; //悬挂
public MountainBike(String make, String model, boolean hasSuspension) {
/*$2*/ super(make,model);
this.hasSuspension = hasSuspension;
}
}
public class Test {
public static void main(String[] args) {
MountainBike giant = new MountainBike("China-GIANT","ATX-660",true);
System.out.println(giant);
}
}
2、请完善程序,使它得到正确的结果。
【操作说明】
剩余32页未读,继续阅读
资源评论
u010623480
- 粉丝: 0
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功