java同步练习册
《Java语言与技术》同步练习册
第一章 Java语言概述
1. Java语言不是大小写敏感的。 ( ) F
2. Java语言是编译型高级语言,运行前需要进行编译。
( )
F
3. 从编程语言的特点看,Java语言比c/c++语言要更安全。 ( ) T
4. Java字节码运行有两种方式:解释方式和即时编译。 ( ) T
5. Java源程序需要先编译成字节代码,然后由虚拟机(VM)转变成平台相关的具体操作命令。 ( ) T
6. Java源文件的后缀名是*.class。 ( ) F
7. Java字节码文件的后缀名是*.class ( )
T
8. 每个Java程序可以拥有多个类,但是其中只能有一个主类。 ( ) T
9. Java语言的主要类库不包含以下的哪一个? ( )
A. java.lang B. java.io C. java.net D. java.use D
10. java.lang包由编译器自动导入,无需在程序中用import语句导入。 ( ) T
11. 关于Java类库的用途以下的说法哪个是不正确的?( )
A. java.lang是核心类库,包含了运行Java程序必不可少的系统类。 B. java.awt包含一些实用工具。 C. java.sql含有数据库连接类。
D. java.rmi含有远程方法调用,分布式对象类。 B 12. T 13.
A
含有Main函数的类,即为Java程序中的主类。 ( )
Java的每个语句以下面哪个符号作为结束符?( )
A. ; B. , C. . D. #
14.
B
Java的每个语句以下面哪个符号作为类的开始符号?( )
A. : B. { C. // D. #
15.
B
Java语言用以下面哪个关键字作为类的标识?( )
A. import B. class C. public D. new
16. Java源程序用关键词import来引入所需要的类。 ( ) T
17. Java程序中含有Main函数,即为Applet。 ( ) F
18. 所有Java程序都以main函数作为程序入口。 ( ) F
19. Applet程序能够独立运行。 ( ) F
20. Java的Applet程序可以利用浏览器作为运行界面。( ) T
21. Java小应用程序的不正当使用受到WWW浏览器的限制。 ( ) T
22. 下面说法不正确的是?( )
A. Applet程序不需要main方法。
B. Applet程序不能独立运行。
C. Applet程序不提供对播放声音的支持。
D. Applet程序只能和提供它的服务器进行通讯。 C
23. 用标记把applet程序嵌入网页中,下面哪一个属性不是必须指明的?
A.code B.width C.height D.name D
24. 运行Java程序需要使用工具Javac.exe。 ( ) F
25. 编译Java程序需要使用工具Java.exe。 ( ) F
26. JDK中EXE文件的用途说明中正确的是?( )
A. java.exe用于编译java源程序。 B. javac.exe用于解释applet。 C. jdb.exe用于调试java程序。 D. javap.exe用于生成文档。 C
27. 运行程序helloworld.class使用的DOS命令是?( ) a) java helloworld.class b) java helloworld
c) javac helloworld.class d) javac helloworld B
28. 编译程序test.java的操作是?( )。
A. javac test.java B. javac test C. java test.java
D. java test A
29. 欲将程序hello嵌入HTML文件中,需要如何指定CODE标签?( )
A. CODE = ―hello.java‖; B. CODE = ―hello.class‖; C. CODE = ―hello‖;
D. CODE = ―hello.exe‖。 B
30. 关于Java语言的安全性下面说法不正确的是?( )。
A. Java语言取消了指针。
B. Java语言不允许直接操作内存,而是采用自动垃圾回收的机制。 C. 通过访问限定符限制对象的存取权限。
D. 只允许applet访问网络,不允许application访问网络。 D
31. 关于Java语言的特点,以下哪条是错误的?( )
A. Java是跨平台的,编译后的字节码文件可以不做准备的运行于任何系统。 B. Java的例外处理机制分离了不同类型的异常事件。
C. 类是Java中的一种重要的复合数据类型,但Java仍然有简单数据类型。 D. Java语言是解释型的语言,但仍然需要一个近似的编译过程。
A
第二章 简单数据类型
1. Java语言中的简单数据类型不包括以下那种?( ) a) long b) boolean c) date d) float C
2. 下面的语句中哪一条能无警告或报错通过编译?( )
A. char c=‖a‖; B. byte b=2567; C. boolean b=null; D. int i=10; D
3. 下面标识符中合法的是?( )
a) user@sohu b) do c) 21cn d) Char D 4. 在同一个Java类中同时定义两个成员变量:Ctest和ctest是合法的。(T 5. Java语言中的标识符命名可以用数字作为开头字符。 ( )
F 6. Java语言中的标识符命名能使用“$”字符。
( ) T 7. Java语言中的标识符命名能使用“%”字符。
( )
F
)
8. 以下哪一个是Java语言中的关键字(保留字)?( )
a) begin b) end
c) continue d) down C
9. 以下哪一个不是Java语言中的关键字(保留字)?( )
a) private b) extends c) new d) all D
10. 下面的方法定义中,第4行能够无错误的插入下列哪一条语句?( ) 1. public void test(){ 2. final int I; 3. int J; 4. 5. }
A. I++; B. I = J+1; C. J = I+1; D. I = I+J; C
11. 下面程序中哪一行会引起编译错误?
1、public void modify ( ) { 1、int i,j,k; 2、i = 100;
3、while (i > 0) { 4、j = i*2;
5、System.out.println(―the value of j is ‖+j); 6、k = k +1; 7、i--; 8、} 9、}
A. 第4行 B. 第6行 C. 第7行 D. 第8行 C
12. int型public变量maxA,它的值保持为100不变,则正确的定义语句是?( )
A. public int maxA = 100 B. final int maxA = 100 C. public const int maxA = 100 D. public final int maxA = 100
D
13. 常量是程序运行中不能被修改的量,Java中使用static关键字来定义。(F
)
第三章 运算符和表达式
1. +,-,*,/既可以用于整数运算,又可以用于浮点数运算。 ( T
2. +,-,*,/有相同的优先级。
( )
)
F
3. 以下代码段执行后的输出结果为?( )
int x=3; int y=10 ;
System.out.println(y%x);
A.0 B.1 C.2 D.3 B
4. 下面程序的运行结果是?( )
public class test { public static void main(String[ ] args){ int j=7; if (j/3==0) System.out.println(
A.ok B. more C. too more D. 程序出错 B
5. 设x=1,y=2,z=3,u=false。表达式y+=z--/++x的值为3。 ( ) T
6. 设x=1,y=2,z=3,u=false。表达式u=!((x>=--y||y++
的值为false。 ( ) F
7. 设x=1,y=2,z=3,u=false。表达式u=z
( ) T
8. 求得x除以y的余数赋值给z的Java语句是:z = x / y; ( ) F
9. 将变量a与b的差赋值给c,再把b的数值减1的Java语句是:c = a –
b--; ( ) T
10. 检查输入数据input是否是合法的小时数(在0到24之间),如是则将此
值赋给变量hour,否则将-1赋给hour的Java语句是:hour = ( input > = 0 && input
11. 有整形变量X,请问以下哪一个语句不能使X的值加1? ( )
a) x++; b) ++x; c) x + 1; d) x += 1;
C
第四章 控制语句
1. continue语句用来结束当前循环。 ( ) T
2. return语句用来结束整个循环语句。 ( ) F
3. 当方法说明中用void声明返回类型为空时,应给出如下结束语句:return null;
( ) F
4. do-while语句首先计算终止条件,当条件满足时,才去执行循环体中的语句。
( ) F
5. /*用于单行注释。 ( ) F
6. 以下哪一种不是结构化程序设计的三种基本结构? ( )
a) 顺序 b) 分支 c) 循环
d) 条件跳转 D
7. 下面循环结构在运行时有几条输出?( )
int j = 0; do{
System.out.println( ―j is ― + j++);
}while (j
B.5 C.6 D.7
C
8. 下面的程序片断,输入哪个数字不会显示
switch (x) { case 1: System.out.println(
System.out.println(
9. 以下Java程序能正常通过编译。 ( )while( i > 100 ) sum += i; i--; F
10. 以下Java程序能正常通过编译。 ( )int i = 10;
do {
System.out.println( i ); i--;
}while( i = 1 ); F
11. 函数定义如下:
int func ( int i ) { int x ; x = i – 3 ; return i ; }
则函数调用func(func(10))的值是?( )
A.10 B.7 C.4 C
12. 以下Java程序 for( int i=0; i
for(int j=0;j
D.1
{
for(int k=0;k
}
System.out.println( ); }
的输出结果为: ( ) A) ###
###
### ### B)###
### C)###
### D)##
##
## ## A
第五章 复合数据类型(一)—— 类与接口
1. 一个对象就是一组成员变量和相关的方法的集合。 ( ) T
2. 对象的成员变量说明对象的行为,方法表明对象的状态。 ( ) F
3. 对象之间必须要进行交互来实现复杂的行为,这种交互是通过方法调用来实现的。(F
4. 下面说法正确的是?( )
A. 一个对象的成员变量构成这个对象的核心。 B. Java语言允许引用传送。
C. 方法中可以声明该方法中用到的局部变量,它能在其他方法中使用。 D. 同一个类中多个方法不能使用相同的名字。 B
5. Java语言中所有类的根类是?( )
A. java.lang.object B. java.lang.Class C. java.applet.Applet D. java.awt.Frame A
6. Java语言中两个对象不能判断是否相等。 ( ) F
)
7. Java中参数的实现是引用传递方式。 ( )
F
8. 对象的声明并不为对象分配内存空间。 ( )
T
9. 类的构造方法必须和类同名。 ( )
T
10. 下面说法不正确的是?( )
A. Java中的每个类都有构造方法,用来初始化该类的一个新对象。
B. 当用运算符new为一个对象分配内存时,要调用对象的构造方法。
C. 在构造方法的实现中,可以进行方法重载。
D. 构造方法不能被限定为private。
D
11. 下面关于构造方法的调用方式的描述正确的是?( )
A. 按照一般方法调用
B. 由用户直接调用
C. 只能通过new自动调用
D. 被系统调用
C
12. 有类public class test { .......},下面的方法哪一个是正确的构造函数?( )
A. public void test() { .......}
B. public test() { .......}
C. public string test() { .......}
D. public constructor () { .......}
B
13. 下面程序中哪一行会引起编译错误?( )
1:public class test {
2: int m,n;
3: public test() {}
4: public test(int a) { m=n;}
5: public static void main(String[ ] args){
6: test t1,t2;
7: int j,k;
8: j=0;k=0;
9: t1 = new test();
10: t2 = new test(j,k);
11: }
12:}
A. 第3行 B. 第5行 C. 第6行 D. 第10行 D
14. 下面的程序运行结果是什么?( )
class test{
test(){
System.out.println(
}
test(int i ){
System.out.println(
}
test(String s ){
System.out.println(
}
public static void main(String args[]){
testReload test1 = new testReload(―1‖);
}
}
A. nothing type; B. integer type; C. string type; D. 运行出错; C
15. 同一个类中的不同方法不能同名。 ( )
F
16. 下面对方法int add(int i,int j)进行的重载中不合法的是?( )
a) int add(int i)
b) int add(float i,float j)
c) float add(int i,int j)
d) float add(float i)
C
17. 类Test1定义如下:
1.public class Test1{
2. public float aMethod(float a,float b){ }
3.
4.}
将以下哪种方法插入行3是不合法的?( )
A. public float aMethod(float a, float b,float c){ }
B. public float aMethod(float c,float d){ }
C. public int aMethod(int a, int b){ }
D. private float aMethod(int a,int b,int c){ }
B
18. 类体中通过使用修饰符可以说明成员变量的访问权限,stali是修饰符之一。
( )
F
19. Java语言的访问保护是控制在哪个级别上的?( )
A. 类 B. 对象 C. 成员变量 D. 方法
A
20. Java语言中,要释放资源必须手工调用类的finalize()方法。 ( )
F
21. 如果类的成员没有加访问权限修饰词,Java默认使用下面中的哪一个?
( )
A. public B. private C. protected D. friendly
D
22. 类中限定为public的成员只能被这个类本身访问。 ( )
F
23. Java语言中允许本身和子类访问的访问权限修饰符是?( )
A. public B. protected C. private D. friendly
B
24. 下面程序的运行结果是?( ):
class fPoint{
static int x;static int y;
}
public class TestfPoint{
public static void main(String args[]){
fPoint g = new fPoint();
g.x=3; g.y=6;
System.out.println(
fPoint h=new fPoint();
h.x=23; h.y=26;
System.out.println(
}
}
a) x is 3,y is 6 \n x is 3,y is 6
b) x is 3,y is 6 \n x is 23,y is 26
c) x is 23,y is 26 \n x is 3,y is 6
d) x is 23,y is 26 \n x is 23,y is 26
B
25. 实例方法必须由实例对象来调用。 ( )
T
26. Java语言中抽象类不能被实例化,抽象方法必须存在于抽象类中。
T
27. 用final修饰符定义的类不能被继承。 ( )
F
28. 用final修饰符定义的方法仍然可以被重载。 ( )
F
29. 下面程序在编译时,第几行将会出现编译错误? (
1: public class test {
2: public static void main(String[] args) {
3: final int i = 1;
4: for ( int j=0; j
5: if (j%2 !=0) i++;
6: System.out.print(i);
7: }
8: } ( ) )
A. 2 B. 3 C. 4 D. 5
D
30. 下面说法正确的是? ( )
a) Java语言允许多继承。
b) 一个类可以继承多个父类。
c) 一个类可以被多个子类继承。
d) 一个类只能实现一个接口。
C
31. 在实现子类的构造方法时,先调用父类的构造方法。 (
T )
32. 以下哪条语句能声明接口intfB继承于接口intfA?( )
A. public interface intfB implements intfA
B. public class intfB implements intfA
C. public class intfB extends intfA
D. public interface intfB extends intfA
D
33. Java语言中一个接口能继承多个接口。 ( )
T
34. 语句class students extends iPeople能够创建类students并实现接口iPeople。
( )
F
35. 关于接口,下面说法不正确的是?( )
A. 接口中只进行方法的声明,而不提供方法的实现。
B. 一个接口可以有多个父接口。
C. 接口中所有的方法默认为protected abstract。
D. 一个接口可以被多个接口继承。
C
36. Java语言中一个类只能实现(implements)一个接口(interface)。 ( ) F
第六章 复合数据类型(二)——数组
1. Java语言中数组的下标是从1开始的。 ( )
F
2. Java语言中数组下标必须使用整形变量或整形表达式。 ( )
T
3. 声明并创建一个数组包含1、3、5、7四个元素的语句是:int array[] = {1,3,5,7};( ) T
4. 关于数组,下面说法不正确的是?( )
A. 数组是一种复合数据类型。
B. 数组中的元素可以为不同的数据类型。
C. 数组中的元素既可以是简单数据类型,也可以是复合数据类型。
D. 多维数组的每一维长度可以不相同。
B
5. Java语言允许多维数组的每一维长度不同。 ( )
T
6. Java语言允许多维数组的每一维数据类型不同。 ( )
F
7. 声明并创建一个3行4列的二维整型数组的语句是:int array[][] = new int[3][4];
)
T (
8. 执行完以下代码int [] x=new int[25];后,以下哪项说明是正确的?( )
A. x[24]为0 B. x[24]未定义
C. x[25]为0 D. x[0]为空
A
9. 试图编译运行下面的程序,将有什么样的输出?( )
public class Test{
public static void main(String args[]){
int tt[]={1,2,3};
System.out.println(tt[1]);
}
}
A. 1
B. error tt is referenced before it is initiated
C. 2
D. error size of array must be defined
C
10. 下面程序的运行结果是?( )
public class person {
static int arr[] = new int [10];
public static void main(String[ ] args){
System.out.println(arr[1]);
}
}
A. 编译时出错 B. 编译通过,运行时出错
C. 输出零 D. 输出空
C
11.
F
第七章 字符串处理 以下程序能正常通过编译, int array[10] = new int[10]; ) array[10] = 10; (
1. String类可以使用append方法在末尾添加字符,但如果超出已分配的缓冲区,
则必须手动为它分配额外的内存空间。 ( )
T
2. String类可以被继承。 ( )
F
3. 用class myString extends String创建String的子类myString是正确的。 F
4. String是Java语言中的一种简单数据类型。 ( )
F
5. String使用前不需要进行实例化。 ( )
F
6. 程序String pi = ―3.14159‖;
float p = float.valueOf( pi);
System.out.println(pi);
的运行结果为? ( )
A. 编译错误 B. 3.14159 C. ―3.14159‖ D. 没有输出结果
B
7. 类String中哪一个方法能够得到指定字符的第一次出现位置?( )
a) indexOf()
b) charAt()
c) getChars()
d) length()
A
8. 类Stringbuffer中哪一个方法能够在指定位置插入一个字符?( )
a) replace()
b) setCharAt()
c) insert()
d) append()
C
9. Stringbuffer类用于处理可变字符串。 ( )
T
10. StringBuffer的length()方法和capacity()方法都用来获取一个字符串中的字符数量。
)
F
11. 关于以下程序段,正确的说法是?( )
1. String s1=‖abc‖+‖def‖;
2. String s2=new String(s1);
3. if(s1= =s2)
4. System.out.println(―= = succeeded‖);
5. if (s1.equals(s2))
6. System.out.println(―.equals() succeeded‖);
a) 行4与行6都将执行
b) 行4执行,行6不执行 (
c) 行6执行,行4不执行
d) 行4、行6都不执行
C
12. 下面语句中哪一句会导致错误?
A. ―john‖+‖here‖; B. ―john‖+5;
C. 3.14159+5; D. ―john‖-―hn‖;
D
13. 用‖+‖可以实现字符串的拼接,用‖-‖可以从一个字符串中去除一个字符子串。 ( ) F
14. 类StringTokenizer中哪个方法可以判断解析是否完毕?( )
A. hasMoreTokens() B. nextToken()
C. countToken() D. endsWith()
A
15. 下述有关类StringTokenizer的命题中哪一个是错误的? ( )
A. 分割符的设置只能在初始化StringTokenizer对象时进行。
B. hasMoreTokens()方法用来判断解析是否完毕。
C. nextToken()方法用来取得下一个记号。
D. countTokens()方法用来获得已得到的记号数。
A
16. 通过类StringTokenizer的方法countToken ()可以判断解析出的Token个数。 ( ) T
第八章 例外处理
1. Java语言的例外处理机制中,在出现异常事件时,需要生成一个例外对象。 ( ) T
2. Java语言中,允许用户自定义的异常类型。 ( )
T
3. Java类库中所有的例外类都直接或间接的继承于类Exception。 ( ) F
4. 当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止
运行。 ( )
T
5. 程序运行出现错误时,如果Java运行时系统找不到可以捕获例外的方法,则运行时系
统将终止,相应的Java程序也将退出。 ( )
T
6. 下述有关Java语言异常处理的命题中哪一个是错误的?
A. try语句后面必须要跟有catch语句。
B. try语句后面可以跟有多个catch语句。
C. catch语句可以不带参数。
D. 不论在try代码中是否发生了异常事件,finally语句块中的语句都会执行。 C
7. 每个try块都必须有至少一个catch块与之对应,但一个try块允许有多个catch块与之
对应。 ( )
T
8. 假设在一段程序的所有catch块之后还有一个finally块,此时程序一旦进入catch块后
就不会再进入finally块,只有不产生异常时才跳过catch块进入finally块中运行。 ( )
F
9. 类FileNotFoundException不是以下哪个类的子类?( )
A.object B. Throwable C.Error D.Exception C
10. 下面程序的运行结果为: ( )
public static void main( String args[] )
{
char ch = (char)System.in.read();
catch( Exception e )
{
System.out.println( e.toString() );
}
System.out.println(ch);
}
a) 编译错误,缺少try块
b) 正常运行,没有输出结果
c) 显示程序的例外信息
d) 显示用户输入的字母
A
第九章 线程
1. Java语言通过线程有效地实现了多个任务的并发执行。 ( )
T
2. 需要并发执行的程序必须写在run()方法中,才能实现并发。 (
T
3. 只有继承thread类才能实现线程体。 ( )
F
4. Java程序用synchronized关键字实现线程同步。 ( )
T
5. 下面程序的运行结果为: ( )
public class TestThreadSleep
{
public static void main( String args[] )
{
SleepThread st1 = new SleepThread( 1, 3025 ); SleepThread st2 = new SleepThread( 2, 25 );
st1.start();
st2.start();
} )
}
class SleepThread extends Thread
{
private int sleepTime;
public SleepThread( int n, int t )
{
super( String.valueOf(n) );
sleepTime = t;
}
public void run()
{
try
{
this.sleep( sleepTime );
}
catch( InterruptedException e )
{
System.err.println( e.toString() );
}
System.out.println(
+Integer.toString(sleepTime)+
}
}
a) 第2个线程,睡眠了25毫秒后结束
第1个线程,睡眠了3025毫秒后结束
b) 第1个线程,睡眠了3025毫秒后结束
第2个线程,睡眠了25毫秒后结束
c) 编译错误,程序不能运行
d) 程序正常运行,但没有输出结果
A
第十章 输入/输出处理
1. InputStream是Java语言中的基本输入流类。 ( )
T
2. 利用File类能实现对文件的随机读写。 ( )
F
3. 利用File对象可以判断一个文件或目录是否存在、是否可读可写,并能实现创建子目
录、列举目录中的文件、获得文件长度、删除文件、修改文件名字等操作。 ( ) T
4. 文件读写时可能产生输入输出异常,所以需要把完成这些操作的语句放在try-catch结
构中,打开一个文件输入输出流则不需使用try-catch结构。 ( )
F
5. 下面程序的运行结果为: ( )
Import java.io.*;
public class AmIWrong
{
public static void main( String args[] )
{
FileInputStream fis = new FileInputStream(
}
}
a)
b)
c)
d)
A
编译错误,缺少FileNotFoundException处理 打开文件file.dat 程序正常运行,但没有输出结果 打开文件夹,等待用户指定文件 System.out.println(