2024年4月1日发(作者:潜温书)
《Java语言程序设计》习题集
(软件工程、计算机科学与技术专业)
南京航空航天大学继续教育学院
1/58
选择题 填空题 改错题 分析题 编程题
选择题
题
1. Appletviewer程序的主要功能是( B )
A.编译Java字符界面的程序 B.运行Java Applet程序
C.运行Java字符界面的程序 D.编译Java Applet程序
2. Frame容器默认的布局管理器是( C )
A. 没有 B. FlowLayout C. BorderLayout D. GridLayout
3. GUI是指(B )
A.编程语言 B.图形用户界面
C.全球统一标记 D.操作系统
4. J2EE是指( B )
A.Java2微型版
C.Java2标准版
B.Java2企业版
D.Java2程序
5. Java Application源程序的主类是指类中包含有( A )。
A. main方法 B. toString方法 C. init方法 D. stop方法
6. Java编译器产生的文件扩展名是( B )
A. .java B. .class C. .html D. .exe
7. Java程序中,数据类型转换分为自动类型转换和( A )
A.强制类型转换 B.隐式类型转换 C.字符类型转换 D.没有
8. Java程序中,位数多的数据类型向位数少的数据类型转换称为(A )
A.强制类型转换 B.隐式类型转换 C.自动类型转换 D.字符类型转换
9. Java程序中,位数少的数据类型向位数多的数据类型转换称为( C )
A.强制类型转换 B.数据转换 C.自动类型转换 D.字符类型转换
10. Java程序中所有类的直接或间接父类是类(C )
A.abstract B.this C.Object
11. Java的多线程机制是使应用程序能够( A )
A. 并行执行 B. 等待执行 C. 顺序执行
12. Java的前身是 ( C )
A.C B.C++ C.Oak
D.final
D. 按优先级执行
D.Basic
13. Java既可以运行在PC机器上,也可以运行在苹果机器上,这种属性被称为( C )
A.面向对象 B.解释执行 C.平台无关性 D.分布式开发
14. Java虚拟机被称为 ( A )
A.JVM B.JDK C.JSP D.JNI
D.
15. Java虚拟机自动加载的基础类库包是( A )
A. B. C.
16. Java应用程序的编写和执行分3步执行,下列错误的步骤是( B )
A. 编写源代码 B. 编写HTML文件
C. 解释执行 D. 编译源代码
2/58
17. Java语言有许多优点和特点,下列选项中反映Java程序并行机制的特点的是( B )
A.安全 B.多线程 C.跨平台 D.可移植
18. Java语言中,关于整型数组的说法,正确的是( C )
A.一个数组中所有的元素可以不是整数类型
B.数组的下标必须为一个正整数
C.在声明数组时,不能直接在方括号中指明数组元素的个数
D.数组一旦创建之后,可以再改变其长度
19. Java语言中,字符串是作为对象来处理的。关于String和StringBuffer类,以下说法中,错误的是(C )
A.String类处理固定长度的字符串
B.StringBuffer类处理可变长度的字符串
C.String类不仅可以处理固定长度的字符串,也可以处理可变长度的字符串
D.它们都是最终类,即final类
20. Java语言中,字符型数据类型的字节数为( B )
A. 0 个 B. 1个 C.2 个 D. 4个
21. Java语言中创建一个对象使用的关键字为( C )
A.class B.interface C.new
22. Java语言中基本数据类型包括( A )
A. 整数型、浮点型、字符型、布尔型
B. 整数型、浮点型、字符型、数组型
C. 整数型、浮点型、数组型、布尔型
D. 整数型、数组型、字符型、布尔型
23. Java源程序经过编译器编译之后,生成的字节码文件后缀名为( C )
A..java B..obj C..class D..exe
24. Java源代码文件的扩展名为java,经过编译后,生成的文件扩展名是(B )
A..Java B..class C..txt D..exe
25. Java中标准输出输入包是( B)
A. B. C.
26. Java中现成的Java类库被称为( B )
A. Map B. Java API C. Object
D.
D. class
D.create
27. main方法是Java Application程序执行的入口点,关于main方法头的正确定义是( B )
A. public static void main()
B. public static void main(String args[])
C. public static int main(String [] arg)
D. public void main(String arg[])
28. Swing组件中的复选框组件类是( B )
A.JLabel B.JCheckBox C.JButton D.JRadioButton
29. 把窗口分成东、南、西、北、中五个明显区域的布局管理器是( B )
A.FlowLayout B.BorderLayout C.CardLayout D.GridLayout
30. 表达式 !(2>3 | | 3>2) 结果是( A )
A.false B.true C.0
31. 表达式结果为1的是( D )
A.(1*0>0*1)?1:0
C.(1*0!=0*1)?1:0
D.1
B.(1*0<0*1)?1:0
D.(1*0= =0*1)?1:0
3/58
32. 表示一个类定义开始的关键字是( C )
A. void B. public C. class
33. 不会产生异常的情况是( C )
A.int i=12/0;
C.double i=3;
D. static
B.数组下标越界
D.数组元素个数为负数
34. 不能再派生子类的类定义时应当加上的访问修饰符是( D )
A.abstract B.this C.super D.final
35. 不属于Java关键字的是( A )
A.delete B.new C.package
36. 不属于Java语言循环语句的关键字是( D )
A.for B.do
C.while D.loop
37. 不属于Java语言整数类型的数据类型是( C )
A.short B.byte C.uint D.long
D.super
38. 不属于Sun公司JDK中标准Java布局管理器的是( C )
A.FlowLayout B.GridLayout
C.FreeLayout D.BorderLayout
39. 不属于面向对象的设计方法的是( B )
A.封装 B.结构化 C.继承 D.抽象
D.NULL
40. 不正确的Java语言标识符是( D )
A.Sky B.$Computer C.for
41. 常见的系统定义的异常中,数组越界异常是( A )
A.ArrayIndexOutOfBoundsException B.IOException
C.NullPointerException D.ArithmeticException
42. 创建一个标识有“关闭”按钮的语句是( D )
A. TextField b=new TextField("关闭");
B. Label b=new Label("关闭");
C. Checkbox b=new Checkbox("关闭");
D. Button b=new Button("关闭");
43. 创建一个二维数组a,其中较高一维含两个元素,每个元素又由3个整型量构成,下列Java语句中能
实现上述要求的是( C )
A.int a[][]; B.int a=new int[2][3];
C.int a[][]=new int[2][3]; D.int a[][]=int [2][3];
44. 当Frame的大小被改变时,Frame中的按钮的位置可能被改变但是大小不变,则应使用的布局管理器
是( B )
A.BorderLayout B.FlowLayout
C.CardLayout D.GridLayout
45. 当创建Java Applet且第一次使用支持Java的浏览器载入时,就会执行的方法是( A )
A. init() B. start() C. stop() D. paint()
46. 定义类头时,不可能用到的关键字是( B )
A. class B. private C. extends D. public
4/58
47. 对于包,叙述错误的是( B )
A. 包声明表示该文件中声明的全部类都属于这个包
B. 包声明语句可以放在源文件的任意位置
C. 包声明语句前面只能有注释和空格
D. 用户可以定义自己的包
48. 对于方法void sort(int x),以下不能作为这个方法的重载的声明的是( A )
A. public float sort(float x) B. int sort(int y)
C. double sort(int x,int y) D. void sort(double y)
49. 对于同一类中的两个方法,在判断它们是不是重载方法时,不考虑的因素是( C )
A.参数个数 B.参数类型 C.返回值类型 D.参数顺序
50. 对于一维数组a[10],下列对数组的引用正确的是( B )
A. a[10] B. a[0] C. a[3/1.0] D. a[3.4]
51. 方法内定义的变量称为( C )
A.成员变量 B.引用变量 C.局部变量 D.静态变量
52. 关于fillRect()方法和drawRect()的方法,表述正确的是( C )
A.fillRect()表示绘制边框矩形,drawRect()表示绘制填充矩形
B.fillRect()和drawRect()都表示绘制边框矩形
C.drawRect()表示绘制边框矩形,fillRect()表示绘制填充矩形
D.fillRect()和drawRect()都表示绘制填充矩形
53. 关于Java语言的说法,错误的是( D )
A.Java通过JVM实现了不同操作系统之上的平台无关性
B.Java不生成可执行代码,而是字节码
C.需要在当前操作系统安装Java环境,才可以运行Java程序
D.无需任何设置,就可以在当前操作系统上直接运行Java程序
54. 关于Java整型变量的说法,正确的是( D )
A.byte为2个字节长度 B.short为4个字节长度
C.int为6个字节长度 D.long为8个字节长度
55. 关于Java中类的构造方法的说法中,正确的是( C )
A.构造方法可以不和其所属类同名
B.构造方法不可以使用new运算符调用
C.一个类可以有多个构造方法
D.构造方法可以有入口参数,但返回类型为void
56. 关于包声明的说法,正确的是( D )
A.包声明语句之前不能有注释
B.一个源文件中可以有多条包声明语句
C.包声明语句可以放在源文件的任意位置
D.一个源文件中最多只能有一条包声明语句
57. 关于被保护访问控制符protected修饰的成员变量,下面说法正确的一项是( A )
A. 可以被3种类所引用,分别是该类本身、与它在同一个包中的其他类、在其他包中该类的子类
B. 可以被两种类访问和引用:该类本身和该类的所有子类
C. 只能被该类自身所访问和修改
D. 只能被同一个包中的类访问
5/58
58. 关于构造方法的说法,错误的是( C )
A.构造方法名必须与其类名相同。
B.构造方法没有返回值,但可以有参数。
C.一个类只能有一个构造方法。
D.构造方法只能在创建对象时用new命令调用。
59. 关于构造方法的说法,正确的是( A )
A. 构造方法名必须与类名相同
B. 有返回值
C. 不能由编程人员在类中定义
D. 不可以重载实现不同的构造方法
60. 关于构造函数的说法,正确的是( C )
A.构造函数不能有参数 B.构造函数的返回类型为空
C.构造函数可以不定义 D.构造函数必须定义
61. 关于构造函数的说法,正确的是( C )
A.构造函数一定要显式定义 B.构造函数名称可以任意
C.构造函数可以不显式定义 D.如果没有显式定义,类将不具有构造函数
62. 关于循环语句中break和continue的用法,表述正确的是( A )
A.break表示退出循环语句块,continue表示退出当前循环直接进入下一轮循环
B.continue表示退出循环语句块,break表示退出当前循环直接进入下一轮循环
C.break和continue都表示退出循环语句块
D.break和continue都表示退出当前循环直接进入下一轮循环
63. 关于用abstract定义的类,说法正确的为( D )
A.可以被实例化 B.不能派生子类
C.不能被继承 D.只能被继承
64. 关于主函数的说法,正确的是( A )
A.主函数的名称为main B.主函数的名称为Main
C.主函数能够在程序中直接调用 D.主函数不能有参数
65. 关于注释的说法,正确的是( B )
A.一个程序只能有一个注释
B.注释中可以写入程序说明,因为它不被运行
C.注释一条语句意味着这条语句一定要执行
D.注释一条语句意味着运行程序时会在屏幕上显示这条语句
66. 假设int i=6,int j=4,float k=2,那么i/j-k的结果是( A )
A.-1.0 B.-1 C.-0.5 D.0.0
67. 假设int x=23,int y=98,boolean a=true,下面逻辑表达式的值是true的是( B )
A.boolean c = !a B.boolean c = x>y
C.boolean c = !a && (x<=y) D.boolean c = x 68. 可以使得所修饰类不能再派生出子类的修饰符是( C ) A.private B.abstract C.final D.public 69. 可以替代条件语句“if(x>y)m=x;else m=y;”的语句是( A ) A. m=(x>y)?x:y; B. m=(x>y)?y:x C. m=(x>y):x?y D. m=(x>y):y?x 70. 可以用来引用当前对象的关键字是( B ) A.me B.this C.that D.super 6/58 71. 类成员可被任何对象直接访问所应使用的修饰符是( B ) A. class B. static C. void D. public 72. 类定义时,若希望该类一定要派生子类,则类定义时应当加上的访问修饰符是( A ) A.abstract B.this C.super D.final 73. 类有两种常用用法:一种是类的实例化,即生成类的对象,并参与系统的运行;另一种是通过派生出 新的类,该机制称为( B ) A. 复用 B. 继承 C. 传递 D. 派生 74. 类中定义的变量称为( A ) A.成员变量 B.引用变量 C.局部变量 D.静态变量 75. 能够将两个参数之和作为返回值的函数定义为( A ) A.public int add(int a1,int a2){ return a1+a2; } B.public void add(int a1,int a2){ return a1+a2; } C.public int add(int a1,int a2){ add=a1+a2; } D.public void add(int a1,int a2){ n(a1+a2); } 76. 能够实现 抛出异常和生成异常对象的语句是( A ) A. throws B. throw C. Throwable D. Exception 77. 能够调用构造方法的时机是在( B ) A. 类定义时 B. 创建对象时 C. 调用方法时 D. 使用对象的变量时 78. 容器JPanel和它的子类JApplet默认的布局管理器是( A ) A.FlowLayout B.BorderLayout C.CardLayout D.GridLayout 79. 如果类A继承于类B,正确的表示语句是( A ) A.class A extends B B.class B extends A C.class A implements B D.class B implements A 80. 如果类在package1的下级子包subpackage1中,正确的导入语句是( B ) A.import e1.*; B.import kage1.*; C.package e1.*; D.package e1.*; 81. 若x,y为int型变量,a和d为布尔型变量,其中x=23,y=98,a=true,则表达式 d = !a && (x<=y)值是( D ) A.0 B.1 C.false D.true 82. 若要生成ClassA类的一个对象a,以下书写正确的是( A ) A. ClassA a=new ClassA(); B. ClassA a=new Class(); C. a=new ClassA(); D. ClassA a=ClassA(); 7/58 83. 设 int a = 8,则表达式 (a>2)?a:2 的值是( D ) A.1 B.2 C.4 D.8 84. 设 X 、Y均为已定义的类名,下列声明类X的对象x1的语句中正确的是( C ) A. public X x1=new Y(); B. X x1=X(); C. X x1=new X(); D. int X x1; 85. 设有定义语句int a[ ]={66,88,99}; 则以下对此语句的叙述错误的是( C ) A.定义了一个名为a的一维数组 B.a数组有3个元素 C.a数组的下标为1到3 D.数组中的每个元素都是整型 86. 设整型变量a为5,使整型变量b不为2的表达式是( C ) A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=a>3?2:1 87. 使用private定义一个类成员,其作用是( C ) A.让类外界可以使用该成员 B.让任何类都能使用该成员 C.只有当前类中成员可以使用该成员 D.让任何类都不能使用该成员 88. 属于Java的编译命令是( A ) A. javac B. java C. javadoc D. appletviewer 89. 属于垃圾回收机制的技术是( B ) A. 字节编译 B. 自动释放无用内存 C. 语法检查 D. 堆栈上/下溢出检查 90. 所有Java 应用程序中main()方法都必须有且只有( B ) A. 0个 B. 1个 C. 2个 D. 4个 91. 所有的Java Applet的父类都是类( B ) A. Applet B. Frame C. Tree D. Window 92. 图形用户界面,是使用图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便地向 计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户。它的简称是 ( C ) A.graghic B.UI C.GUI D.User Interface 93. 为AB类的一个无形式参数、无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以 调用它,该方法头的形式为( A ) A. static void method() B. public void method() C. final void method() D. abstract void method() 94. 为了使包sos中的所有类在当前程序中可见,可以使用的语句是( A ) A. import sos.*; B. package sos.*; C. sos import; D. sos package; 95. 下列变量名中合法的是( B ) A.17aP6 B.$dollar C.abc-d D.#eat 96. 下列不可作为java语言标识符的是( D ) A. a1 B. $1 C. _1 D. 11 8/58 97. 下列类X的构造函数中,正确的是( B ) A. int X(int m){ ... } B. X(int m,int n){ ... } C. void X(int m){ ... } D. Y(int h,int m,int n){ ... } 98. 下列类声明语句中,正确的是( D ) A.public abstract final class newClass B.abstract public newClass class C.public final abstract class newClass extends superClass D.public class newClass extends superClass 99. 下列说法中,符合对象和类关系的是( D ) A. 人和老虎 B. 书和计算机等级考试书 C. 建筑材料和楼 D. 轿车和汽车 100. 下列说法中,正确的是( D ) A. 抽象类中的抽象方法必须在该类的子类中具体实现 B. 抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法 C. 最终类(final类)中的属性和方法都必须被final修饰符修饰 D. 最终类(final类)不能派生子类,最终方法不能被覆盖 101. 下列说法中正确的是( C ) A.Java程序只有一种类型,即Java应用程序 B.Java中main方法可以在类的外部定义 C.一个Java应用程序中可包含多个类,但只能有一个类中定义main方法 D.main方法前面的修饰符必须是private、static和void 102. 下列说法中正确的是( A ) A.一个Java源程序文件中最多只能有一个public类 B.引用一个类的属性或调用其方法必须以这个类的对象名为前缀 C.抽象类默认是public类 D.final类中的属性和方法都必须被final修饰符修饰 103. 下面程序段的运行结果是( A ) int grade=100; switch(grade/10){ case 10: case 9: ('A');break; case 8: ('B');break; } A.A B.B C.AB 104. 下面创建数组正确的语句是( B ) A.float f[6][6]=new float[][]; C.float f[][6]=new float[][6]; D.没有任何显示内容 B.float f[]=new float[6]; D.float [6][]f=new float[6][]; 105. 下面关键字中可以用来引用当前对象的关键字是( B ) A.me B.this C.that D.super 106. 下面说法正确的是( A ) A.java Applet程序必须在浏览器中执行 B.java应用程序必须在浏览器里执行 C.java Applet程序不一定在浏览器中执行 D.java应用程序可以在浏览器中执行 9/58 107. 现有两个类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 108. 现有两个类X、Y,以下描述中表示Y继承自X的是( D ) A. class X extends Y B. class Y implements X C. class X implements Y D. class Y extends X 109. 循环次数为10次的循环语句是( B ) A.for(int i=1;i<10;i++) B.for(int i=0;i<10;i++) C.for(int i=1;i<=9;i++) D.for(int i=0;i<9;i++) 110. 要判定一个整数i是否是奇数,可以使用的表达式是( C ) A.i= =1 B.i/2= =1 C.i%2= =1 D.i%2=1 111. 要使类的某个成员方法成为属于整个类的“类方法”,该方法应使用修饰符( D ) A.final B.public C.class D.static 112. 一个Java源程序文件的扩展名必须是( A ) A. .java B. .class C. .html 113. 以下不属于awt包的类是( D ) A.Label B.Frame C.Button 114. 以下代码段执行后的输出结果是( A ) int x= -3; int y= -10; n(y%x); A. -1 B. 1 C. 2 D. .exe D.JLabel D. 3 115. 以下的选项中能正确表示Java语言中的一个整型常量的是( A ) A. _VALUE B. 8.8F C. 2.0E16 D. true 116. 以下关于Java语言继承的说法正确的是( C ) A. 类可以有多个直接父类 B. 抽象类不能有子类 C. 接口支持多继承 D. 最终类可以作为其它类的父类 117. 以下类名命名正确的是( B ) A. super B. THIS C. public D. 12_book D.break 118. 以下选项中,用来实现循环的选项是( A ) A.for B.if C.switch 119. 用来解释执行Java字节码文件的程序是( A ) A. B. C. D. 120. 用于将Java小应用程序嵌入到Web页面的网页标签是( D ) A. 121. 用于修饰“类方法”的修饰符是( D ) A.final B.public C.class D.static 10/58 122. 有程序段: boolean b1=true, b2=false, b3; b3= (b1 ? b1 : b2); 执行后 b3 的值是( C ) A. 0 B. 1 C. true D. false 123. 有关final修饰符的描述中,正确的是( C ) A.用final修饰的变量,可以重新赋值 B.由final修饰的方法可以被子类中的相同方法覆盖 C.由final修饰的类可以实例化生成相应的对象 D.由final修饰的类可以派生出子类 124. 有关Java语言的叙述,正确的是( B ) A. Java是不区分大小写的 B. 源文件名与public类型的类名必须相同 C. 源文件名其扩展名为.jar D. 源文件中public类的数目不限 125. 有关Java中的指针,说法正确的是( A ) A. Java摒弃了指针 B. Java保留了指针,但摒弃了指针数组 C. Java将会在新版本中增加指针数组 D. Java摒弃了指针和数组 126. 有关try/catch/finally的异常处理机制的描述中,错误的是( A ) A.try用于选定捕获异常的范围,在该范围中的语句可能会生成异常对象并抛出。对于没有用try监视 所产生的异常,Java系统无法抛出 B.catch用来捕捉try监视所产生的异常并进行处理 C.不论try块是否有异常发生,finally部分的内容都会被执行,它提供统一的出口 D.一个try语句可能与多个catch字句配合工作。 127. 有函数定义如下: public ab_(int x1,int x2) { return x1+x2; } 下面正确的说法是( D ) A.函数名不正确 C.return语句要使用括号 B.参数定义不正确 D.函数返回类型不正确 128. 有数组定义为 int[] k=new int[5]; 下面说法正确的是( A ) A.定义了一个有5个整型元素的数组 B.定义了一个有1个元素的整型数组,初始值是5 C.定义了一个整型对象变量,初始值为5 D.程序定义有错 129. 有一段java 应用程序,它的主类名是a1,那么编译后的类文件名可以是( B ) A. B. C. a1 D. 都对 11/58 130. 有语句: char[ ] someArray; 它的含义是( A ) A.仅仅声明了一个数组引用变量,并没有开辟真正的数组内存空间 B.声明了一个数组引用变量,同时开辟了真正的数组内存空间 C.仅仅开辟了真正的数组内存空间 D.语句有错 131. 有语句: public class A extends B implements C{} 下面的相关说法中,正确的是( A ) A.定义了一个名称为A的类 B.定义了一个名称为B的类 C.定义了一个名称为C的类 D.语句有错 132. 有主函数定义如下: public static void main()(String args[ ]) 下面说法中正确的是( C ) A.定义正确 B.函数名称应该是Main C.参数类型应该是string D.返回类型不能为void 133. 与方法public void add(int a){}为合理重载的方法是( D ) A.public int add(int a) {} B.public void add(long a) {} C.public void add(int a) {} D.public void add(int a,int b) {} 134. 语句 int i=65; n((char)i); 它的运行结果是( A ) A.A B.a 135. 语句 int i=97; n((char)i); 它的运行结果是( B ) A.A B.a 136. 语句:int x[]=new int[-5]; 产生的异常是( C ) A.IllegalArgumentException B.ArithmeticException C.NegativeArraySizeException C.65 D.程序出错 C.65 D.程序出错 D.ArrayIndexOutOfBoundsException 137. 语句: (1<0); 输出结果是( A ) A.false B."false" C.0 D.1<0 138. 在Applet的关键方法中,关闭浏览器以释放Applet占用的所有资源的方法是( D ) A.init() B.start() C.paint() D.destroy() 139. 在Character类中,可以判断字符是否为大写字母的方法是( A ) A.isUpperCase() B.toUpperCase() C.isLowerCase() D.toLowerCase() 12/58 140. 在Java Applet程序用户自定义的Applet子类中,可以通过重载在Applet的界面中显 和其它界面元素的方法是( C ) A. start( ) B. stop( ) C. init( ) D. paint( ) 示文字、图形 141. 在Java Applet程序用户自定义的Applet子类中,为了完成一些画图操作,一般需要重载父类的方法是 ( D ) A. picture() B. lineTo() C. draw() D. paint() 142. 在Java 应用程序中,程序的入口是( C ) A. init() B. begin() C. main() 143. 在Java语言中,编译器自动导入的包是( A ) A. B. C. D. 144. 在Java语言中,不能注释多行内容的符号是( A ) A.以//开始的注释 B.以/*开始,*/结束的注释 C.以/**开始,*/结束的注释 D.Java中没有能注释多行内容的方式 145. 在Java语言中,下列常量的表示不合法的是( B ) A.23 B..5 C.”a” D.’u0061’ 146. 在Java语言中,一个字符型数据占用的内存空间是( B ) A.1位 B.1个字节 C.2个字节 D.4个字节 147. 在Java语言中,以下标识符合法的是( D ) A.5w B.A% C.a+b D.$a D. 标准比特代码 D. start() 148. 在Java中,程序先由编译器转换为( B ) A. 机器码 B. 标准字节代码 C. 汇编程序 149. 在Java中,能够实现多重继承效果的方式是( B ) A.内部类 B.接口 C.适配器 D.同步 150. 在Java中,用package语句说明一个包时,下列说法正确的是( B ) A. 该包的属性必须与文件的属性相同 B. 该包的层次结构必须与文件目录的层次相同 C. 该包的类型必须与文件类型相同 D. 该包的大小必须与文件大小相同 151. 在Java中,由Java编译器自动导入,而无需在程序中用import导入的包是( D ) A. B. C. D. 152. 在编写Java 应用程序时,若需要使用到标准输入输出语句,必须在程序开头写 的语句是( C ) A. import .* ; B. import ; C. import .* ; D. import cs ; 153. 在编写异常处理的Java程序中,用来捕获Java异常对象的语句是( C ) A. if-else B. switch C. try D. throw 154. 在控制台运行Java字节代码的命令是( C ) A.link B.run C.java D.javac 155. 在浏览器中执行applet 程序,四个方法中最先执行的是( A ) A. init() B. start() C. destroy() D. stop() 13/58 156. 在同一个Java源程序中,如果import语句、package语句(创建包)、class语句(声明类)都存在,则 它们出现的次序应是( B ) A.import语句,package语句,class语句 B.package语句,import语句,class语句 C.class语句,import语句,package语句 D.import语句出现在先,package语句和class语句出现的次序随意 157. 在下列选项中,Java注释不可以使用的符号是( C ) A.// B./* C./ D.*/ 158. 在一个Java文件中,公共类最多只能定义( B ) A. 0个 B. 1个 C. 2个 D. 大于2个 159. 执行语句int [ ]x=new int[25];后,正确的说法是( A ) A. x[24]为0 B. x[24]未定义 C. x[25]为0 D. x[0]为空 160. 自定义的异常类所继承的类是( D ) A. Error类 B. AWTError C. VirtualMachineError D. Exception 1:第1章---第3章 基本知识 5:第5章 面向对象 7:第7章---第8章 图形 11:第11章 线程 4:第4章 数组和字符串 6:第6章 异常 9:第9章 Applet 14/58 填空题 题 1. 一个Java文件中,公共类最多只能定义 1 个。 2. 整型常量在机器中占 32 位。 3. Java语言的各种数据类型之间提供两种转换,即 自动转换 和强制转换。 4. 能够退出循环,并从紧接该循环的语句继续开始执行的语句是 break; 。 5. Java程序分为两类: java应用程序 和小应用程序。 6. 单精度类型变量fvar的定义语句是 float fvar; 。 7. Java语言的各种数据类型之间提供自动转换,如第1操作数是byte类型,第2操作数是float类型,其 计算结果是 float 类型。 8. 在Java语言中,将位数多的数据类型向位数少的数据类型转换时,只能采用 强制转换 。 9. 属性是用来描述对象表态特征的数据项, 方法 用来描述对象动态特征的操作序列。 10. Java程序分为两类:Java应用程序和 小应用程序; 。 11. 设x=2,y=4.7,表达式 (int)((x+y)%2/4)的值为 0 。 12. Java语言中实现跳转的语句是break和 continue 。 13. Java语言提供了两种在内存中存储浮点数的基本类型,float和 double 。 14. Math类中求随机数的方法是 Random(); 。 15. Java语言是一个纯面向对象的程序设计语言,具有严格的继承性。其中所有类都直接或间接来源于共同 的类 object 。 16. 设x,y,max均为int型变量,x、y已赋值。用三目条件运算符求x、y的最大值,并赋给变量max,这 条赋值语句是: max=x>y ?x:y; 。 17. Java应用程序的入口函数是 main() 。 18. 表达式!(true!=false)的结果为 false 。 19. Java语言中,和单精度数据类型相比,双精度类型的长度为 8 个字节。 20. java虚拟机 是软件模拟的计算机,它可以在任何处理器上安全兼容地执行保存在.class文件中的字 节码。 21. 如果在类中没有明确定义类属性的初始值,则会自动赋予缺省值,其中int数据类型的默认值为 0 。 22. 常量1.2F的F代表的意思是 浮点型 。 23. Java中所有类都是类 object 的子类。 24. Java程序的基本单位是 类 。 25. “标准输入流”和“标准输出流”分别对应于和 。 26. 和C语言不同,Java具有一种新的基本数据类型,它是 布尔 类型。 27. 表达式false1=false的结果是 编译错误 。 28. 关键字 default 表示switch语句中除了case以外的其他条件。 29. 类中的变量成员被称为属性,类中的函数成员一般被称为 局部成员(变量) 。 30. 语句n()作用是 进行控制台打印显示数据 。 31. Java语言中单精度float数据类型的长度为 4 个字节。 15/58 32. 如果在类中没有明确定义类属性的初始值,则会自动赋予缺省值,其中int数据类型的默认值为 0 。 33. 已知在一个Java源程序文件中有一名为Welcome的公共类,则该Java源程序文件的全名为 。 34. 数学表达式 1 2n 2 ,描述成Java语言支持的表达式,形式为 1/(n*(n-1))+2*n*n; 。 n(n1) 35. 面向对象的程序设计有三个基本要素,分别为 封装性 、继承和多态。 36. 执行语句String s=”这是棵梨树”;int L=();L的值是 5 。 37. Java中复杂类型数据包括类、接口和 数组 。 38. 设有整型数组的定义:int a[]=new int[8]; 则的值为 8 。 39. 定义一个整型数组y,它有5个元素分别是1,2,3,4,5。用一条语句实现对数组y的声明、创建和 赋值: Int y[]={1,2,3,4,5}; 。 40. 字符串"1"和字符串"-1"相加的结果是 1-1 。 41. 在Java中,数组下标从数字 0 开始。 42. 包中专门提供了两个类String和StringBuffer来处理字符串,其中 String 类用来存储和处理字符串常量。 43. 所有的数组都有一个属性 length ,这个属性存储了数组元素的个数。 44. 二维数组d中的第3行、第5列的元素的访问形式为 d[2][4] 。 45. Java语言中,所有的对象均通过 new 运算符分配内存,并对内存进行自动管理。 46. 如果有一个类SubClass是SuperClass的子类,能够被不同包中的类所使用,请写出该类的声明头: class SubClass extends SuperClass 。 47. 创建一个名为MyPackage的包的语句是 package MyPackage; 。 48. 写出抽象类IamAbstract的类头定义语句: abstract class IamAbstract 。 49. 在Java程序中,通过类的定义只能实现单一继承,通过接口的定义可以实现 多重 继承关系。 50. 写出定义最终类IamFinal的类头定义语句: final class IamFinal 。 51. 定义一个抽象方法abstractMethod,没有形式参数,返回值为布尔型值: abstract boolean abstractMethod(){} 。 52. 在Java语言中,用来引用当前对象父类的关键字是 super 。 53. 创建一个名为MyPackage的包的语句是 package MyPackage; 。 54. 如果在Java程序中,需要使用包中的所有类,则应该在程序开始处加上: import ; 。 55. 用关键字 final 修饰的类不能再派生出子类。 56. 用于修饰只能被该类本身所访问成员的访问修饰符是 private 。 57. 必须在抽象类之中定义,仅有方法头,但没有具体方法体和操作实现的方法是 抽象方法 。 58. super代表了对 父类 的引用。 59. 创建一个名为 MyPackage 的包的语句是: package MyPackage; 。 60. 子类可以继承父类的 非私有 成员。 61. 通过类MyClass中的不含参数的构造函数,生成该类的一个对象obj,正确的定义语句是: MyClass obj=new MyClass(); 。 62. 类NewClass的构造函数名称是 NewClass 。 63. 函数如果没有返回值,则返回类型应该定义为 void 。 64. Java默认导入的包是 ; 。 65. 用 final 修饰符所修饰的类不能再有子类。 66. 创建对象使用关键字运算符 new 。 16/58 67. 接口中的方法都是用abstract修饰的 抽象 方法。 68. 类中的 构造函数 函数会在声明类对象时自动被调用,进行初始化操作。 69. 在同一个类中有两种或两种以上的方法可以有相同的名字,只要它们的参数声明不同即可,这种情况称 为方法的 方法重载 。 70. 定义接口的关键字是 interface 。 71. 将一个变量定义为类变量的方法就是将这个变量标记上关键字 static 。 72. Java中,关键字 final 可用于修饰变量、方法和类。它修饰的变量一旦被赋值,就不能改变; 它修饰的方法不能被子类中的相同方法覆盖;它修饰类时,该类不能派生子类。 73. 类层次结构中,如果子类的一个方法与父类中的方法有相同的方法名并具有相同数量和类型的参数列 表,则称子类中的方法 覆盖 了父类中的方法。 74. 用户自定义的所有异常类都必须是 exception 的子类。 75. 在Java中,提供了错误捕获和处理机制,即 异常处理 机制。 76. 异常是程序运行过程中出现的中断正常程序控制流程的事件。在Java中,所有异常都是类 exception 的子类。 77. 创建一个标识有“中国北京”字样的标签对象gxdd的语句为: JLabel gxdd=new JLabel(“中国北 京”); 。 78. 基本布局管理器包括流式布局管理器等,其中可以将组件放置到所在容器上下左右位置的布局管理器为 BorderLayout 。 79. Applet的生命周期中的常见方法有init()、start()、paint()、 Stop() 和destroy()。 80. Java中,用来表示线程的类是 Thread 。 1:第1章---第3章 基本知识 5:第5章 面向对象 7:第7章---第8章 图形 11:第11章 线程 4:第4章 数组和字符串 6:第6章 异常 9:第9章 Applet 17/58 程序改错题 题 1. 下面的代码应该打印1是偶数还是奇数。请指出错误所在行号并改正。 (1) public class PartBCorrected { (2) public static void main(String args[]) { (3) int value = 1; (4) switch (value / 2) { (5) case 0: (6) n("偶 数"); (7) case 1: (8) n("奇 数"); (9) } (10) } (11) } 1. 第4行改为:switch(value%2) 2. 请指出错误所在行号并改正。 (1) public class InitArray { (2) public static void main(String args[]) { (3) int array[3] = { 1, 2, 3 }; (4) for (int counter = 0; counter <= 3; counter++) (5) ("%d%dn", counter, array[counter]); (6) } (7) } 2. 第3行改为:int array[]={1,2,3}; 3. 下列程序完成对一维数组的创建和逆序输出。请指出错误所在行号并改正。 (1) public class Test { (2) public static void main(String args[]) { (3) int i; (4) int a[5] = new int[5]; (5) for (i = 0; i < 5; i++) (6) a[i] = i; (7) for (i = ; i >= 0; i--) (8) n("a[" + i + "]=" + a[i]); (9) } (10) } 3. 第4行改为:int a[]=new int[5]; 第7行改为:for(i=-1;i>=0;i--) 18/58 4. 下列程序实现对数据的顺序查找功能,若找到,返回true,否则返回false。请指出错误所在行号并改正。 (1) public class BreakDemo { (2) public static void main(String args[]) { (3) int arrayOfInts[10] = { 32, 87, 3, 589, 12, 1076, 2000, 8, 622, 127 }; (4) int searchfor = 12; (5) int i = 0; (6) boolean foundIt = false; (7) for (; i < (); i++) { (8) if (arrayOfInts[i] == searchfor) { (9) foundIt = true; (10) break; (11) } (12) } (13) if (foundIt) { (14) n("Found " + searchfor + " at index " + i); (15) } else { (16) n(searchfor + "not in the array"); (17) } (18) } (19) } 4. 第3行改为:int arrayOfInts[]=.... 第7行改为:for(;i<;i++) 5. 下面的程序实现两个矩阵A与B相乘并输出乘积结果矩阵:C ij =A ik ×B kj 。请指出错误所在行号并改正。 (1) public class Exec { (2) public static void main(String[] args) { (3) int i, j, k; (4) int a[2][3] = new int[2][3]; (5) int b[][] = { { 1, 5, 2, 8 }, { 5, 9, 10, -3 }, { 2, 7, -5, -18 } }; (6) int c[][] = new int[2][4]; (7) for (i = 0; i < 2; i++) (8) for (j = 0; j < 3; j++) (9) a[i][j] = (i + 1) * (j + 2);//初始化 矩阵A (10) for (i = 0; i < 2; i++) { (11) for (j = 0; j < 4; j++) { (12) c[i][j] = 0; (13) for (k = 0; k < 3; k++) (14) c[i][j]+= a[i][k] * b[k][j]; (15) } (16) } (17) n("*** Matrix C ***"); (18) for (i = 0; i < 2; i++) { (19) for (j = 0; j < 5; j++) (20) (c[i][j] + " "); (21) n(); (22) } (23) } (24) } 5. 第4行改为:int a[][]=new int[2][3]; 第19行改为:for(j=0;j<4;j++) 19/58 6. 下列程序定义TestPackage类,它继承自Test类,同时将其打包至ua中。请指出错 误所在行号并改正。 (1) import ua; (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) n("成功!!"); (10) } (11) } 6. 第1行:import改为package 第2行改为:public class TestPackage extends Test 7. 请指出错误所在行号并改正。 (1) import .*; (2) class Exec { (3) public static void main(String args[]) { (4) SubSubClass x = new SubSubClass(10, 20, 30); (5) (); (6) } (7) } (8) class SuperClass { (9) int a, b; (10) SuperClass(int aa, int bb) { (11) a = aa; (12) b = bb; (13) } (14) void show() { (15) n("a=" + a + "nb=" + b); (16) } (17) } (18) class SubClass extends SuperClass { (19) int c; (20) SubClass(int aa, int bb, int cc) { (21) super(aa, bb); (22) c = cc; (23) } (24) } (25) class SubSubClass extends SubClass { (26) int a; (27) SubSubClass(int aa, int bb, int cc) { (28) a = aa + bb + cc; (29) super(aa, bb, cc); (30) } (31) void show() { (32) n("a=" + a + "nb=" + b + "nc=" + c); (33) } (34) } 28行与29行交换顺序(29行放到28行前面) 20/58 8. 下列程序试图完成以下功能:在类Employee中定义构造方法完成对成员EmployeeId的初始化。类 Manager继承自Employee,在其构造方法中通过调用父类构造方法完成对父类成员的初始化。请指出错 误所在行号并改正。 (1) class Employee { (2) int EmployeeId; (3) public A(int id) { (4) EmployeeId = id; (5) } (6) } (7) class Manager extends Employee { (8) public Manager(int id) { (9) A(id); (10) } (11) } (12) public class Test { (13) public static void main(String args[]) { (14) new Manager(20); (15) } (16) } 第3行改为:public void A(int id) 9. 请指出错误所在行号并改正。 (1) class Employee{ (2) String name; (3) public Employee(String s){ (4) name = s;} } (5) class Manager extends Employee{ (6) String department; (7) public Manager(String s,String d){ (8) department = d; (9) super(s); (10) n("I am a manager "+s); } (11) } (12) class Exec { (13) public static void main(String args[]) (14) { (15) Manager mag=new Manager("John","1000"); (16) } (17) } 8行与9行交换顺序(9行放到8行前面) 21/58 10. 请指出错误所在行号并改正。 (1) class Time1 { (2) private int hour; (3) private int minute; (4) public void setTime(int h, int m) { (5) hour = ((h >= 0 && h < 24) ? h : 0); (6) minute = ((m >= 0 && m < 60) ? m : 0); (7) } (8) public void print() { (9) ("%d:%d", hour, minute); (10) } (11) } (12) public class MemberAccessTest { (13) public static void main(String args[]) { (14) Time1 time = new Time1(); (15) = 7; (16) = 15; (17) (); (18) } (19) } 第15、16行去除改为e(7,15); 11. 请指出错误所在行号并改正。 (1) public class c { (2) int x = 20; (3) int y = 30 (4) static int plus() { (5) return x + y; (6) } (7) public static void main(String[] args) { (8) int result = plus(); (9) n("result = " + result); (10) } (11) } 第2、3行前面加上static 12. 下列程序首先定义了类ConstructTest,通过构造方法将其中的成员i值赋为0。类A完成对ConstructTest 对象c的私有成员i赋值100的功能。请指出错误所在行号并改正。 (1) public class ConstructTest { (2) private int i; (3) public A() { (4) i = 0; (5) } (6) public void setI(int i) { (7) this.i = i; (8) } (9) } (10) class A { (11) public static void main(String args[]) { (12) ConstructTest c = new ConstructTest(); (13) c.i = 100; (14) } (15) } 第3行改为 public void A() 第13行改为:(100); 22/58 13. 下面程序的功能是利用Circle类的 getArea方法分别计算半径是2和20的圆面积,请指出错误所在行号 并改正。 (1) class Circle { (2) double radius; (3) public Circle(double c) { (4) radius = c; (5) } (6) public double getArea() { (7) return * radius * radius; (8) } (9) } (10) public class TestCircle { (11) public void main(String[] args) { (12) Circle mycir = new Circle(2); (13) n("The area is :" + a()); (14) Circle sec; (15) n("The Second area is :" + a()); (16) } (17) } 第14行改为:Circle sec=new Circle(20); 14. 请指出错误所在行号并改正。 (1) class Student{ (2) String name; (3) int age; (4) public Student(String s, int n){ (5) name = s; age= n; (6) n("有2个参数的构造方法"); (7) } (8) public Student(String s){ (9) n("有1个参数的构造方法"); (10) this(s, 20); (11) } (12) public Student(){ (13) this("Unknown"); (14) n("没有参数的构造方法"); (15) } (16) } (17) class Exe{ (18) public static void main(String args[]) (19) { (20) Student a=new Student("Wang"); (21) } (22) } 行与10行交换顺序(10行放到9行前面) 23/58 15. 下面程序的功能是利用A类的 tryVariables方法分别输出变量a,b,c,d的值,请指出错误所在行号并 改正。 (1) class B { (2) public int a = 10; (3) private int b = 20; (4) protected int c = 30; (5) public int getB( ){ (6) return b; } (7) } (8) class A extends B { (9) public int d; (10) public void tryVariables( ) { (11) n(a); (12) n(b); (13) n(c); (14) n(d); (15) } (16) public static void main(String args[]) (17) {A exa=new A(); (18) tryVariables( ); (19) } (20) } 15. 第12行改为:n(getB()); 第18行改为:iables(); 16. 请指出错误所在行号并改正。 (1) public class c12 { (2) static void add(double x, double y) { (3) double z; (4) z = x + y; (5) n("z=" + z); (6) x = x + 3.2; (7) y = y + 1.2; (8) n("x=" + x + " y=" + y); (9) return z; (10) } (11) static double add1(double y1, double y2) { (12) double z; (13) z = y1 + y2 + 2.9; (14) return z; (15) } (16) public static void main(String[] args) { (17) int a = 2, b = 7; (18) double f1 = 2, f2 = 4, f3; (19) add(a, b); (20) n("a=" + a + "b=" + b); (21) f3 = add1(f1, f2, 3.5); (22) f3 = 2 + add1(f1, f2); (23) n("f1=" + f1 + "f2=" + f2 + "f3=" + f3); (24) } (25) } 16. 第9行删除,第21行改为:f3=add(f1,f2); 1:第1章---第3章 基本知识 4:第4章 数组和字符串 24/58 5:第5章 面向对象 7:第7章---第8章 图形 11:第11章 线程 6:第6章 异常 9:第9章 Applet 25/58 程序分析题 题 1. 请写出程序的运行结果。 public class Exec { public static void main(String args[]) { int x, y; x = 1; y = 2; n("The output is " + x + y); n("The output is " + (x + y)); } } The output is 12 The output is 3 2. 请写出程序的运行结果。 class Cls { int val; } public class Exec { public static void main(String args[]) { Cls c1 = new Cls(); = 0; func(c1); n(); } public static void func(Cls c) { = 100; n(); } } 100 100 26/58 3. 请写出程序的运行结果。 public class Exec { public static void main(String args[]) { int grade = 110; if (grade >= 60) if (grade <= 100) n("及格"); else n("不及格"); n("结束"); } } 3. 不及格 结束 4. 请写出程序的运行结果。 public class ContinueOp { public static void main(String args[]) { int n; for (n = 1; n <= 4; n++) { if (n % 2 == 0) continue; n("n=" + n); } } } 4. n=1 n=3 5. 请写出程序的运行结果。 class NewClass { int val; } public class Exec { public static void main(String args[]) { NewClass c1 = new NewClass(); = 0; func(c1); n(); } public static void func(NewClass c) { = 1; n(); } } 5. 1 1 27/58 6. 请写出程序的运行结果。 public class Exec { public static void main(String args[]) { int grade = 101; if (grade < 0 || grade > 100) n("成绩不正确"); else n("成绩正确"); if (grade >= 60) if (grade <= 100) n("及格"); else n("不及格"); } } 6. 成绩不正确 不及格 7. class a {public static void main(String args[]) {int i=2; switch(i){ case 0: n("zero"); break; case 1: n("one"); break; case 2: n("two"); default:n("default"); } } } 7. two Default 8. 请写出程序的运行结果。 public class HelloWorld { public static void main(String args[]) { boolean x = true; boolean y = false; n("X&&Y=" + (x && y)); n("X||Y=" + (x || y)); } } 8. X&&Y=false X||Y=true 28/58 9. 请写出程序的运行结果。 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); n("type= " + type); n("flag= " + flag); } } 9. Type=及格 flag=-1 10. 请写出程序的运行结果。 public class HelloWorld { public static void main(String args[]) { boolean x = true; boolean y = false; n("X | | Y=" + (x | | y)); n("!Y=" + (!y)); } } 10. X||Y=true !Y=true 11. class HelloWorld { public static void main (String args[]) { int i = 0; String greetings [] = { "Hello world!", "HELLO WORLD!"}; while (i < 2) { n (greetings[i]); i++;} }} 11. Hello world! HELLO WORLD! 29/58
2024年4月1日发(作者:潜温书)
《Java语言程序设计》习题集
(软件工程、计算机科学与技术专业)
南京航空航天大学继续教育学院
1/58
选择题 填空题 改错题 分析题 编程题
选择题
题
1. Appletviewer程序的主要功能是( B )
A.编译Java字符界面的程序 B.运行Java Applet程序
C.运行Java字符界面的程序 D.编译Java Applet程序
2. Frame容器默认的布局管理器是( C )
A. 没有 B. FlowLayout C. BorderLayout D. GridLayout
3. GUI是指(B )
A.编程语言 B.图形用户界面
C.全球统一标记 D.操作系统
4. J2EE是指( B )
A.Java2微型版
C.Java2标准版
B.Java2企业版
D.Java2程序
5. Java Application源程序的主类是指类中包含有( A )。
A. main方法 B. toString方法 C. init方法 D. stop方法
6. Java编译器产生的文件扩展名是( B )
A. .java B. .class C. .html D. .exe
7. Java程序中,数据类型转换分为自动类型转换和( A )
A.强制类型转换 B.隐式类型转换 C.字符类型转换 D.没有
8. Java程序中,位数多的数据类型向位数少的数据类型转换称为(A )
A.强制类型转换 B.隐式类型转换 C.自动类型转换 D.字符类型转换
9. Java程序中,位数少的数据类型向位数多的数据类型转换称为( C )
A.强制类型转换 B.数据转换 C.自动类型转换 D.字符类型转换
10. Java程序中所有类的直接或间接父类是类(C )
A.abstract B.this C.Object
11. Java的多线程机制是使应用程序能够( A )
A. 并行执行 B. 等待执行 C. 顺序执行
12. Java的前身是 ( C )
A.C B.C++ C.Oak
D.final
D. 按优先级执行
D.Basic
13. Java既可以运行在PC机器上,也可以运行在苹果机器上,这种属性被称为( C )
A.面向对象 B.解释执行 C.平台无关性 D.分布式开发
14. Java虚拟机被称为 ( A )
A.JVM B.JDK C.JSP D.JNI
D.
15. Java虚拟机自动加载的基础类库包是( A )
A. B. C.
16. Java应用程序的编写和执行分3步执行,下列错误的步骤是( B )
A. 编写源代码 B. 编写HTML文件
C. 解释执行 D. 编译源代码
2/58
17. Java语言有许多优点和特点,下列选项中反映Java程序并行机制的特点的是( B )
A.安全 B.多线程 C.跨平台 D.可移植
18. Java语言中,关于整型数组的说法,正确的是( C )
A.一个数组中所有的元素可以不是整数类型
B.数组的下标必须为一个正整数
C.在声明数组时,不能直接在方括号中指明数组元素的个数
D.数组一旦创建之后,可以再改变其长度
19. Java语言中,字符串是作为对象来处理的。关于String和StringBuffer类,以下说法中,错误的是(C )
A.String类处理固定长度的字符串
B.StringBuffer类处理可变长度的字符串
C.String类不仅可以处理固定长度的字符串,也可以处理可变长度的字符串
D.它们都是最终类,即final类
20. Java语言中,字符型数据类型的字节数为( B )
A. 0 个 B. 1个 C.2 个 D. 4个
21. Java语言中创建一个对象使用的关键字为( C )
A.class B.interface C.new
22. Java语言中基本数据类型包括( A )
A. 整数型、浮点型、字符型、布尔型
B. 整数型、浮点型、字符型、数组型
C. 整数型、浮点型、数组型、布尔型
D. 整数型、数组型、字符型、布尔型
23. Java源程序经过编译器编译之后,生成的字节码文件后缀名为( C )
A..java B..obj C..class D..exe
24. Java源代码文件的扩展名为java,经过编译后,生成的文件扩展名是(B )
A..Java B..class C..txt D..exe
25. Java中标准输出输入包是( B)
A. B. C.
26. Java中现成的Java类库被称为( B )
A. Map B. Java API C. Object
D.
D. class
D.create
27. main方法是Java Application程序执行的入口点,关于main方法头的正确定义是( B )
A. public static void main()
B. public static void main(String args[])
C. public static int main(String [] arg)
D. public void main(String arg[])
28. Swing组件中的复选框组件类是( B )
A.JLabel B.JCheckBox C.JButton D.JRadioButton
29. 把窗口分成东、南、西、北、中五个明显区域的布局管理器是( B )
A.FlowLayout B.BorderLayout C.CardLayout D.GridLayout
30. 表达式 !(2>3 | | 3>2) 结果是( A )
A.false B.true C.0
31. 表达式结果为1的是( D )
A.(1*0>0*1)?1:0
C.(1*0!=0*1)?1:0
D.1
B.(1*0<0*1)?1:0
D.(1*0= =0*1)?1:0
3/58
32. 表示一个类定义开始的关键字是( C )
A. void B. public C. class
33. 不会产生异常的情况是( C )
A.int i=12/0;
C.double i=3;
D. static
B.数组下标越界
D.数组元素个数为负数
34. 不能再派生子类的类定义时应当加上的访问修饰符是( D )
A.abstract B.this C.super D.final
35. 不属于Java关键字的是( A )
A.delete B.new C.package
36. 不属于Java语言循环语句的关键字是( D )
A.for B.do
C.while D.loop
37. 不属于Java语言整数类型的数据类型是( C )
A.short B.byte C.uint D.long
D.super
38. 不属于Sun公司JDK中标准Java布局管理器的是( C )
A.FlowLayout B.GridLayout
C.FreeLayout D.BorderLayout
39. 不属于面向对象的设计方法的是( B )
A.封装 B.结构化 C.继承 D.抽象
D.NULL
40. 不正确的Java语言标识符是( D )
A.Sky B.$Computer C.for
41. 常见的系统定义的异常中,数组越界异常是( A )
A.ArrayIndexOutOfBoundsException B.IOException
C.NullPointerException D.ArithmeticException
42. 创建一个标识有“关闭”按钮的语句是( D )
A. TextField b=new TextField("关闭");
B. Label b=new Label("关闭");
C. Checkbox b=new Checkbox("关闭");
D. Button b=new Button("关闭");
43. 创建一个二维数组a,其中较高一维含两个元素,每个元素又由3个整型量构成,下列Java语句中能
实现上述要求的是( C )
A.int a[][]; B.int a=new int[2][3];
C.int a[][]=new int[2][3]; D.int a[][]=int [2][3];
44. 当Frame的大小被改变时,Frame中的按钮的位置可能被改变但是大小不变,则应使用的布局管理器
是( B )
A.BorderLayout B.FlowLayout
C.CardLayout D.GridLayout
45. 当创建Java Applet且第一次使用支持Java的浏览器载入时,就会执行的方法是( A )
A. init() B. start() C. stop() D. paint()
46. 定义类头时,不可能用到的关键字是( B )
A. class B. private C. extends D. public
4/58
47. 对于包,叙述错误的是( B )
A. 包声明表示该文件中声明的全部类都属于这个包
B. 包声明语句可以放在源文件的任意位置
C. 包声明语句前面只能有注释和空格
D. 用户可以定义自己的包
48. 对于方法void sort(int x),以下不能作为这个方法的重载的声明的是( A )
A. public float sort(float x) B. int sort(int y)
C. double sort(int x,int y) D. void sort(double y)
49. 对于同一类中的两个方法,在判断它们是不是重载方法时,不考虑的因素是( C )
A.参数个数 B.参数类型 C.返回值类型 D.参数顺序
50. 对于一维数组a[10],下列对数组的引用正确的是( B )
A. a[10] B. a[0] C. a[3/1.0] D. a[3.4]
51. 方法内定义的变量称为( C )
A.成员变量 B.引用变量 C.局部变量 D.静态变量
52. 关于fillRect()方法和drawRect()的方法,表述正确的是( C )
A.fillRect()表示绘制边框矩形,drawRect()表示绘制填充矩形
B.fillRect()和drawRect()都表示绘制边框矩形
C.drawRect()表示绘制边框矩形,fillRect()表示绘制填充矩形
D.fillRect()和drawRect()都表示绘制填充矩形
53. 关于Java语言的说法,错误的是( D )
A.Java通过JVM实现了不同操作系统之上的平台无关性
B.Java不生成可执行代码,而是字节码
C.需要在当前操作系统安装Java环境,才可以运行Java程序
D.无需任何设置,就可以在当前操作系统上直接运行Java程序
54. 关于Java整型变量的说法,正确的是( D )
A.byte为2个字节长度 B.short为4个字节长度
C.int为6个字节长度 D.long为8个字节长度
55. 关于Java中类的构造方法的说法中,正确的是( C )
A.构造方法可以不和其所属类同名
B.构造方法不可以使用new运算符调用
C.一个类可以有多个构造方法
D.构造方法可以有入口参数,但返回类型为void
56. 关于包声明的说法,正确的是( D )
A.包声明语句之前不能有注释
B.一个源文件中可以有多条包声明语句
C.包声明语句可以放在源文件的任意位置
D.一个源文件中最多只能有一条包声明语句
57. 关于被保护访问控制符protected修饰的成员变量,下面说法正确的一项是( A )
A. 可以被3种类所引用,分别是该类本身、与它在同一个包中的其他类、在其他包中该类的子类
B. 可以被两种类访问和引用:该类本身和该类的所有子类
C. 只能被该类自身所访问和修改
D. 只能被同一个包中的类访问
5/58
58. 关于构造方法的说法,错误的是( C )
A.构造方法名必须与其类名相同。
B.构造方法没有返回值,但可以有参数。
C.一个类只能有一个构造方法。
D.构造方法只能在创建对象时用new命令调用。
59. 关于构造方法的说法,正确的是( A )
A. 构造方法名必须与类名相同
B. 有返回值
C. 不能由编程人员在类中定义
D. 不可以重载实现不同的构造方法
60. 关于构造函数的说法,正确的是( C )
A.构造函数不能有参数 B.构造函数的返回类型为空
C.构造函数可以不定义 D.构造函数必须定义
61. 关于构造函数的说法,正确的是( C )
A.构造函数一定要显式定义 B.构造函数名称可以任意
C.构造函数可以不显式定义 D.如果没有显式定义,类将不具有构造函数
62. 关于循环语句中break和continue的用法,表述正确的是( A )
A.break表示退出循环语句块,continue表示退出当前循环直接进入下一轮循环
B.continue表示退出循环语句块,break表示退出当前循环直接进入下一轮循环
C.break和continue都表示退出循环语句块
D.break和continue都表示退出当前循环直接进入下一轮循环
63. 关于用abstract定义的类,说法正确的为( D )
A.可以被实例化 B.不能派生子类
C.不能被继承 D.只能被继承
64. 关于主函数的说法,正确的是( A )
A.主函数的名称为main B.主函数的名称为Main
C.主函数能够在程序中直接调用 D.主函数不能有参数
65. 关于注释的说法,正确的是( B )
A.一个程序只能有一个注释
B.注释中可以写入程序说明,因为它不被运行
C.注释一条语句意味着这条语句一定要执行
D.注释一条语句意味着运行程序时会在屏幕上显示这条语句
66. 假设int i=6,int j=4,float k=2,那么i/j-k的结果是( A )
A.-1.0 B.-1 C.-0.5 D.0.0
67. 假设int x=23,int y=98,boolean a=true,下面逻辑表达式的值是true的是( B )
A.boolean c = !a B.boolean c = x>y
C.boolean c = !a && (x<=y) D.boolean c = x 68. 可以使得所修饰类不能再派生出子类的修饰符是( C ) A.private B.abstract C.final D.public 69. 可以替代条件语句“if(x>y)m=x;else m=y;”的语句是( A ) A. m=(x>y)?x:y; B. m=(x>y)?y:x C. m=(x>y):x?y D. m=(x>y):y?x 70. 可以用来引用当前对象的关键字是( B ) A.me B.this C.that D.super 6/58 71. 类成员可被任何对象直接访问所应使用的修饰符是( B ) A. class B. static C. void D. public 72. 类定义时,若希望该类一定要派生子类,则类定义时应当加上的访问修饰符是( A ) A.abstract B.this C.super D.final 73. 类有两种常用用法:一种是类的实例化,即生成类的对象,并参与系统的运行;另一种是通过派生出 新的类,该机制称为( B ) A. 复用 B. 继承 C. 传递 D. 派生 74. 类中定义的变量称为( A ) A.成员变量 B.引用变量 C.局部变量 D.静态变量 75. 能够将两个参数之和作为返回值的函数定义为( A ) A.public int add(int a1,int a2){ return a1+a2; } B.public void add(int a1,int a2){ return a1+a2; } C.public int add(int a1,int a2){ add=a1+a2; } D.public void add(int a1,int a2){ n(a1+a2); } 76. 能够实现 抛出异常和生成异常对象的语句是( A ) A. throws B. throw C. Throwable D. Exception 77. 能够调用构造方法的时机是在( B ) A. 类定义时 B. 创建对象时 C. 调用方法时 D. 使用对象的变量时 78. 容器JPanel和它的子类JApplet默认的布局管理器是( A ) A.FlowLayout B.BorderLayout C.CardLayout D.GridLayout 79. 如果类A继承于类B,正确的表示语句是( A ) A.class A extends B B.class B extends A C.class A implements B D.class B implements A 80. 如果类在package1的下级子包subpackage1中,正确的导入语句是( B ) A.import e1.*; B.import kage1.*; C.package e1.*; D.package e1.*; 81. 若x,y为int型变量,a和d为布尔型变量,其中x=23,y=98,a=true,则表达式 d = !a && (x<=y)值是( D ) A.0 B.1 C.false D.true 82. 若要生成ClassA类的一个对象a,以下书写正确的是( A ) A. ClassA a=new ClassA(); B. ClassA a=new Class(); C. a=new ClassA(); D. ClassA a=ClassA(); 7/58 83. 设 int a = 8,则表达式 (a>2)?a:2 的值是( D ) A.1 B.2 C.4 D.8 84. 设 X 、Y均为已定义的类名,下列声明类X的对象x1的语句中正确的是( C ) A. public X x1=new Y(); B. X x1=X(); C. X x1=new X(); D. int X x1; 85. 设有定义语句int a[ ]={66,88,99}; 则以下对此语句的叙述错误的是( C ) A.定义了一个名为a的一维数组 B.a数组有3个元素 C.a数组的下标为1到3 D.数组中的每个元素都是整型 86. 设整型变量a为5,使整型变量b不为2的表达式是( C ) A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=a>3?2:1 87. 使用private定义一个类成员,其作用是( C ) A.让类外界可以使用该成员 B.让任何类都能使用该成员 C.只有当前类中成员可以使用该成员 D.让任何类都不能使用该成员 88. 属于Java的编译命令是( A ) A. javac B. java C. javadoc D. appletviewer 89. 属于垃圾回收机制的技术是( B ) A. 字节编译 B. 自动释放无用内存 C. 语法检查 D. 堆栈上/下溢出检查 90. 所有Java 应用程序中main()方法都必须有且只有( B ) A. 0个 B. 1个 C. 2个 D. 4个 91. 所有的Java Applet的父类都是类( B ) A. Applet B. Frame C. Tree D. Window 92. 图形用户界面,是使用图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便地向 计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户。它的简称是 ( C ) A.graghic B.UI C.GUI D.User Interface 93. 为AB类的一个无形式参数、无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以 调用它,该方法头的形式为( A ) A. static void method() B. public void method() C. final void method() D. abstract void method() 94. 为了使包sos中的所有类在当前程序中可见,可以使用的语句是( A ) A. import sos.*; B. package sos.*; C. sos import; D. sos package; 95. 下列变量名中合法的是( B ) A.17aP6 B.$dollar C.abc-d D.#eat 96. 下列不可作为java语言标识符的是( D ) A. a1 B. $1 C. _1 D. 11 8/58 97. 下列类X的构造函数中,正确的是( B ) A. int X(int m){ ... } B. X(int m,int n){ ... } C. void X(int m){ ... } D. Y(int h,int m,int n){ ... } 98. 下列类声明语句中,正确的是( D ) A.public abstract final class newClass B.abstract public newClass class C.public final abstract class newClass extends superClass D.public class newClass extends superClass 99. 下列说法中,符合对象和类关系的是( D ) A. 人和老虎 B. 书和计算机等级考试书 C. 建筑材料和楼 D. 轿车和汽车 100. 下列说法中,正确的是( D ) A. 抽象类中的抽象方法必须在该类的子类中具体实现 B. 抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法 C. 最终类(final类)中的属性和方法都必须被final修饰符修饰 D. 最终类(final类)不能派生子类,最终方法不能被覆盖 101. 下列说法中正确的是( C ) A.Java程序只有一种类型,即Java应用程序 B.Java中main方法可以在类的外部定义 C.一个Java应用程序中可包含多个类,但只能有一个类中定义main方法 D.main方法前面的修饰符必须是private、static和void 102. 下列说法中正确的是( A ) A.一个Java源程序文件中最多只能有一个public类 B.引用一个类的属性或调用其方法必须以这个类的对象名为前缀 C.抽象类默认是public类 D.final类中的属性和方法都必须被final修饰符修饰 103. 下面程序段的运行结果是( A ) int grade=100; switch(grade/10){ case 10: case 9: ('A');break; case 8: ('B');break; } A.A B.B C.AB 104. 下面创建数组正确的语句是( B ) A.float f[6][6]=new float[][]; C.float f[][6]=new float[][6]; D.没有任何显示内容 B.float f[]=new float[6]; D.float [6][]f=new float[6][]; 105. 下面关键字中可以用来引用当前对象的关键字是( B ) A.me B.this C.that D.super 106. 下面说法正确的是( A ) A.java Applet程序必须在浏览器中执行 B.java应用程序必须在浏览器里执行 C.java Applet程序不一定在浏览器中执行 D.java应用程序可以在浏览器中执行 9/58 107. 现有两个类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 108. 现有两个类X、Y,以下描述中表示Y继承自X的是( D ) A. class X extends Y B. class Y implements X C. class X implements Y D. class Y extends X 109. 循环次数为10次的循环语句是( B ) A.for(int i=1;i<10;i++) B.for(int i=0;i<10;i++) C.for(int i=1;i<=9;i++) D.for(int i=0;i<9;i++) 110. 要判定一个整数i是否是奇数,可以使用的表达式是( C ) A.i= =1 B.i/2= =1 C.i%2= =1 D.i%2=1 111. 要使类的某个成员方法成为属于整个类的“类方法”,该方法应使用修饰符( D ) A.final B.public C.class D.static 112. 一个Java源程序文件的扩展名必须是( A ) A. .java B. .class C. .html 113. 以下不属于awt包的类是( D ) A.Label B.Frame C.Button 114. 以下代码段执行后的输出结果是( A ) int x= -3; int y= -10; n(y%x); A. -1 B. 1 C. 2 D. .exe D.JLabel D. 3 115. 以下的选项中能正确表示Java语言中的一个整型常量的是( A ) A. _VALUE B. 8.8F C. 2.0E16 D. true 116. 以下关于Java语言继承的说法正确的是( C ) A. 类可以有多个直接父类 B. 抽象类不能有子类 C. 接口支持多继承 D. 最终类可以作为其它类的父类 117. 以下类名命名正确的是( B ) A. super B. THIS C. public D. 12_book D.break 118. 以下选项中,用来实现循环的选项是( A ) A.for B.if C.switch 119. 用来解释执行Java字节码文件的程序是( A ) A. B. C. D. 120. 用于将Java小应用程序嵌入到Web页面的网页标签是( D ) A. 121. 用于修饰“类方法”的修饰符是( D ) A.final B.public C.class D.static 10/58 122. 有程序段: boolean b1=true, b2=false, b3; b3= (b1 ? b1 : b2); 执行后 b3 的值是( C ) A. 0 B. 1 C. true D. false 123. 有关final修饰符的描述中,正确的是( C ) A.用final修饰的变量,可以重新赋值 B.由final修饰的方法可以被子类中的相同方法覆盖 C.由final修饰的类可以实例化生成相应的对象 D.由final修饰的类可以派生出子类 124. 有关Java语言的叙述,正确的是( B ) A. Java是不区分大小写的 B. 源文件名与public类型的类名必须相同 C. 源文件名其扩展名为.jar D. 源文件中public类的数目不限 125. 有关Java中的指针,说法正确的是( A ) A. Java摒弃了指针 B. Java保留了指针,但摒弃了指针数组 C. Java将会在新版本中增加指针数组 D. Java摒弃了指针和数组 126. 有关try/catch/finally的异常处理机制的描述中,错误的是( A ) A.try用于选定捕获异常的范围,在该范围中的语句可能会生成异常对象并抛出。对于没有用try监视 所产生的异常,Java系统无法抛出 B.catch用来捕捉try监视所产生的异常并进行处理 C.不论try块是否有异常发生,finally部分的内容都会被执行,它提供统一的出口 D.一个try语句可能与多个catch字句配合工作。 127. 有函数定义如下: public ab_(int x1,int x2) { return x1+x2; } 下面正确的说法是( D ) A.函数名不正确 C.return语句要使用括号 B.参数定义不正确 D.函数返回类型不正确 128. 有数组定义为 int[] k=new int[5]; 下面说法正确的是( A ) A.定义了一个有5个整型元素的数组 B.定义了一个有1个元素的整型数组,初始值是5 C.定义了一个整型对象变量,初始值为5 D.程序定义有错 129. 有一段java 应用程序,它的主类名是a1,那么编译后的类文件名可以是( B ) A. B. C. a1 D. 都对 11/58 130. 有语句: char[ ] someArray; 它的含义是( A ) A.仅仅声明了一个数组引用变量,并没有开辟真正的数组内存空间 B.声明了一个数组引用变量,同时开辟了真正的数组内存空间 C.仅仅开辟了真正的数组内存空间 D.语句有错 131. 有语句: public class A extends B implements C{} 下面的相关说法中,正确的是( A ) A.定义了一个名称为A的类 B.定义了一个名称为B的类 C.定义了一个名称为C的类 D.语句有错 132. 有主函数定义如下: public static void main()(String args[ ]) 下面说法中正确的是( C ) A.定义正确 B.函数名称应该是Main C.参数类型应该是string D.返回类型不能为void 133. 与方法public void add(int a){}为合理重载的方法是( D ) A.public int add(int a) {} B.public void add(long a) {} C.public void add(int a) {} D.public void add(int a,int b) {} 134. 语句 int i=65; n((char)i); 它的运行结果是( A ) A.A B.a 135. 语句 int i=97; n((char)i); 它的运行结果是( B ) A.A B.a 136. 语句:int x[]=new int[-5]; 产生的异常是( C ) A.IllegalArgumentException B.ArithmeticException C.NegativeArraySizeException C.65 D.程序出错 C.65 D.程序出错 D.ArrayIndexOutOfBoundsException 137. 语句: (1<0); 输出结果是( A ) A.false B."false" C.0 D.1<0 138. 在Applet的关键方法中,关闭浏览器以释放Applet占用的所有资源的方法是( D ) A.init() B.start() C.paint() D.destroy() 139. 在Character类中,可以判断字符是否为大写字母的方法是( A ) A.isUpperCase() B.toUpperCase() C.isLowerCase() D.toLowerCase() 12/58 140. 在Java Applet程序用户自定义的Applet子类中,可以通过重载在Applet的界面中显 和其它界面元素的方法是( C ) A. start( ) B. stop( ) C. init( ) D. paint( ) 示文字、图形 141. 在Java Applet程序用户自定义的Applet子类中,为了完成一些画图操作,一般需要重载父类的方法是 ( D ) A. picture() B. lineTo() C. draw() D. paint() 142. 在Java 应用程序中,程序的入口是( C ) A. init() B. begin() C. main() 143. 在Java语言中,编译器自动导入的包是( A ) A. B. C. D. 144. 在Java语言中,不能注释多行内容的符号是( A ) A.以//开始的注释 B.以/*开始,*/结束的注释 C.以/**开始,*/结束的注释 D.Java中没有能注释多行内容的方式 145. 在Java语言中,下列常量的表示不合法的是( B ) A.23 B..5 C.”a” D.’u0061’ 146. 在Java语言中,一个字符型数据占用的内存空间是( B ) A.1位 B.1个字节 C.2个字节 D.4个字节 147. 在Java语言中,以下标识符合法的是( D ) A.5w B.A% C.a+b D.$a D. 标准比特代码 D. start() 148. 在Java中,程序先由编译器转换为( B ) A. 机器码 B. 标准字节代码 C. 汇编程序 149. 在Java中,能够实现多重继承效果的方式是( B ) A.内部类 B.接口 C.适配器 D.同步 150. 在Java中,用package语句说明一个包时,下列说法正确的是( B ) A. 该包的属性必须与文件的属性相同 B. 该包的层次结构必须与文件目录的层次相同 C. 该包的类型必须与文件类型相同 D. 该包的大小必须与文件大小相同 151. 在Java中,由Java编译器自动导入,而无需在程序中用import导入的包是( D ) A. B. C. D. 152. 在编写Java 应用程序时,若需要使用到标准输入输出语句,必须在程序开头写 的语句是( C ) A. import .* ; B. import ; C. import .* ; D. import cs ; 153. 在编写异常处理的Java程序中,用来捕获Java异常对象的语句是( C ) A. if-else B. switch C. try D. throw 154. 在控制台运行Java字节代码的命令是( C ) A.link B.run C.java D.javac 155. 在浏览器中执行applet 程序,四个方法中最先执行的是( A ) A. init() B. start() C. destroy() D. stop() 13/58 156. 在同一个Java源程序中,如果import语句、package语句(创建包)、class语句(声明类)都存在,则 它们出现的次序应是( B ) A.import语句,package语句,class语句 B.package语句,import语句,class语句 C.class语句,import语句,package语句 D.import语句出现在先,package语句和class语句出现的次序随意 157. 在下列选项中,Java注释不可以使用的符号是( C ) A.// B./* C./ D.*/ 158. 在一个Java文件中,公共类最多只能定义( B ) A. 0个 B. 1个 C. 2个 D. 大于2个 159. 执行语句int [ ]x=new int[25];后,正确的说法是( A ) A. x[24]为0 B. x[24]未定义 C. x[25]为0 D. x[0]为空 160. 自定义的异常类所继承的类是( D ) A. Error类 B. AWTError C. VirtualMachineError D. Exception 1:第1章---第3章 基本知识 5:第5章 面向对象 7:第7章---第8章 图形 11:第11章 线程 4:第4章 数组和字符串 6:第6章 异常 9:第9章 Applet 14/58 填空题 题 1. 一个Java文件中,公共类最多只能定义 1 个。 2. 整型常量在机器中占 32 位。 3. Java语言的各种数据类型之间提供两种转换,即 自动转换 和强制转换。 4. 能够退出循环,并从紧接该循环的语句继续开始执行的语句是 break; 。 5. Java程序分为两类: java应用程序 和小应用程序。 6. 单精度类型变量fvar的定义语句是 float fvar; 。 7. Java语言的各种数据类型之间提供自动转换,如第1操作数是byte类型,第2操作数是float类型,其 计算结果是 float 类型。 8. 在Java语言中,将位数多的数据类型向位数少的数据类型转换时,只能采用 强制转换 。 9. 属性是用来描述对象表态特征的数据项, 方法 用来描述对象动态特征的操作序列。 10. Java程序分为两类:Java应用程序和 小应用程序; 。 11. 设x=2,y=4.7,表达式 (int)((x+y)%2/4)的值为 0 。 12. Java语言中实现跳转的语句是break和 continue 。 13. Java语言提供了两种在内存中存储浮点数的基本类型,float和 double 。 14. Math类中求随机数的方法是 Random(); 。 15. Java语言是一个纯面向对象的程序设计语言,具有严格的继承性。其中所有类都直接或间接来源于共同 的类 object 。 16. 设x,y,max均为int型变量,x、y已赋值。用三目条件运算符求x、y的最大值,并赋给变量max,这 条赋值语句是: max=x>y ?x:y; 。 17. Java应用程序的入口函数是 main() 。 18. 表达式!(true!=false)的结果为 false 。 19. Java语言中,和单精度数据类型相比,双精度类型的长度为 8 个字节。 20. java虚拟机 是软件模拟的计算机,它可以在任何处理器上安全兼容地执行保存在.class文件中的字 节码。 21. 如果在类中没有明确定义类属性的初始值,则会自动赋予缺省值,其中int数据类型的默认值为 0 。 22. 常量1.2F的F代表的意思是 浮点型 。 23. Java中所有类都是类 object 的子类。 24. Java程序的基本单位是 类 。 25. “标准输入流”和“标准输出流”分别对应于和 。 26. 和C语言不同,Java具有一种新的基本数据类型,它是 布尔 类型。 27. 表达式false1=false的结果是 编译错误 。 28. 关键字 default 表示switch语句中除了case以外的其他条件。 29. 类中的变量成员被称为属性,类中的函数成员一般被称为 局部成员(变量) 。 30. 语句n()作用是 进行控制台打印显示数据 。 31. Java语言中单精度float数据类型的长度为 4 个字节。 15/58 32. 如果在类中没有明确定义类属性的初始值,则会自动赋予缺省值,其中int数据类型的默认值为 0 。 33. 已知在一个Java源程序文件中有一名为Welcome的公共类,则该Java源程序文件的全名为 。 34. 数学表达式 1 2n 2 ,描述成Java语言支持的表达式,形式为 1/(n*(n-1))+2*n*n; 。 n(n1) 35. 面向对象的程序设计有三个基本要素,分别为 封装性 、继承和多态。 36. 执行语句String s=”这是棵梨树”;int L=();L的值是 5 。 37. Java中复杂类型数据包括类、接口和 数组 。 38. 设有整型数组的定义:int a[]=new int[8]; 则的值为 8 。 39. 定义一个整型数组y,它有5个元素分别是1,2,3,4,5。用一条语句实现对数组y的声明、创建和 赋值: Int y[]={1,2,3,4,5}; 。 40. 字符串"1"和字符串"-1"相加的结果是 1-1 。 41. 在Java中,数组下标从数字 0 开始。 42. 包中专门提供了两个类String和StringBuffer来处理字符串,其中 String 类用来存储和处理字符串常量。 43. 所有的数组都有一个属性 length ,这个属性存储了数组元素的个数。 44. 二维数组d中的第3行、第5列的元素的访问形式为 d[2][4] 。 45. Java语言中,所有的对象均通过 new 运算符分配内存,并对内存进行自动管理。 46. 如果有一个类SubClass是SuperClass的子类,能够被不同包中的类所使用,请写出该类的声明头: class SubClass extends SuperClass 。 47. 创建一个名为MyPackage的包的语句是 package MyPackage; 。 48. 写出抽象类IamAbstract的类头定义语句: abstract class IamAbstract 。 49. 在Java程序中,通过类的定义只能实现单一继承,通过接口的定义可以实现 多重 继承关系。 50. 写出定义最终类IamFinal的类头定义语句: final class IamFinal 。 51. 定义一个抽象方法abstractMethod,没有形式参数,返回值为布尔型值: abstract boolean abstractMethod(){} 。 52. 在Java语言中,用来引用当前对象父类的关键字是 super 。 53. 创建一个名为MyPackage的包的语句是 package MyPackage; 。 54. 如果在Java程序中,需要使用包中的所有类,则应该在程序开始处加上: import ; 。 55. 用关键字 final 修饰的类不能再派生出子类。 56. 用于修饰只能被该类本身所访问成员的访问修饰符是 private 。 57. 必须在抽象类之中定义,仅有方法头,但没有具体方法体和操作实现的方法是 抽象方法 。 58. super代表了对 父类 的引用。 59. 创建一个名为 MyPackage 的包的语句是: package MyPackage; 。 60. 子类可以继承父类的 非私有 成员。 61. 通过类MyClass中的不含参数的构造函数,生成该类的一个对象obj,正确的定义语句是: MyClass obj=new MyClass(); 。 62. 类NewClass的构造函数名称是 NewClass 。 63. 函数如果没有返回值,则返回类型应该定义为 void 。 64. Java默认导入的包是 ; 。 65. 用 final 修饰符所修饰的类不能再有子类。 66. 创建对象使用关键字运算符 new 。 16/58 67. 接口中的方法都是用abstract修饰的 抽象 方法。 68. 类中的 构造函数 函数会在声明类对象时自动被调用,进行初始化操作。 69. 在同一个类中有两种或两种以上的方法可以有相同的名字,只要它们的参数声明不同即可,这种情况称 为方法的 方法重载 。 70. 定义接口的关键字是 interface 。 71. 将一个变量定义为类变量的方法就是将这个变量标记上关键字 static 。 72. Java中,关键字 final 可用于修饰变量、方法和类。它修饰的变量一旦被赋值,就不能改变; 它修饰的方法不能被子类中的相同方法覆盖;它修饰类时,该类不能派生子类。 73. 类层次结构中,如果子类的一个方法与父类中的方法有相同的方法名并具有相同数量和类型的参数列 表,则称子类中的方法 覆盖 了父类中的方法。 74. 用户自定义的所有异常类都必须是 exception 的子类。 75. 在Java中,提供了错误捕获和处理机制,即 异常处理 机制。 76. 异常是程序运行过程中出现的中断正常程序控制流程的事件。在Java中,所有异常都是类 exception 的子类。 77. 创建一个标识有“中国北京”字样的标签对象gxdd的语句为: JLabel gxdd=new JLabel(“中国北 京”); 。 78. 基本布局管理器包括流式布局管理器等,其中可以将组件放置到所在容器上下左右位置的布局管理器为 BorderLayout 。 79. Applet的生命周期中的常见方法有init()、start()、paint()、 Stop() 和destroy()。 80. Java中,用来表示线程的类是 Thread 。 1:第1章---第3章 基本知识 5:第5章 面向对象 7:第7章---第8章 图形 11:第11章 线程 4:第4章 数组和字符串 6:第6章 异常 9:第9章 Applet 17/58 程序改错题 题 1. 下面的代码应该打印1是偶数还是奇数。请指出错误所在行号并改正。 (1) public class PartBCorrected { (2) public static void main(String args[]) { (3) int value = 1; (4) switch (value / 2) { (5) case 0: (6) n("偶 数"); (7) case 1: (8) n("奇 数"); (9) } (10) } (11) } 1. 第4行改为:switch(value%2) 2. 请指出错误所在行号并改正。 (1) public class InitArray { (2) public static void main(String args[]) { (3) int array[3] = { 1, 2, 3 }; (4) for (int counter = 0; counter <= 3; counter++) (5) ("%d%dn", counter, array[counter]); (6) } (7) } 2. 第3行改为:int array[]={1,2,3}; 3. 下列程序完成对一维数组的创建和逆序输出。请指出错误所在行号并改正。 (1) public class Test { (2) public static void main(String args[]) { (3) int i; (4) int a[5] = new int[5]; (5) for (i = 0; i < 5; i++) (6) a[i] = i; (7) for (i = ; i >= 0; i--) (8) n("a[" + i + "]=" + a[i]); (9) } (10) } 3. 第4行改为:int a[]=new int[5]; 第7行改为:for(i=-1;i>=0;i--) 18/58 4. 下列程序实现对数据的顺序查找功能,若找到,返回true,否则返回false。请指出错误所在行号并改正。 (1) public class BreakDemo { (2) public static void main(String args[]) { (3) int arrayOfInts[10] = { 32, 87, 3, 589, 12, 1076, 2000, 8, 622, 127 }; (4) int searchfor = 12; (5) int i = 0; (6) boolean foundIt = false; (7) for (; i < (); i++) { (8) if (arrayOfInts[i] == searchfor) { (9) foundIt = true; (10) break; (11) } (12) } (13) if (foundIt) { (14) n("Found " + searchfor + " at index " + i); (15) } else { (16) n(searchfor + "not in the array"); (17) } (18) } (19) } 4. 第3行改为:int arrayOfInts[]=.... 第7行改为:for(;i<;i++) 5. 下面的程序实现两个矩阵A与B相乘并输出乘积结果矩阵:C ij =A ik ×B kj 。请指出错误所在行号并改正。 (1) public class Exec { (2) public static void main(String[] args) { (3) int i, j, k; (4) int a[2][3] = new int[2][3]; (5) int b[][] = { { 1, 5, 2, 8 }, { 5, 9, 10, -3 }, { 2, 7, -5, -18 } }; (6) int c[][] = new int[2][4]; (7) for (i = 0; i < 2; i++) (8) for (j = 0; j < 3; j++) (9) a[i][j] = (i + 1) * (j + 2);//初始化 矩阵A (10) for (i = 0; i < 2; i++) { (11) for (j = 0; j < 4; j++) { (12) c[i][j] = 0; (13) for (k = 0; k < 3; k++) (14) c[i][j]+= a[i][k] * b[k][j]; (15) } (16) } (17) n("*** Matrix C ***"); (18) for (i = 0; i < 2; i++) { (19) for (j = 0; j < 5; j++) (20) (c[i][j] + " "); (21) n(); (22) } (23) } (24) } 5. 第4行改为:int a[][]=new int[2][3]; 第19行改为:for(j=0;j<4;j++) 19/58 6. 下列程序定义TestPackage类,它继承自Test类,同时将其打包至ua中。请指出错 误所在行号并改正。 (1) import ua; (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) n("成功!!"); (10) } (11) } 6. 第1行:import改为package 第2行改为:public class TestPackage extends Test 7. 请指出错误所在行号并改正。 (1) import .*; (2) class Exec { (3) public static void main(String args[]) { (4) SubSubClass x = new SubSubClass(10, 20, 30); (5) (); (6) } (7) } (8) class SuperClass { (9) int a, b; (10) SuperClass(int aa, int bb) { (11) a = aa; (12) b = bb; (13) } (14) void show() { (15) n("a=" + a + "nb=" + b); (16) } (17) } (18) class SubClass extends SuperClass { (19) int c; (20) SubClass(int aa, int bb, int cc) { (21) super(aa, bb); (22) c = cc; (23) } (24) } (25) class SubSubClass extends SubClass { (26) int a; (27) SubSubClass(int aa, int bb, int cc) { (28) a = aa + bb + cc; (29) super(aa, bb, cc); (30) } (31) void show() { (32) n("a=" + a + "nb=" + b + "nc=" + c); (33) } (34) } 28行与29行交换顺序(29行放到28行前面) 20/58 8. 下列程序试图完成以下功能:在类Employee中定义构造方法完成对成员EmployeeId的初始化。类 Manager继承自Employee,在其构造方法中通过调用父类构造方法完成对父类成员的初始化。请指出错 误所在行号并改正。 (1) class Employee { (2) int EmployeeId; (3) public A(int id) { (4) EmployeeId = id; (5) } (6) } (7) class Manager extends Employee { (8) public Manager(int id) { (9) A(id); (10) } (11) } (12) public class Test { (13) public static void main(String args[]) { (14) new Manager(20); (15) } (16) } 第3行改为:public void A(int id) 9. 请指出错误所在行号并改正。 (1) class Employee{ (2) String name; (3) public Employee(String s){ (4) name = s;} } (5) class Manager extends Employee{ (6) String department; (7) public Manager(String s,String d){ (8) department = d; (9) super(s); (10) n("I am a manager "+s); } (11) } (12) class Exec { (13) public static void main(String args[]) (14) { (15) Manager mag=new Manager("John","1000"); (16) } (17) } 8行与9行交换顺序(9行放到8行前面) 21/58 10. 请指出错误所在行号并改正。 (1) class Time1 { (2) private int hour; (3) private int minute; (4) public void setTime(int h, int m) { (5) hour = ((h >= 0 && h < 24) ? h : 0); (6) minute = ((m >= 0 && m < 60) ? m : 0); (7) } (8) public void print() { (9) ("%d:%d", hour, minute); (10) } (11) } (12) public class MemberAccessTest { (13) public static void main(String args[]) { (14) Time1 time = new Time1(); (15) = 7; (16) = 15; (17) (); (18) } (19) } 第15、16行去除改为e(7,15); 11. 请指出错误所在行号并改正。 (1) public class c { (2) int x = 20; (3) int y = 30 (4) static int plus() { (5) return x + y; (6) } (7) public static void main(String[] args) { (8) int result = plus(); (9) n("result = " + result); (10) } (11) } 第2、3行前面加上static 12. 下列程序首先定义了类ConstructTest,通过构造方法将其中的成员i值赋为0。类A完成对ConstructTest 对象c的私有成员i赋值100的功能。请指出错误所在行号并改正。 (1) public class ConstructTest { (2) private int i; (3) public A() { (4) i = 0; (5) } (6) public void setI(int i) { (7) this.i = i; (8) } (9) } (10) class A { (11) public static void main(String args[]) { (12) ConstructTest c = new ConstructTest(); (13) c.i = 100; (14) } (15) } 第3行改为 public void A() 第13行改为:(100); 22/58 13. 下面程序的功能是利用Circle类的 getArea方法分别计算半径是2和20的圆面积,请指出错误所在行号 并改正。 (1) class Circle { (2) double radius; (3) public Circle(double c) { (4) radius = c; (5) } (6) public double getArea() { (7) return * radius * radius; (8) } (9) } (10) public class TestCircle { (11) public void main(String[] args) { (12) Circle mycir = new Circle(2); (13) n("The area is :" + a()); (14) Circle sec; (15) n("The Second area is :" + a()); (16) } (17) } 第14行改为:Circle sec=new Circle(20); 14. 请指出错误所在行号并改正。 (1) class Student{ (2) String name; (3) int age; (4) public Student(String s, int n){ (5) name = s; age= n; (6) n("有2个参数的构造方法"); (7) } (8) public Student(String s){ (9) n("有1个参数的构造方法"); (10) this(s, 20); (11) } (12) public Student(){ (13) this("Unknown"); (14) n("没有参数的构造方法"); (15) } (16) } (17) class Exe{ (18) public static void main(String args[]) (19) { (20) Student a=new Student("Wang"); (21) } (22) } 行与10行交换顺序(10行放到9行前面) 23/58 15. 下面程序的功能是利用A类的 tryVariables方法分别输出变量a,b,c,d的值,请指出错误所在行号并 改正。 (1) class B { (2) public int a = 10; (3) private int b = 20; (4) protected int c = 30; (5) public int getB( ){ (6) return b; } (7) } (8) class A extends B { (9) public int d; (10) public void tryVariables( ) { (11) n(a); (12) n(b); (13) n(c); (14) n(d); (15) } (16) public static void main(String args[]) (17) {A exa=new A(); (18) tryVariables( ); (19) } (20) } 15. 第12行改为:n(getB()); 第18行改为:iables(); 16. 请指出错误所在行号并改正。 (1) public class c12 { (2) static void add(double x, double y) { (3) double z; (4) z = x + y; (5) n("z=" + z); (6) x = x + 3.2; (7) y = y + 1.2; (8) n("x=" + x + " y=" + y); (9) return z; (10) } (11) static double add1(double y1, double y2) { (12) double z; (13) z = y1 + y2 + 2.9; (14) return z; (15) } (16) public static void main(String[] args) { (17) int a = 2, b = 7; (18) double f1 = 2, f2 = 4, f3; (19) add(a, b); (20) n("a=" + a + "b=" + b); (21) f3 = add1(f1, f2, 3.5); (22) f3 = 2 + add1(f1, f2); (23) n("f1=" + f1 + "f2=" + f2 + "f3=" + f3); (24) } (25) } 16. 第9行删除,第21行改为:f3=add(f1,f2); 1:第1章---第3章 基本知识 4:第4章 数组和字符串 24/58 5:第5章 面向对象 7:第7章---第8章 图形 11:第11章 线程 6:第6章 异常 9:第9章 Applet 25/58 程序分析题 题 1. 请写出程序的运行结果。 public class Exec { public static void main(String args[]) { int x, y; x = 1; y = 2; n("The output is " + x + y); n("The output is " + (x + y)); } } The output is 12 The output is 3 2. 请写出程序的运行结果。 class Cls { int val; } public class Exec { public static void main(String args[]) { Cls c1 = new Cls(); = 0; func(c1); n(); } public static void func(Cls c) { = 100; n(); } } 100 100 26/58 3. 请写出程序的运行结果。 public class Exec { public static void main(String args[]) { int grade = 110; if (grade >= 60) if (grade <= 100) n("及格"); else n("不及格"); n("结束"); } } 3. 不及格 结束 4. 请写出程序的运行结果。 public class ContinueOp { public static void main(String args[]) { int n; for (n = 1; n <= 4; n++) { if (n % 2 == 0) continue; n("n=" + n); } } } 4. n=1 n=3 5. 请写出程序的运行结果。 class NewClass { int val; } public class Exec { public static void main(String args[]) { NewClass c1 = new NewClass(); = 0; func(c1); n(); } public static void func(NewClass c) { = 1; n(); } } 5. 1 1 27/58 6. 请写出程序的运行结果。 public class Exec { public static void main(String args[]) { int grade = 101; if (grade < 0 || grade > 100) n("成绩不正确"); else n("成绩正确"); if (grade >= 60) if (grade <= 100) n("及格"); else n("不及格"); } } 6. 成绩不正确 不及格 7. class a {public static void main(String args[]) {int i=2; switch(i){ case 0: n("zero"); break; case 1: n("one"); break; case 2: n("two"); default:n("default"); } } } 7. two Default 8. 请写出程序的运行结果。 public class HelloWorld { public static void main(String args[]) { boolean x = true; boolean y = false; n("X&&Y=" + (x && y)); n("X||Y=" + (x || y)); } } 8. X&&Y=false X||Y=true 28/58 9. 请写出程序的运行结果。 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); n("type= " + type); n("flag= " + flag); } } 9. Type=及格 flag=-1 10. 请写出程序的运行结果。 public class HelloWorld { public static void main(String args[]) { boolean x = true; boolean y = false; n("X | | Y=" + (x | | y)); n("!Y=" + (!y)); } } 10. X||Y=true !Y=true 11. class HelloWorld { public static void main (String args[]) { int i = 0; String greetings [] = { "Hello world!", "HELLO WORLD!"}; while (i < 2) { n (greetings[i]); i++;} }} 11. Hello world! HELLO WORLD! 29/58