资源描述
. . . .
第一局部
根底知识练习
目标
本章对应于《学生指南》各章的容分别提供了练习题集,包括:
● 第一章Java入门
● 第二章数据类型和运算符
● 第三章流程控制与数组
● 第四章封装
● 第五章继承
● 第六章抽象类与接口
● 第七章多态
● 第八章异常
● 第九章多线程机制
● 第十章输入输出流
● 第十一章使用泛型和集合框架
● 第十二章基于Swing的图形用户界面(GUI)设计
● 第十三章Java事件驱动编程
第一章练习题〔Java入门〕
1.以下哪项不是JDK所包含的容?〔选一项〕
A.Java编程语言
B.工具与工具的API
C.Java EE扩展API
D.Java平台虚拟机
2.以下关于JDK、JRE和JVM的描述。哪项正确?
A.JDK中包含了JRE,JVM中包含了JRE
B.JRE中包含了JDK,JDK中包含了JVM
C.JRE中包含了JDK,JVM中包含了JRE
D.JDK中包含了JRE,JRE中包含了JVM
3.以下哪个工具可以编译java源文件?
A.javac
B.jdb
C.javadoc
D.junit
4.JDK工具javadoc的作用是哪项?
A.生成Java文档
B.编译Java源文件
C.执行Java类文件
D.测试Java代码
5.以下哪些包是Java标准库中常用的包?〔选三项〕
A.java.lang
B.javax.servlet .
C.j ava. io
D.java.sql
83 / 83
6.使用JDK工具生成的Java文档的文件格式是?
A.XML格式
B.自定义格式
c.二进制格式
D.HTML格式
7.以下关于JVM的表达,哪项正确?〔选两项〕
A.JVM运行于操作系统之上,它依赖于操作系统
B.JVM运行于操作系统之上,它与操作系统无关
C.JVM支持Java程序运行,它能够直接运行Java字节码文件
D.JVM支持Java程序运行,它能够直接运行Java源代码文件
8.以下关于支持Java运行平台的表达,哪项错误?
A.Java可在Solaris平台上运行
B.Java可在Windows平台上运行
C.Java语言与平台无关。Java程序的运行结果依赖于操作系统
D.Java语言与平台无关。Java程序的运行结果与操作系统无关
9.以下关于Applet和Java程序之间关系的表达,哪项错误?
A. -个Applet就是一段Java程序
B.Applet是一种特殊的Java程序,它需要运行在Web服务器上
C.Applet是一种特殊的Java程序,它需要运行在Web浏览器上
D.Applet是一种Java SE平台的应用程序
10.以下关于Java HotSpot的描述,哪两项错误?〔选两项〕
A.JavaHotSpot是一种热编译技术,在编译Java源程序时会被使用
B.Java HotSpot是一种热编译技术,在运行Java代码时会被使用
C.Java HotSpot是一种热编译技术,它只对程序的局部字节码进展优化
D.Java HotSpot是一种热编译技术,它会对程序的全部字节码进展优化
11.环境变量PATH中含有多个路径时,路径和路径之间可以用哪项来隔开?
A.:
B. ,
C.*
D:|
12.CLASSPATH中的“.〞的含义是哪项?
A.省略号
B.当前目录
C.所有目录
D.上级目录
13.JVM在执行一个Java类时,大致采用以下过程?
A.执行类中的代码一>装载类一>校验类
B.校验类一>装载类一>执行类中的代码
C.装载类一>执行类中的代码一>校验类
D.装载类一>校验类一>执行类中的代码
14.当运行—个Java程序时,传递参数的格式是哪项?
A. java类名参数1,参数2
B. javac类名参数1参数2
C. java类名参数1参数2
D. java类名参数1+参数2
15.以下关于Java文件名的表达,正确的有?〔选两项〕
A.Java源文件的扩展名应为.java
B.Java源文件的文件名应与文件中的类名一致
C. Java字节码文件的扩展名应为.java
D. 一个Java源文件中只能包含一个Java类
lC
2D
3A
4A
SACD
6D
7AC
8C
9B
10 A D
11 A
12 B
13 D
14 C
15 A B
第二章练习题〔数据类型和运算符〕
1.以下哪项不属于Java语言的根本数据类型?
A.int
B.String
C.double
D.boolean
2.以下哪项不是int类型的字面量?
A.\u03A6
B.077
C.OxABBC
D.20
3.以下哪项不是有效的标识符?
A.userName
B.2test
C.$change
D._password
4.以下哪项是Java语言中所规定的注释样式?〔选三项〕
A.//单行注释
B.--单行注释
C. /*
*单行或多行注释
*/
D. /kk
*文档注释
*/
5.以下哪项不是Java语言的关键字?
A.goto
B.sizeof
C.instanceof
D.volatile
6.现有如下五个声明:
Linel: int a_really_really_really_long_variable_name=5 ;
Line2: int _hi=6;
Line3: int big=Integer. getlnteger("7〞);
Line4:int $dollars=8;
line5: int %opercent=9;
哪行无法通过编译?
A.Line1
B.Line3
C. Line4
D. Line5
7.现有:
1. class Top {
2. static int x=l;
3. public Top (inty) { x*=3; }
4. }
5. class Middle extends Top {
6. public Middle() {x+=1; )
7. public static void main (String [] args) {
8. Middle m = new Middle();
9. System. out .println (x);
IO. }
II. }
结果为:
A.1
B. 2
C.3
D.编译失败
8.现有:
1. class Passer f
2. static final int X=5;
3.public static void main (String [] args) {
4. new Passer().go (x);
5.System. out .print (x);
6, )
7. void go (int x) {
8.System. out .print(x++);
9. }
10. }
结果是什么?
A.55
B.56
C.65
D.66
9.现有:
1. class Wrench f
2.public static void main(String [] args) {
3.Wrench w=new Wrench(); Wrench w2=new Wrench();
4. w2=go (w, w2);
5.System.out.print (w2==w);
6. }
7.static Wrench go (Wrench wrl, Wrench wr2) {
8.Wrench wr3=wrl; wrl=wr2; wr2=wr3;
9. return wr3;
10. }
11. }
结果是什么?
A. false
B. true
C.编译失败
D.运行的时候有异常抛出
10.现有:
5. class Wrench2 {
6. int size;
7.public static void main(String [] args) {
8.Wrench2 w=new Wrench2();
9. w.size=II;
IO. Wrench2 w2=go(w, w.size);
II. System. out .print (w2. size);
12. )
13. static Wrench2 go(Wrench2 wr. int s) {
14. S=12;
15。 return wr;
16. }
17. }
结果为:
A. 11
B. 12
c.编译失败。
D.运行时异常被抛出
11.现有:
class Test2 f
public static void main (String [] args) {
short a,b,C;
a=l;
b=2;
C=a+b;
a+=2:
}
}
以上代码中,哪一句是错误的?
A.a=1:
B.C=a+b;
C. a+=2;
D. short a,b,C;
12.表达式:1-2/5+2 'k5的结果是哪项?
A. 10.6
B. 9.8
C. 9
13.现有代码片段:
String s="123";
String sl=S+456;
请问sl的结果是哪项?
A. 123456
B. 579
C.编译错误
D.运行时抛出异常
14.根本数据类型float的包裹类是哪项?
A. Integer
B. Double
C. Float
D. Character
15.现有:
1. class Test4 {
2. public static void main (String [] args) {
3. boolean X=true;
4. boolean y=false;
5. short Z=42;
6.
7. if((z++==42) && (y=true))z++;
8.if((x=false) || (++z==45)) z++;
9.
10. System. out.println(¨z=〞+z);
II. }
12. }
结果为:
A. Z=42
B. z=44
C. Z= 45
D. z= 46
第二章练习题
参考答案
1B
2A
3B
4ACD
5B
6D
7D
8A
9B
10 A
11 B
12 D
13 A
14 C
15 D
第三章练习题
第三章练习题〔流程控制与数组〕
1.现有:
class TestApp{
public static void main (String[] args){
for (int i=0; i<lO;i++){
if(i==3)
break;
System. out .print (i);
}
}
}
程序运行后的输出是哪项?
A.0123
B.012456789
C. 0123456789
D. 012
2.程序:
class TestApp{
public static void main (String[] args){
int x=6;
if (x>l)
System. out. println("x>l");
else if (x>5)
System. out .println("x>5");
else if (x<10)
System. out. println("x<lO");
else if (x<29)
System. out .println( "x<29");
else
System. out.println〔“以上都不是〞〕;
}
}
上述程序运行后的结果是哪项?
A.x>5
B.x>l
C. x<10
D.x<29
3.现有:
class TestApp{
public static void main (String[] args){
int [5] myarray={ 10, 11, 12, 13, 14);
int sum=0;
for (int x : myarray)
sum+=x;
System. out. println( "sum= "+sum);
}
}
上述程序运行后的结果是哪项?
A. sum=10
B. sum=70
C. sum=60
D. 运行时抛出异常
4.以下有关数组的声明中,正确的选项是哪项?〔选两项〕
A. int s[10];
B. int[10] s;
C. int[5] s={l,2,3,4,5};
D. int s[];
5.数组array,其最后一个元素的下标是?
A. array. size
B. array. length-l
C. array. size-l
D. array.length
6.程序:
class TestApp{
public static void main (String[] args){
int X=5:
switch (x){
case l:
case 2:
case 3:
System. out.println〔“一季度〞〕;
break;
case 4:
case 5:
case 6:
System. out.println〔“二季度〞〕;
break;
default:
System. out.println〔“三季度以上〞〕;
break;
)
}
)
上述程序运行后的结果是哪项?
A. 一季度
B.二季度
c.三季度以上
D.无输出
7.为将数组myArray的长度由3改为6,现采取以下编码:
int[]myArray=new int [3];
myArray=new int[6];
代码执行后,以下表达哪项是正确的?
A.数组myArray的长度已由3改为6,其中前3个元素的值不变,后3个元素
的值为空。
B.数组myArray的长度已由3改为6,其中前3个元素的值不变,后3个元素
需再经过初始化后才能使用。
C.数组myArray的长度没有变化。
D.数组myArray的长度已由3改为6,原来3个元素的值全部丢失。
8.现有:
1. class Ifs {
2.public static void main (String [] args) {
3.boolean state=false;
4. int i=2;
5.if( (++i>2) && (state=true))
6.i++;
7.if( (++i>4) l l (state=false))
8.i++;
9.System.out .println (i);
10. }
11. }
结果为:
A. 6
B. 5
C. 4
D.编译失败
9.现有:
3. public class Tester {
4.public static void main (String[] args) {
5. intx-5;
6. Integer xl=x; Integer x2=x;
7.int x3=new Integer(5);
8. system..ut.print(x1.equals(x));
9. system..ut.print(xl==x);
lu. system..ut.print(x2.equals(xl));
11. system..ut.print(x2==xl);
12- system..ut.print(x2==x3);
13- system..ut.print(x2.equals(x3));
“ l4.}
15. }
结果为:
A.编译失败
B. falsefalsetruetruetruetrue
C. truetruetruetruetruetrue
D. falsefalsetruetruetruefalse
E. truefalsetruefalsefalsetrue
F.运行时异常被抛出
10.现有:
1. class Rectangle {
2' public static V.id main(string [] args) {
3. int[]x=(1,2,3);
4. x[1]= (x[1]>1) ?x[2]: O;
5. System.out.println(x[1]);
6. }
7. }
结果为:
A.3
B.2
C.1
D.0
11.现有:
1.class Output (
2.public static void main (String[] args) {
3. int i=5:
4.System.out.print( "4"+i+"");
5.System.out.print (i+5+"7");
6.System.out.println (i+"8");
7. }
8. }
结果为:
A. 9 9722
B. 9 55758
C. 45 10758
D.45 9722
12.以下哪种初始化数组的方式是错误的?
A. String[]names={"zhang", "wang", "li");
B. String names[] =new String [3];
names [O] ="zhang"; names [1] ="wang"; names [2] ="li";
C. String[3] names={"zhang", "wang", "li"};
D. 以上皆正确
13.现有:
1. class WhileTests {
2.public static void main (String [] args) {
3. int X=5;
4. while (++x<4) {
5.--x;
6. }
7.System.out.println( "x="+x);
8. }
9. }
结果是什么?
A.X=6
B. X=5
C.X=2
D.编译失败
14.现有:
1. class Test2 f
2.public static void main (String [] args) {
3. boolean X= true;
4. boolean y=false;
5. short Z=20;
6.
7.if((x==true) && (y=true)) z++;
8. if((y==true) || (++z==22)) z++;
9.
10. System. out .println( "z="+z);
11. }
12. }
结果是什么?
A.Z=21
B. z=22
C. z=23
D. Z= 24
15.现有:
1. class Foo {
2.public static void main (String [] args) {
3. int x=O;
4. int y=4;
5.for (int z=0; z<3; Z++; X++) {
6. if(x>1&++y<10)
7. y++;
8. }
9.System. out .println (y);
10. }
11. }
结果是什么?
A.7
B.8
C.10
D.12
I D
2B
3C
4CD
5B
6B
7D
8A
9C
11 C
12 C
13 A
14 B
15 B
第四章练习题〔封装〕
1.以下有关类、对象和实例的表达,正确的选项是哪一项?
A.类就是对象,对象就是类,实例是对象的另一个名称,三者没有差异
B.对象是类的抽象,类是对象的具体化,实例是对象的另一个名称
C.类是对象的抽象,对象是类的具体化,实例是类的另一个名称
D.类是对象的抽象,对象是类的具体化,实例是对象的另一个名称
2.以下类Account的构造方法中,声明正确的选项是?
A. Account (String name){)
B. Account (String name)
C.Account (name)()
D. NewAccount (String name){)
3.类Account中字段声明正确的选项是哪项?
A. class Account f
name;
amount;
)
B. class Account{
String name=l.0;
double amount="Mike";
)
C. class Accountf
String name;
double amount;
)
D. class Account{
String name= "Mike,,, double amount=1000.0;
)
4.类Account中方法声明正确的选项是哪一项?
A. class Account f
deposit();
)
B. class Accountf
void deposit();
}
C. class Accountf
void deposit(){)
)
D. class Accountf
void deposit{)
)
5.以下有关类声明的代码片段,哪一项为哪一项正确的?
A. package school;
import java. sql.*;
class Student {
}
B.import java.sql.*;
package school;
class Student f
)
C. package school;
class Student{
}
import java. sql.*j
D. package school;
import java. sql.*;
private String name;
class Student {
}
6.有关new关键字的描述正确的选项是哪项?
A.创建对象实例的时候可以不使用new关键字
B.new所创建的对象不占用存空间
C.new会调用类的构造器来创建对象
D.new所创建的对象一定存在引用变量
7.以下哪些是方法public int add (int a)的重载方法?〔选三项〕
A. public int add (long a);
B. public void add (int a)j
C. public void add (long a);
D. public int add (float a);
8.我们定义一个Account类来描述银行账户,银行账户有账户名、金额等属性
特征,同时有存款、取款等行为特征,下述代码适合描述的是哪项?
A.class Accountf
String name;//账户
String amount; //金额
Account (String name)( )
void deposit (double mount){ //存款
)
void withdraw (double mount){ //取款
}
)
B.class Accountf
String name;//账户
doujole amount; //金额
Account (double amount){ )
void deposit (double mount){ //存款
)
void withdraw (double mount){ //取款
)
)
C.class Accountf
String name;//账户
double amount; //金额
Account (String name){ )
void deposit (double mount){//存款
)
void withdraw (double mount){ //取款
)
)
D.class Accountf
String name;//账户
double amount;//金额
Account (String name){ )
void deposit(){//存款
)
void withdraw(){//取款
)
)
9.现有:
1. class Banana2 f
2. static int X=2;
3.'public static void main (String [] args) {
4. int X=2;
5.Banana2 b=new Banana2();
6. b.go(x);
7. }
8. static {x+=x; )
9. void go (int x) {
10. ++x;
11. System. out.println (x);
12. }
13. }
结果为:
A.7
B. 5
C. 3
D. 2
10.现有:
1. class TestFoo f
2. int x;
3. String y;
4.int getX() { return x; }
5.String getY() {return y; }
6. void setX (int x) {
7. int Z=7:
8. this.x=x;
9. }
10. }
可以添加多少个修饰符来封装此类?
A.5
B. 4
C. 3
D. 2
11.定义枚举如下:
public enum Direction{
EAST,SOUTH,WEST,NORTH
)
F列正确使用该枚举类型的语句是哪项?
A. Direction Direction=EAST;
B. Direction direction=Direction.WEST;
C. int a- Direction.NORTH;
n Direction direction=2;
12.定义类:
package utils;
public class Rep{
public static String twice (String s){return s+s ;)
}
再定义另一个类Demo:
l.//insert code here
2.public class Demo{
3. public static void main (String[] args){
4.System. out .println( twice( "Hello"));
5. }
6.}
在第一行插入哪项代码,可以使程序正常编译和执行?
A.import utils.*;
B. import utils.Rep.*;
C. import static utils.Rep.twice;
D. static import utils.Rep.twice;
13.现有:
public class TestDemo{
private int X-2;
static int y=3;
public void method(){
final int i=100;
int j =10;
class Cinner {
public void mymethod(){
//Here
}
展开阅读全文