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.以下关于构造函数的描述错误的是 ( 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;
A.s==t B.(t) C.(s) D.(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=,a=7,y=,算术表达式x+a%3*(int)((x+y)%2/4)的值为:_______。
23. java语言种实现跳转的语句是break和 continue 。
24. 执行下列语句String s=”这是棵梨树”;int L=();L的值是 。
25. 用关键字 修饰的类不能再派生出子类。
26. java中复杂类型数据包括类、接口和 。
27. 容器是一种特殊的组件。AWT容器分为两类:外部容器和 。
28. 在java的异常类的层次组织结构中, 是所有异常类的父类,它是Object类的直接子类。
29. Java中的线程由一个虚拟处理机、CPU执行的代码和 代码操作的数据 等三部分组成。
30.在java中TCP/IPSocket连接是由系统包提供的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=;i>=0;i--)
(10) "a["+i+"]="+a[i]);
(11)}
(12)}
答: 行号: 改为:
行号: 改为:
得 分 |
(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) "Sum = " + sum);
(11) }
(12)}
答: 行号: 改为:
行号: 改为:
得 分 |
(1)public class ConstructTest
(2){
(3)private int i;
(4)private ConstructTest(){i=0}
(5)public void setI(int i){=i;}
(6)}
(7)class A
(8){
(9)public static void main(String args[]){
(10)ConstructTest c=new ConstructTest();
(11)=100;
(12)}
(13)}
答: 行号: 改为:
行号: 改为:
得 分 |
(1)import (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)"成功!!");
(10)}
(11)}
答: 行号: 改为:
行号: 改为:
得 分 |
(1)interface ShowMessage{
(2)void display(String s){ } }
(3)class TV extends ShowMessage
(4){public void display(String s ) { }}
(5)public class Test
(6){public static void main (String args[ ])
(7){ShowMessage sm;
(8)sm=new TV( );
(9)("长城牌电视机");
(10)}
(11)}
答: 行号: 改为:
行号: 改为:
程序分析题
41. 阅读以下程序,分析输出结果:
public class HelloWorld{
public static void main(String args[]){
boolean x=true;
boolean y=false;
"X&&Y="+(x&&y));
"X||Y="+(x||y));
}}
答:
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);
"type= " + type);
"flag= "+ flag);
}
}
答:
43. 阅读以下程序,分析输出结果:
class Employee{
public void Speak(){
"这是一个员工类");
}
}
class Manager extends Employee{
public void Speak (){
"这是一个经理类");
}
}
public class Test{
public static void main(String args[]){
Employee E1 = new Employee();
Employee E2 = new Manager();
();
();}
}
答:
44. 下列程序执行后,输出的第二和第三行是:
public class CatchDemo{
public static void main(String args[ ])
{
"这是一个异常处理的例子");
try {
int i=15;
i/=0;
}
catch(ArithmeticException e) {
"异常是:被0除");
}
finally{
"finally语句被执行");
}
}
}
答:第二行:
第三行:
45. 阅读以下程序,分析输出结果:
import .*;
public class HelloWorld {
public static void main(String[] args) {
File f = new File("");
try {
RandomAccessFile frw =
new RandomAccessFile(f,"rw");
double d1 = , d2 = ;
(d1);(d2);
(d1+d2); (d1-d2);
(0+8*2);
} catch (FileNotFoundException e) {
();
} catch (IOException e) {
();
}
}
}
答:
编程题
46. 设计计算阶乘的函数为:m(n)= n!。设计一个计算阶乘的方法和相应的类,并利用这个类计算m(2)、m(4)和m(8)。
47. 编程实现如下窗体,用户在文本框中输入字符,按upper按钮将文本框中的英文字符变成大写,按lower将文本框中的英文字符变成小写。
46.参考程序:
class F (1分)
{
int n;
F(int 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分)
"2的阶乘是"+());
"4的阶乘是"+());
"8的阶乘是"+()); (2分)
}
}
47.参考程序:
import .*;
import (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();
(upper);
(lower);
add(tf); add(p); setVisible(true);
pack();
(this);
(this); (3分)
}
public void actionPerformed(ActionEvent e) { (2分)
oString();
());
}
else if()==lower)
{
String s=().toString();
());
}
} (2分)
public static void main(String args[])
{
new Test(); (1分)
}
}
JAVA程序设计试题答案及评分参考
一. 单项选择题(每小题 1 分,共 20 分)
二. 填空题 (每空 1 分, 共 10 分)
小程序Applet 22. 2.5 23. continue 24. 5
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=;i>=0;i--)(2分)
37. 行号:3 改为:int sum=0; (2分)
行号:8 改为:n--;(2分)
38. 行号:4 改为:public ConstructTest(){i=0;} (2分)
行号:11 改为:(100); (2分)
39. 行号:1 改为:package (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
六.编程题(每小题 10 分,共 20 分)
46.参考程序:
class F (1分)
{
int n;
F(int 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分)
"2的阶乘是"+());
"4的阶乘是"+());
"8的阶乘是"+()); (2分)
}
}
47.参考程序:
import .*;
import (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();
(upper);
(lower);
add(tf); add(p); setVisible(true);
pack();
(this);
(this); (3分)
}
public void actionPerformed(ActionEvent e) { (2分)
oString();
());
}
else if()==lower)
{
String s=().toString();
());
}
} (2分)
public static void main(String args[])
{
new Test(); (1分)
}
}