
一、单项选择题
1.作为Java应用程序入口的main方法,其声明格式可以是( )。
A、public static void main(String[] args)
B、public static int main(String[] args)
C、public void main(String[] args)
D、public int main(String[] args)
2.在一个合法的Java源程序文件中定义了3个类,其中属性为public的类可能有( )个。
A、0 B、1 C、2 D、3
3.下面( )单词是Java语言的关键字。
A、sizeof B、abstract C、null D、String
4.下面( )语句不会出现编译警告或错误。
A、float f = 1.3; B、char c = "a"; C、byte b = 25; D、boolean d = null;
5.下面程序片段输出的是( )。
int i = 0, j = 9;
do {
if(i++ > --j)
break;
} while(i < 4);
System.out.println("i = " + i + " and j = " + j);
A、i = 4 and j = 4 B、i = 5 and j = 5 C、i = 5 and j = 4 D、i = 4 and j = 5
6.对于下面( )类定义,可以通过“new J_Class()”生成类J_Class的实例对象。
A、public class J_Class {
public J_Class(void) { }
}
B、public class J_Class { }
C、public class J_Class {
public J_Class(String s) { }
}
D、public class J_Class {
public void J_Class() { }
public J_Class(String s) { }
}
7.要求设计一个类,它拥有一个特殊的成员域,该成员域必须能够被这个类的子类访问到,但是不能被不在同一个包内的其他类访问到。下面( )可以满足上述要求。
A、该成员域的封装属性设置为public
B、该成员域的封装属性设置为private
C、该成员域的封装属性设置为protected
D、该成员域不需要特殊的封装属性
8.关于下面程序,( )的结论是正确。
public class J_Test {
public static void main(String[] args) {
int[] a = new int[5];
boolean[] b = new boolean[5];
System.out.println(a[4]);
System.out.println(b[5]);
}
}
A、程序可以通过编译并正常运行,结果输出“0false”
B、程序可以通过编译并正常运行,结果输出“1true”
C、程序无法通过编译
D、程序可以通过编译,但无法正常运行
9.下面这段代码会产生( )个String对象。
String s1 = "hello";
String s2 = s1.substring(2, 3);
String s3 = s1.toString();
String s4 = new StringBuffer(s1).toString();
A、1 B、2 C、3 D、4
10.关于下面程序,( )的结论是正确的。
public class J_Test {
public static void main(String[] args) {
try {
return;
}
finally {
System.out.println("1");
}
}
}
A、上面程序含有编译错误 B、上面程序在运行时会产生一个运行时异常
C、上面程序会正常运行,但不产生任何输出 D、上面程序输出“1”
11.用“new FileOutputStream(“data.txt”,true)”创建一个FileOutputStream实例对象,则下面( )说法是正确的。
A、如果文件“data.txt”存在,则将抛出IOException异常
B、如果文件“data.txt”存在,则将在文件的末尾开始添加新内容
C、如果文件“data.txt”存在,则将覆盖掉文件中已有的内容
D、如果文件“data.txt”不存在,则将抛出IOException异常
12.改变当前容器的布局方式,( )。
A、调用方法setLayout
B、容器一旦生成,它的布局方式就不能改变
C、调用方法setLayoutManager
D、调用方法updateLayout
13.关于小应用程序执行过程的生命周期,( )的结论是正确的。
A、当小应用程序从运行态进入停止态时,首先要调用的成员方法是pause()
B、当关闭正处于运行态的小应用程序时,首先要调用的成员方法是destory()
C、当小应用程序从停止态进入运行态时,首先要调用的成员方法是paint()
D、当关闭正处于停止态的小应用程序时,首先要调用的成员方法是destory()
14.下面( )方法可以用来加载JDBC驱动程序。
A、类java.sql.DriverManager的getDriver方法
B、类java.sql.DriverManager的getDrivers方法
C、java.sql.Driver的方法connect
D、类java.lang.Class的forName方法
二、概念填空题
1.Java语言通过 机制简化了程序的内存管理。
2.Java标识符是由 组成的字符序列。
3.面向对象的计算机语言一般应具有3个基本特性,分别是 。
4.Java中的 类是最顶层的类,所有其他的类都是它直接或间接的子类。
5.在Java的基本数据类型中,char类型采用Unicode编码方案,这样,无论是中文字符还是英文字符,都是占 字节内存空间。
6.类的静态成员属于这个类的 。
7.一个类要具有可序列化的特性一般就必须实现接口 。
8.类String本身负责维护一个字符串池。该字符串池存放 所指向的字符串示例,以及调用过类String成员方法intern后的字符串示例。
三、判断题
1、父类的构造方法不可以被子类继承。( )
2、在接口中定义的方法都只能是没有方法体的抽象方法。( )
3、Java程序分成应用程序和小应用程序两类,所以一个Java程序不可能既是应用程序,又是小应用程序。( )
4、javadoc是一种从文档注释生成HTML帮助文件的工具。它可以处理在java源程序中介于“/*”和“*/”之间的注释,并生成相应的程序文档。( )
5、采用事件适配器比采用事件的执行效率要高,因为采用事件适配器可以只处理所需处理的事件。( )
6、每个java.sql.Statement实例对象只能对应一个java.sql.ResultSet实例对象,所以如果执行SQL语句返回多个结果,一般需要分多次取得返回结果。( )
四、程序改错题
1、请改正程序中的错误,使它得到正确的结果。
【操作说明】
如下java源程序文件中“/*$1*/”行中的语句有错误,请改正。(注意: 不改动程序的结构,不得增行或删行)
【运行结果】
Base function
Derived function
【程序代码】
class Base {
public void fun() {
System.out.println("Base function");
}
}
public class Test extends Base {
public void fun() {
System.out.println("Derived function");
}
public static void main(String[] args) {
Base b = new Base();
Test dp, d = new Test();
dp = b; /*$1*/
b.fun( );
dp.fun( );
}
}
2、请改正程序中的错误,使它得到正确的结果。
【操作说明】
如下java源程序文件中“/*$1*/”行中的语句有错误,请改正。(注意: 不改动程序的结构,不得增行或删行)
【运行结果】
a=10
【程序代码】
class One {
private int a;
public void setOne(int x) { a=x; }
public void showOne(){ System.out.println("a=" + a); }
}
public class Test extends One {
public void setTwo(int x) { setOne(x); }
public static void main(String[] args) {
Test obj = new Test();
obj.setTwo(10);
System.out.println("a=" + obj.a); /*$1*/
}
}
五、程序填空题
1、请完善程序,使它得到正确的结果。
【操作说明】
如下java源程序文件中,程序的功能是在数组中查找键盘键入的整数。如果找到则输出该整数在数组中的序号,否则输出“not found”。例如,运行程序,输入99,程序输出:99在数组中的序号是5;输入59,程序输出:not found。该文件中“/*$1*/”、“/*$2*/”和“/*$3*/”行是需要补充的语句,请仔细阅读程序,补充相应的语句,使整个程序能够正常运行。(注意: 不改动程序的结构,不得增行或删行)
【程序代码】
import java.io.*;
import java.util.Scanner;
public class J_Test {
public static void main(String[] args) throws IOException {
int /*$1*/ = {83,75,92,67,55,99,78,61};
Scanner in = new Scanner(System.in);
int x = Integer.parseInt(in.readLine());
int index = -1;
for(int i = 0; /*$2*/ ; ++i) {
if(a[i] == x) {
index = i;
break;
}
}
if( /*$3*/ )
System.out.println("not found");
else
System.out.println(x + "在数组中的序号是" + index);
}
}
2、请完善程序,使它得到正确的结果。
【操作说明】
如下java源程序文件中,程序的功能是判断回文(字符串顺读和倒读都一样,则是回文。如“abba”是回文)。方法palindrome判断字符串s是否是回文,若是回文,返回true,否则返回false。该文件中“/*$1*/”、“/*$2*/”和“/*$3*/”行是需要补充的语句,请仔细阅读程序,补充相应的语句,使整个程序能够正常运行。(注意: 不改动程序的结构,不得增行或删行)
【程序代码】
import java.util.Scanner;
public class J_Test {
/*$1*/
{
int len = s.length();
int h = 0, t = len - 1;
while(h <= t) {
if(s.charAt(h) != s.charAt(t))
break;
h++;
t--;
}
if(/*$2*/)
return true;
else
return false;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入字符串: ");
String s = /*$3*/
if(palindrome(s))
System.out.println(s + " 是回文");
else
System.out.println(s + " 不是回文");
}
}
3、请完善程序,使它得到正确的结果。
【操作说明】
如下java源程序文件中,程序的功能是在图形界面上显示两个按钮,当用户按下一个活动按钮时,该按钮将被置成灰色。当用户按下一个活动按钮时,另一个按钮将处于激活状态。该文件中“/*$1*/”和“/*$2*/”行是需要补充的语句,请仔细阅读程序,补充相应的语句,使整个程序能够正常运行。(注意: 不改动程序的结构,不得增行或删行)
【程序代码】
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class J_Test extends JFrame {
JButton m_button[] = new JButton[2];
public J_Test() {
Container c = getContentPane();
m_button[0] = new JButton("1");
m_button[0].addActionListener(a);
c.add(m_button[0],BorderLayout.NORTH);
m_button[1] = new JButton("2");
m_button[1].addActionListener(a);
c.add(m_button[1],BorderLayout.SOUTH);
}
/*$2*/
{
public void actionPerformed(ActionEvent e) {
if(e.getSource() == m_button[0]) {
m_button[0].setEnabled(false);
m_button[1].setEnabled(true);
}
else {
m_button[0].setEnabled(true);
m_button[1].setEnabled(false);
}
}
};
public static void main(String[] args) {
J_Test app = new J_Test();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize(180, 90);
/*$1*/
}
}
六、程序阅读题
1、读程序,写出和程序输出格式一致的输出结果。
public class J_Test {
public static void main(String[] args) {
int sum = 0;
outer:
for(int i = 1; i < 10; ++i) {
inner:
for(int j = 1; j < 3; ++j) {
sum += j;
if(i + j > 6)
break inner;
}
}
System.out.println("sum = " + sum);
}
}
输出结果:
2、读程序,写出和程序输出格式一致的输出结果。
class J_SuperClass {
void mb_method() {
System.out.println("J_SuperClass::mb_method");
}
static void mb_methodStatic() {
System.out.println("J_SuperClass::mb_methodStatic");
}
}
public class J_Test extends J_SuperClass {
void mb_method() {
System.out.println("J_Test::mb_method");
}
static void mb_methodStatic() {
System.out.println("J_Test::mb_methodStatic");
}
public static void main(String[] args) {
J_SuperClass a = new J_Test();
a.mb_method();
a.mb_methodStatic();
J_Test b = new J_Test();
b.mb_method();
b.mb_methodStatic();
}
}
输出结果:
3、读程序,写出和程序输出格式一致的输出结果。
class ValHold {
public int i = 10;
}
public class ObParm {
public static void main(String[] args) {
ObParm o = new ObParm();
o.amethod();
}
public void amethod() {
int i = 99;
ValHold v = new ValHold();
v.i = 30;
another(v, i);
System.out.println(v.i + " " + i);
}
public void another(ValHold v, int i) {
i = 0;
v.i = 20;
ValHold vh = new ValHold();
v = vh;
System.out.println(v.i + " " + i);
}
}
输出结果:
4、读程序,写出和程序输出格式一致的输出结果。
class J_SuperClass {
int m_data;
J_SuperClass() {
mb_add(1);
}
public void mb_add(int i) {
m_data += i;
}
public void mb_print() {
System.out.println(m_data);
}
}
class J_SubClass extends J_SuperClass {
J_SubClass() {
mb_add(2);
}
public void mb_add(int i) {
m_data += i * 2;
}
}
public class J_Test {
public static void mb_method(J_SuperClass a) {
a.mb_add(6);
a.mb_print();
}
public static void main(String[] args) {
mb_method(new J_SubClass());
}
}
输出结果:
5、读程序,写出和程序输出格式一致的输出结果。
public class J_Test {
public static void mb_method(int i) {
try {
if(i == 1)
throw new Exception();
System.out.print("1");
}
catch(Exception ex) {
System.out.print("2");
return;
}
finally {
System.out.print("3");
}
System.out.print("4");
}
public static void main(String[] args) {
mb_method(0);
mb_method(1);
}
}
输出结果:
6、读程序,从A、B、C、D中选择最合适的答案。
import java.awt.*;
import javax.swing.*;
public class J_Test extends JFrame {
public static void main(String[] args) {
J_Test app = new J_Test();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container ct = app.getContentPane();
ct.setLayout(new GridLayout(1, 2));
JButton[] b = { new JButton("one"),new JButton("Two"),new JButton("Three") };
ct.add(b[0]);
ct.add(b[1]);
ct.add(b[2]);
app.setSize(220, 70);
app.setVisible(true);
}
}
(A)程序可以通过编译并正常运行,结果在程序界面上从左到右依次排列三个按钮
(B)程序可以通过编译并正常运行,结果在程序界面上三个按钮分成两行排列
(C)程序可以通过编译并正常运行,结果在程序界面上只出现两个按钮
(D)程序无法通过编译
输出结果(A、B、C、D中选择):
七、程序设计题
【程序描述】
接收用户输入的m个正整数,返回m个正整数数字逆序后的结果值。例如,输入一个整数7631,输出1367。
【程序输入】
第一行一个正整数m,表示有m组测试数据;以下m行,每行一个正整数n。
【程序输出】
共m行,对于每组输入数据输出一行,即数字逆序后的结果值。
【输入示例】(↙表示回车)
3↙
7631↙
101↙
51↙
【输出示例】
1367
101
15
