1. 在JAVA编程中,Java编译器会将Java程序转换为(
a)
A.字节码 B.可执行代码 C.机器代码 D.以上都不对 2. Java语言中,负责并发管理的机制是( d )
A.垃圾回收 B.虚拟机 C.代码安全 D.多线程 3. 现有一变量声明为boolean aa;下面赋值语句中正确的是 ( a ) A.aa=false;
B.aa=False;
C.aa=\"true\"; D.aa=0; 4. 下列不正确的Java语言标识符是( c )
A.Sky B.$Computer C.for D.NULL 5. 下列不是Java关键字的是 ( d )
A.abstract B.false C.native D.sizeof 6. 下列符号中可以在java程序里表示单行注释的是( c )
A.-- B./* ……*/ C.// D./** ……*/ 7. 以下关于构造函数的描述错误的是 ( a ) A.每个类有且只能有一个构造函数。
B.构造函数是类的一种特殊函数,它的方法名必须与类名相同 C.构造函数的主要作用是完成对类的对象的初始化工作 D.一般在创建新对象时,系统会自动调用构造函数 8. Panel和Applet的默认布局管理器是( b )
A.CardLayout B.FlowLayout C.BorderLayout D.GridLayout 9. 在java的一个异常处理中,可以包含多个的语句块是( d )。 A.try
B.finally
C.throws
D.catch
10. 下列修饰符中,能够使得某个成员变量只能被它自身和它的子类访问到的是( a )
A.protected
B.public
C.private
D.应不加修饰符
11. 下列叙述中,错误的是( b)
A、File类能够存储文件属性 B、File类能够读写文件
C、File类能够建立文件 D、File类能够获取文件目录信息 12.下列描述中,错误的是( a )
A.java要求编程者管理内存 B.java的安全性体现在多个层次上 C.java中没有指针机制 D.java有多线程机制
13. 执行完以下代码int [ ] x = new int[10];后,以下哪项说明是正确的(a )
A.x[9]为0 B.x[9]未定义 C.x[10]为0 D.x[0]为空
14. 有程序片段如下,以下表达式结果为true的是( b )
Float s=new Float(0.1f); Float t=new Float(0.1f); Double u=new Double(0.1); A.s==t
B.s.equals(t)
C.u.equals(s)
D.t.equals(u)
15. 下列选项中,不属于字符型常量的是( b )
A.’a’
B.”C”
C.’\\n’
D.’\\123’
16. 下列叙述错误的是( d)
A.在接口中定义的方法都是没有方法体的抽象方法 B.一个java类只能有一个父类,但可以实现多个接口 C.在类声明中,用implements关键字声明该类实现的接口 D.定义接口时使用implements关键字。
17. 对于同一类中的两个方法,在判断它们是不是重载方法时,不考虑( c )
A.参数个数
B.参数类型
C.返回值类型
D.参数顺序
18. 在applet的方法中,可关闭小应用程序并释放其占用资源的是( d )
A.stop()
B.paint() C.init()
D.destroy()
19. 下列叙述错误的是( c )
A.java程序的输入输出功能是通过流来实现的
B.java中的流按照处理单位可分成两种:字节流和字符流 C.InputStream是一个基本的输出流类。
D.通过调用相应的close()方法关闭输入输出流
20. 下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的( c )
A.public
B.private
C.static
D.final
填空题
21. java程序分为两类:java应用程序Application和 applet 。 22. 设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)((x+y)%2/4)的值为:_______。 23. java语言种实现跳转的语句是break和 continue 。
24. 执行下列语句String s=”这是棵梨树”;int L=s.length();L的值是 。 25. 用关键字 修饰的类不能再派生出子类。 26. java中复杂类型数据包括类、接口和 。
27. 容器是一种特殊的组件。AWT容器分为两类:外部容器和 。
28. 在java的异常类的层次组织结构中, 是所有异常类的父类,它是Object类的直接子类。
29. Java中的线程由一个虚拟处理机、CPU执行的代码和 代码操作的数据 等三部分组成。
30.在java中TCP/IPSocket连接是由系统包java.net提供的ServerSocket类和 Socket 类完成的。 名词解释
31. java虚拟机 32. 继承 33. 布局管理 34. 接口回调 35. Socket套接字 程序改错
36. 下列程序完成对一维数组的声明、创建、赋值和逆序输出。 (1)public class Test (2){
(3)public static void main (String args[ ]) (4){
(5)int i;
(6)int a[5 ] = new int[5]; (7)for(i=0; i<5 ; i++) (8)
a[ i ] = i;
(9)for(i=a.length;i>=0;i--)
(10) System.out.println(\"a[\"+i+\"]=\"+a[i]); (11)} (12)}
答: 行号: 改为: 行号: 改为:
37. 下列程序求解1,2,3,……10的累加和并输出 (1)public class Test {
(2)public static void main(String args[]) { (3) int sum; (4) int n=10; (5) while (n>0) (6) { (7) sum+=n; (8) n++;
(9)
}
(10) System.out.println(\"Sum = \" + sum); (11) } (12)}
答: 行号: 改为: 行号: 改为: 得 分
得 分
38. 下列程序完成对 ConstructTest对象c的私有成员i赋值100的功能。 (1)public class ConstructTest (2){
(3)private int i;
(4)private ConstructTest(){i=0} (5)public void setI(int i){this.i=i;} (6)} (7)class A (8){
(9)public static void main(String args[]){ (10)ConstructTest c=new ConstructTest(); (11)c.i=100; (12)} (13)}
答: 行号: 改为: 行号: 改为:
得 分
39. 下列程序定义TestPackage类,它继承自Test类,同时将其打包至China.beijing.Tsinghua中。阅读代码,并找出错误的地方。 (1)import China.beijing.Tsinghua; (2)public class TestPackage : Test{ (3)public static void main(String args[] ){ (4)new TestPackage ().print(); (5)}
(6)} (7)class Test{ (8)public void print(){
(9)System.out.println(\"成功!!\"); (10)} (11)}
答: 行号: 改为: 行号: 改为:
40. 下列程序演示了接口的使用,找出其中出错的地方并改正。(1)interface ShowMessage{
(2)void display(String s){ System.out.println(s); } } (3)class TV extends ShowMessage
(4){public void display(String s ) { System.out.println(s); }} (5)public class Test
(6){public static void main (String args[ ]) (7){ShowMessage sm; (8)sm=new TV( );
(9)sm.display(\"长城牌电视机\"); (10)} (11)}
答: 行号: 改为: 行号: 改为:
得 分 程序分析题
41. 阅读以下程序,分析输出结果: public class HelloWorld{
public static void main(String args[]){ }}
答:
42. 阅读以下程序,分析输出结果: public class Test
{ public static void main(String args[]){
int score = 80; int x = -100;
String type = score < 60 ? \"不及格\" : \"及格\"; int flag = x > 0 ? 1 : (x == 0 ? 0 : -1); System.out.println(\"type= \" + type); System.out.println(\"flag= \"+ flag); } }
答:
43. 阅读以下程序,分析输出结果:
boolean x=true; boolean y=false;
System.out.println(\"X&&Y=\"+(x&&y)); System.out.println(\"X||Y=\"+(x||y));
class Employee{ public void Speak(){
System.out.println(\"这是一个员工类\"); } }
class Manager extends Employee{ public void Speak (){
System.out.println(\"这是一个经理类\"); } }
public class Test{
public static void main(String args[]){ Employee E1 = new Employee(); Employee E2 = new Manager(); E1.Speak(); E2.Speak();} }
答:
44. 下列程序执行后,输出的第二和第三行是: public class CatchDemo{
public static void main(String args[ ]) {
System.out.println(\"这是一个异常处理的例子\"); try { int i=15; i/=0;
}
catch(ArithmeticException e) { System.out.println(\"异常是:被0除\"); } finally{
System.out.println(\"finally语句被执行\"); } } }
答:第二行: 第三行:
45. 阅读以下程序,分析输出结果: import java.io.*; public class HelloWorld {
public static void main(String[] args) { File f = new File(\"data.dat\"); try {
RandomAccessFile frw =
new RandomAccessFile(f,\"rw\"); double d1 = 123.456, d2 = 456.789; frw.writeDouble(d1);frw.writeDouble(d2); frw.writeDouble(d1+d2); frw.writeDouble(d1-d2); System.out.println(frw.length()); frw.seek(0+8*2);
System.out.println(frw.readDouble());
} catch (FileNotFoundException e) {
e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
答: 编程题
46. 设计计算阶乘的函数为:m(n)= n!。设计一个计算阶乘的方法和相应的类,并利用这个类计算m(2)、m(4)和m(8)。
47. 编程实现如下窗体,用户在文本框中输入字符,按upper按钮将文本框中的英文字符变成大写,按lower将文本框中的英文字符变成小写。
46.参考程序:
class F (1分) {
int n;
F(int n){this.n=n;} (2分) int fun() {
int result=1;
for(int i=1;i<=n;i++) result*=i; (2分) return result; } }
public class Test {
public static void main(String args[]) (1分) {
F f1=new F(2); F f2=new F(4);
F f3=new F(8); (2分)
System.out.println(\"2的阶乘是\"+f1.fun()); System.out.println(\"4的阶乘是\"+f2.fun());
System.out.println(\"8的阶乘是\"+f3.fun()); (2分) } }
47.参考程序:
import java.awt.*;
import java.awt.event.*; (1分)
public class Test extends Frame implements ActionListener{ private TextField tf;
private Button upper = new Button(\"upper\"); private Button lower = new Button(\"lower\"); Test(){
setLayout(new FlowLayout()); tf = new TextField(20); Panel p = new Panel(); p.add(upper); p.add(lower);
add(tf); add(p); setVisible(true); pack();
1分) ( }
upper.addActionListener(this);
lower.addActionListener(this); (3分) }
public void actionPerformed(ActionEvent e) { (2分) // TODO Auto-generated method stub if(e.getSource()==upper) {
String s=tf.getText().toString(); tf.setText(s.toUpperCase()); }
else if(e.getSource()==lower) {
String s=tf.getText().toString(); tf.setText(s.toLowerCase()); }
} (2分) public static void main(String args[]) {
new Test(); (1分) }
JAVA程序设计试题答案及评分参考
一. 单项选择题(每小题 1 分,共 20 分)
1.A 2.D 3.A 4.C 5.D 6.C 7.A 8.B 9.D 10.A 11.B 12.A 13.A 14.B 15.B 16.D 17.C 18.D 19.C 20.C
二. 填空题 (每空 1 分, 共 10 分)
21.java小程序Applet 22. 2.5 23. continue 24. 5 25.final 26. 数组 27. 内部容器 28. Throwable 29.数据 30. Socket
三. 名词解释 (每小题 2 分, 共 10 分) 31. java虚拟机是软件模拟的计算机,它可以在任何处理器上安全兼容地执行保存在.class
文件中的字节码。(1分)java虚拟机地建立需要针对不同的软硬件平台来实现。(1分) 32. 继承是面向对象的基本特征之一。当对象A是对象B地特例时称对象A继承了对象B。
(1分)在类地继承体系中,作为特例的类称为子类,而子类所继承的类称为父类。(1分)
33. 布局就是组件的位置。在GUI程序中,通过布局管理器对象管理组件在容器中的位置。
(1分)java提供了五种布局:顺序布局FlowLayout、边界布局BorderLayout、网格布局GridLayout、卡式布局CardLayout和网格包布局GridBagLayout。(1分) 34. 接口回调是多态的另一种体现。(1分)接口回调就是指当定义接口时可以把使用某一
接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口中的方法。(1分)
35. Socket套接字是网络通信的一个重要机制(1分),是指两台计算机上运行的两个程序
之间的双向通信的连接点,这个双向通信链路上每一端都称为一个Socket。(1分)
四. 程序改错题 (每小题 4 分, 共 20 分)
36. 行号:6 改为:int a[ ] = new int[5]; (2分) 行号:9 改为:for(i=a.length-1;i>=0;i--)(2分) 37. 行号:3 改为:int sum=0; (2分) 行号:8 改为:n--;(2分)
38. 行号:4 改为:public ConstructTest(){i=0;} (2分) 行号:11 改为:c.setI(100); (2分) 39. 行号:1 改为:package China.beijing.Tsinghua; (2分) 行号:2 改为: public class TestPackage extendsTest{(2分) 40. 行号:2 改为:void display(String s); }(2分)
行号:3 改为:class TV implements ShowMessage (2分)
五. 程序分析题 (每小题 4 分, 共 20 分) 41. X&&Y=false
X||Y=true 42. type= 及格
flag= -1 43. 这是一个员工类
这是一个经理类 44. 异常是:被0除 finally语句被执行 45. 32
580.245
六.编程题(每小题 10 分,共 20 分) 46.参考程序:
class F (1分) {
int n;
F(int n){this.n=n;} (2分) int fun() {
int result=1;
for(int i=1;i<=n;i++) result*=i; (2分) return result; } }
public class Test {
public static void main(String args[]) (1分) {
F f1=new F(2); F f2=new F(4);
F f3=new F(8); (2分)
System.out.println(\"2的阶乘是\"+f1.fun()); System.out.println(\"4的阶乘是\"+f2.fun());
System.out.println(\"8的阶乘是\"+f3.fun()); (2分) } }
47.参考程序:
import java.awt.*;
import java.awt.event.*; (1分)
public class Test extends Frame implements ActionListener{ (1分) private TextField tf;
private Button upper = new Button(\"upper\"); private Button lower = new Button(\"lower\"); Test(){
setLayout(new FlowLayout()); tf = new TextField(20); Panel p = new Panel(); p.add(upper); p.add(lower);
add(tf); add(p); setVisible(true); pack();
upper.addActionListener(this);
lower.addActionListener(this); (3分) }
public void actionPerformed(ActionEvent e) { (2分) // TODO Auto-generated method stub if(e.getSource()==upper) {
String s=tf.getText().toString(); tf.setText(s.toUpperCase()); }
else if(e.getSource()==lower) {
String s=tf.getText().toString(); tf.setText(s.toLowerCase()); }
} (2分) public static void main(String args[]) {
new Test(); }
}
1分) (
因篇幅问题不能全部显示,请点此查看更多更全内容