1、java程序设计复习资料 JAVA程序设计复习资料 选择题 答题要求:单选题,每题只有一个正确答案,选择正确给分,不正确不给分。 1、 下面( A )数据类型可用于main()方法中传递的参数 A、String B、IntegerC、BooleanD、Variant 2、以下的选项中能正确表示Java语言中的一个整型常量的是( B ) A、12. B、-20 C、1,000 D、4 5 6 3、下列的变量定义中,正确的是( D ) A、boolean b1="true";
2、 B、float x=6.6; C、byte i=200; D、double y; 4、在屏幕上显示的消息正确的语句是( A ) A、System.out.println("I am Java Expert"); B、system.out.println("I am Java Expert"); C、System.Out.Println("I am Java Expert"); D、System.out.println('I am Java Expert'); 5、下面( B )命令可用于编译Java程序 A、java B、javac
3、 C、appletviewer D、javadoc 6、Java编译器会将Java程序转换为( A ) A、字节码 B、可执行代码 C、机器代码 D、以上所有选项都不正确 7、以下字符常量中不合法的是( C ) A、'@' B、'&' C、"k" D、'整' 8、以下的选项中能正确表示Java语言中的一个double型常量的是( C ) A、Float.MIN_VALUE B、1.8e-6F C、2.0 D、'abc' 9、以下的变量定义语句中,合法的是( C )。
4、 A、float $_*5= 3.4F; B、byte b1= 15678; C、int $abc=5; D、int class=5; 10、在一个类中定义的成员变量和成员方法时,不允许( A )。 A. 两个成员变量名相同. B. 成员变量及成员方法名相同. C. 两个成员方法名相同 D. 成员方法中的参数及成员变量名相同 11、下列叙述正确的是 ( B ) A. 在类中的构造方法的名字及类的名字相同,而且不能重载 B. 在类中的构造方法的名字及类的名字相同,但没有返回类型. C. 在类中的构造方法的名字及类的名字相
5、同,而且有返回类型. D. 在类中的构造方法的名字及类的名字相同,而且不能初始化. 12、Java application中的主类需包含main方法,main方法的返回类型是什么?( D ) A、int B、float C、double D、void 13、给出如下代码: class Test{ private int m; public static void fun() { // some code...(Test.m) } } 如何使成员变量m 被函数fun()直接访问?( C ) A、将private
6、 int m 改为protected int m B、将private int m 改为 public int m C、将private int m 改为 static int m D、将private int m 改为 int m 14、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( C )。 A、隐藏 B、覆盖 C、重载 D、Java不支持此特性 15、执行下面的程序,输出结果是( B )。 public class Test
7、{ int x= 12; public void method(int x) { x+=x; System.out.println(x); } public static void main(String[] args){ Test t = new Test(); t.method(5); }} A. 5 B. 10 C. 12 D. 17 E. 24 16、若在某一个类定义中定义有如下的方法: final void aFinalFunction( ); 则该方法属于( C )。 。 A. 本地方法. B.
8、解态方法. C. 最终方法 D. 抽象方法 abstract 17、下列叙述正确的是 ( D ) A. 子类可以继承父类的所有成员。 B.. 除了继承父类的成员以外,子类不可以创建自己的成员。 C. 当实例化子类时,父类的构造方法不被调用。 D. 子类只能继承父类的非私有成员。 private 18、某java程序的类定义如下: public class MyClass extends BaseClass{ } 则该java源文件在存盘时的源文件名应为如下哪一种:( D ) A. myclass.java B. Myclass.
9、java C. MYCLASS.java D. MyClass.java 19、给出如下代码: class A{ public A(){ System.out.print("A");(构造方法) } } public class B extends A{ public B(){ System.out.print("B");(构造方法) } public static void main(String[ ] args){ new B( ); } } 程序的输出结果( A ) A、AB B、A
10、 C、B D、BA 20、以下哪个接口的定义是正确的?( D )。 A、 interface A { void print() { } ;} B、 abstract interface A { void print() ;} C、 abstract interface A extends I1, I2 //I1、I2为已定义的接口 { abstract void print(){ };} D、 interface A { void print();} (抽象方法) 21、下面选项中能把字符串转换成float类型的是
11、 B ) A. float value = new Float(str); B. float value = Float.parseFloat(str);int a=5;Integer.parseInt() Double.parseDouble() Float.parseFloat C. float value = Float.floatValue(str); D. float value = (new Float()).parseFloat(str) 22、在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是(
12、C ) A. public get (float x) B. int getSort(int y) C. double getSort(int x,int y) D. void get(int x,int y) 23、下边程序运行的输出结果是( B ) class Base{ Base(){System.out.print("Base");} } public class Alpha extends Base { public static void main(String[] args){ new Alpha(); new Base
13、); } } A、Base B、BaseBase C、程序编译失败 D、程序运行但没有任何输出 24、下列说法正确的是( C )。 A. 一个子类可以有多个父类,一个父类也可以有多个子类 B. 一个子类可以有多个父类,但一个父类只可以有一个子类 C. 一个子类可以有一个父类,但一个父类可以有多个子类 D. 上述说法都不对 25、关于下面程序片段,( B )的结论是正确的。 a == b s1.equals(s2) String a = "Java"; String b = "Java"; String s1 = ne
14、w String(”Java”); String x = "Ja"; String y = "va"; String s2 = new String(”Java”); String c = x + y; A、a和b指向同一个实例对象,a和c指向同一个实例对象 B、a和b指向同一个实例对象,a和c不指向同一个实例对象 C、a和b不指向同一个实例对象,a和c指向同一个实例对象 D、a和b不指向同一个实例对象,a和c不指向同一个实例对象 26、下面这段代码会产生( C )个String对象。 String s1 = "hello";
15、 String s2 = s1.substring(2, 3); String s3 = s1.toString(); String s4 = new StringBuffer(s1).toString(); A、1 B、2 C、3 D、4 27、设有定义:String s=”World”;,下列语句错误的是( D )。 A、int m=s.indexOf(‘r’); B、char c=s.charAt(0); C、int n=s.length(); D、String str=s.append(); 28、已知int
16、 i = 2147483647; ++i; 则i的值等于( A )。 Byte 128~127 127+1 A、-2147483648 B、2147483647 C、2147483648 D、-1 29、若x = 5,y = 8,则表达式x|y的值为( B )。 A、3 B、13 C、0 D、5 30、执行String[ ] s=new String[10];语句后,哪个结论是正确的?( B ) A、s[0] 为 未定义 B、s.length 为10 C、s.len
17、gth 为11 D、s[10] 为 "" 31、下列说法不正确的是( D )。 A、表达式“1+2>3”的值是false B、表达式“1+2||3”是非法的表达式 C、表达式“i+j=1”是非法的表达式 D、表达式“1+2>3”的值是true 32、若String s = "hello"; String t = "hello"; char c[] = {'h','e','l','l','o'} ; 则下列哪个表达式返回false?( C ) A、s.equals(t); B、t.equals(new String("hello"));
18、 C、t.equals(c); D、s==t; 33、执行完下面程序片段后,( B )的结论是正确的。 int a, b, c; a = 1; b = 2; c = (a + b > 3 ? a++ : b++); A、a的值是2,b的值是3 B、a的值是1,b的值是3 C、a的值是1,b的值是2 D、c的值是false 34、下面程序片段输出的是( D )。 int i = 0, j = 9; do { if(i++ > --j) break; } while(i < 4); Syste
19、m.out.println("i = " + i + " and j = " + j); A、i = 4 and j = 4 B、i = 5 and j = 5 C、i = 5 and j = 4 D、i = 4 and j = 5 35、设有定义“int k=3;”,语法正确且值为true的表达式是( D )。 A、k=3; B、k++>3; C、k--==3&&k++==3; D、k++==3||++k>3; 36、若有定义int a = 2;则执行完语句 a -= a * a; 后,a的值是( C )。 A、 0
20、B)、4 C、 -2 D、 –4 37、下列语句序列执行后,j 的值是( A )。 int j=1; for( int i=5; i>0; i-=2 ) j*=i; A、 15 B、1 C、 60 D、 0 38、以下由 for 语句构成的循环执行的次数是( B )。 for ( int i = 0; true ; i++) ; A、有语法错,不能执行 B、无限次 C、执行1次 D、一次也不执行 39、下列语句序列执行后,j 的值是( B )。 int j=9, i
21、6;
while( i-- >3 ) --j;
A) 5 B) 6 C) 7 D) 8
40. 若有循环:
int x=5,y=20;
do { y-=x; x+=2; }while(x
22、以下语句中能构成多分支的语句是( C )。 A) for 语句 B) while 语句 C) switch 语句 D) do - while 语句 43. 能从循环语句的循环体中跳出的语句是(B )。 A)for语句 B)break语句 C) continue语句 D)return语句 44.字符流及字节流的区别是( A)。 A、每次读入的字节数不同 B、前者带有缓冲,后者没有 C、前者是块读写,后者是字节读写 D、二者没有区别,可以互换使用 45.下面关于使用throw关键字抛出的
23、对象说法正确的是( A )。 A、它必须被声明为Throwable类型 B、它必须被声明为error类型 C、它必须被声明为Exception类型 D、它必须被声明为String类型 46.在oneMethod()方法运行正常的情况下,程序段将输出什么? ( D) publicvoid test(){ try{ oneMethod(); System.out.println("condition1"); } catch (ArrayIndexOutOfBoundsExceptione){ System.out.println("condition2"); } cat
24、ch(Exceptione){ System.out.println("condition3"); } finally{ System.out.println("finally"); } } A、condition1 B、condition2 C、condition3 D、condition1finally 47.下列常见的系统定义的异常中,哪个是输入、输出异常? ( B ) A、ClassNotFoundException B、IOException C、NumberFormatException D、UnknownHostException 48.
25、下列InputStream类中哪个方法可以用于关闭流? ( B) A、skip() B、close() C、mark() D、reset() 49.下面关于try-catch-finally语句块中有关finally说法正确的是( C ) A、它只会在catch语句块执行结束后才会执行 B、它只有在catch语句块不被执行的情况下才会被执行 C、不管有没有异常产生它总会被执行 D、只有在有异常产生的情况下它才会被执行 50.关于异常的应用,下列说法恰当的是( B ) A、在java中,使用异常很方便、很有效,因而,只要能使用异常的地方应尽量使用异常
26、B、在程序中过多的使用异常,会使程序的执行效率降低 C、异常产生后,我们只需捕获它,至于是否对异常给及处理,无所谓 D、Java中的异常全部都被预先定义好了,程序员无需自行定义异常类 51.如果一个程序段中有多个catch,则程序会按如下哪种情况执行( C ) A.找到适合的例外类型后继续执行后面的catch B.找到每个符合条件的catch都执行一次 C.找到适合的例外类型后就不再执行后面的catch D.对每个catch都执行一次 52.属于Java输入输出流的、且处理的是char类型的类是( A ) A、Reader类 B、InputStream类 C、O
27、utputStream类 D、File类 53. 下列不属于面向对象编程的三个特征的是( B )。 A. 封装 B. 指针操作 C. 多态 D. 继承 54. 以下字符串常量中不合法的是( B )。 A. "q" B. ‘&’ C. "k" D. "整数" 55. public int getGameScore(),getGameScore这个方法的返回值类型是( A )。 A. int B. void C. INT D. short 56. 在java中语句:37.2%10的运算结果
28、为( C )。 A. 37 B. 2 C. 7.2 D. "0" 57. 若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是( C ) 。 A. 1 B. 2 C. 2.0 D. 2.5 58. 关于while和do-while循环,下列说法正确的是:( D ) 。 A. 两种循环除了格式不同外,功能完全相同 B. 及do-while语句不通的是,while语句的循环至少执行一次 C.do-while语句首先计算终止条件,当条件满足时,才去执行循环体中的
29、语句 D. 以上都不对 59. 下面( C )表达式是声明一个含有10个String对象的数组。 A. char str[]; B. char str[][]; C. String str[]=new String[10]; D. String str[10]; 60. 多分支语句switch(表达式){}中,表达式可以返回哪种类型的值( B )。 A. 实型 B. 字符型 C. 数组 D. 布尔型 61. 下列不属于条件语句关键字的是: ( A )。 A. f
30、orB. ifC.else D. switch 62. 下列类的定义,错误的是( D )。 A. public class test extends Object{ …… } B. final class operators{ ……} C. class Point{ …… } D. void class Point{ …… } 63. 下面表达式中,用来访问数组a中第一个元素的是( A )。 A. a[0] B. a[1] C. a.0 D. a.1 64. a为true时,值为“真”的表达式是( A )。
31、 A. a B.!(++a) C. a=true D. a==0 65. 下面命令中( A )可用于解释Java程序。 A. java B. javac C. javaapplview D. javadoc 66. 方法的形参是( A )。 A. 可以没有B. 至少有一个 C. 方法必须都含有D. 一个方法中可以有多个return 67. 有一个类A,对于其构造函数的声明正确的是( B )。 A. void A(int x){…} B. public A(int x){…} C.
32、 A A(int x) {…} D. int A(int x) {…} 68. 设Test为已定义的类,下面声明类Test对象a的语句正确的是( C )。 A. Test a=Test();B. public Test a; C. Test a=new Test(); D. public Test a=new Test(); 69. 如下哪个是Java中的正确的标识符( D )。 A. public B. super C. 3number D. width 70. 定义一个类,必须使用的关键字是( B )。 A. p
33、ublic B. class C. interface D. static 71. 下列数组声明语句错误的是:( C )。 A. int [] a; B. int a[]; C. int a[5]; D. int[]a=new int[5]; 72. Java语言属于下列哪一种语言( B )。 A. 面向过程语言 B.面向对象语言 C. 面向机器语言 D. 面向操作系统语言 73. 现有一个整型数组a [4],它的所有元素是( B )。 A
34、 a0.a1,a2.a3 B. a[0],a[1],a[2],a[3] C. a [1],a [2],a[2],a[4] D. a [0],a[1],a E2],a[3],a[4] 74.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的(A)文件夹下。 A.bin B.jre C.include D.doc 75. Java程序的最基本组成单位是(D)。 A.函数 B.过程 C.变量 D.类 76.执行下列程序段后,ch,x,y的值正确的是:(
35、A)
int x=3, y=4;
boolean ch;
ch=x 36、库连接的是( A )
A.类java.sql.DriverManager的getConnection方法
B.类javax.sql.DataSource的getConnection方法
C.类javax.sql.DataSource的connection方法
D.类java.sql.Driver的getConnection方法
80.一个( A )对象用于向数据库提交查询
A.ResultSet B.Connection C.Statement D.Applet
填空题
答题要求:每空只 37、有一个正确答案,填对给分,填不对不给分。
1. 若有定义 int[ ] a = new int[8]; 则a的数组元素中第7个元素和第8个元素的下标分别是( )和( )。
2. Scanner类在( )包下面。
3. JVM是指( )。
4. 假设有一个JAVA应用程序,其源程序文件名是Morning.java,则编译该源程序时应该在命令提示符窗口中输( )命令,运行该程序时应该在命令提示符窗口中输入( )命令。
5. 要声明整型数组a,应该用语句( )。
6. 要定义x为int类型的数组 38、并且数组元素的初值是1、2、3、4、5,则可以用一条语句( )。
7. 在Java语言中,所有的数组都有一个( )属性,这个属性存储了该数组的元素的个数或者说数组长度。
8. 面向对象程序设计的四个特性是:抽象性、( )、( )、( )。
9. Java中类成员的限定词有以下几种:private 缺省, ( ), ( )。其中( )的限定的范围最大。
10. 用于创建类实例对象的运算符是( ), Java中所有类都是类( )的子类。
1 39、1. 构造方法的方法名及( )相同,若类中没有定义任何的构造方法,则运行时系统会自动为该类生成一个没有参数的构造的方法。
12. java中用关键字( )指明继承关系、用关键字( )指明接口实现。
13. this代表了( )的引用,super表示的是当前对象的( )对象。
14. java中提供了两种用于多态的机制( 重载 )、( 覆盖 )。
15.关键字( )表示一个对象或变量在初始化后不能被修改。
16. 下面方法的功能是判断一个整数是否为偶数,将程序补充完整。
public( boolean ) is 40、Even(int a)
{ if(a%2==0)
return ( true );
else
return false;
}
17. this和super 关键字只能在(非静态)方法中使用。
18. java中用关键字(abstract)指明抽象类,用关键字( )指明接口。
19. 执行下列代码后的结果是什么? int x,a=8,b=4,c=5; x=++a+b+++c++;
x = ( 18 ), a = (9 ),b = ( 5 ), c = ( 6 )
20. 在Java语言中,字符串直接量是用 41、双引号括起来的字符序列,字符串不是字符数组,而是类 ( ) 的实例对象。
21. 当String对象用= = 比较时,如果String包括相同的地址,则结果为( ) 。
22. 对于下列描述,各写出一条语句完成要求的任务
(1)比较s1中的串和s2中的串的内容的相等性; ( )
(2)用+=向串s1附加串; ( s1+=s2;)
(3)判断s1中串的长度; ( )
23. 设x,y,max,min均为int型变量,x、y已赋值。用三目条件运算符求x、y的最大值 42、和
最小值,并分别赋给变量max和min,这两个赋值语句分别是( )和( )。
24. “当整型变量n的值不能被13除尽时其值为 false” 的Java语言表达式是( )。
25. 执行以下程序段后:x = ( ), y =( )。
int x = 5, y=5;
y = ++x * - -y;
26. 在Java程序运行时,系统自动通过System类创建三个静态的I/O对象,它们是标准输入流对象( )、标准输出流对象( ) 和标准错误流对象( System.err )。
27. java中的异 43、常处理通过5个关键字来实现:它们是try、catch、throw、throws和finally。进行异常监测的代码要放在try子句内:捕获异常需要使 ( )子句;在方法中宣布可能产生的异常应使用( )关键字。
28. 异常是一种运行时错误,在java中,异常是以对象的方法表示的,任何异常对象都是(Throwable)类或其子类的对象。
29. Java中,InputStream和OutputStream是以( )为数据读写单位的输入输出流的基类;Reader和Writer是以 ( 字符 )为数据读写单位的输入输出流的基类。
30. Java的异常处理模型以3 44、种操作为基础:声明异常、抛出异常和捕捉异常。当程序语句导致错误时,包含语句的方法将创建异常对象并把它传递到系统,这个过程称为( 抛出异常 ),查找异常处理程序的过程称为( 捕捉异常 )。
31. 一般用( )创建InputStream对象,表示从标准输入中获取数据。用( )创建OutputStream对象,表示输出到标准输出设备中。
32. java把它能够识别的异常分为两大类:检查的和非检查的异常。非检查的异常是(Error)类和RuntimeException类的实例,它代表程序不必处理严重系统错误;检查异常是(Exception)类的子类,它代表 45、程序应该而且能够处理的错误。
33. 将以( )为扩展名的Java源文件编译成字节码文件,字节码文件的扩展名为( ) 。
34. Java语言中的浮点数默认类型是(double或者双精度浮点型)。
35. Java语言以(类)为程序的基本单位,它是具有某些共同特性实体的集合,是一种抽象的概念。
36. 代码System.out.println(076)的输出结果是(62)。
37. 数组初始化分为( )和( )两种。
39. 类中的( )方法是一个特殊的方法,其名称及类名相同。
40. 在面向对象方法中,类的实例被称为( 46、 )。
程序分析题
1. 如果程序代码为:
public class Demo{
public static void main (String[ ] args){
String a=args[1];
System.out.println(a);
}
}
进行编译后,执行以下命令将得到什么结果?java Demo a1 a2 a3
答:
2、现有一个类定义如下,请回答问题:
class Employee{
String name;
int age;
double wage;
static int No=0;
Emplo 47、yee(String a1,int a2,double a3){
name=a1; age=a2; wage=a3;
No++;
}
}
在使用该类时,已使用下面语句生成了该类的对象:
Employee e1,e2;
e1=new Employee("王劲",26,6300);
e2=new Employee("张山",30,3800);
问题:
1)e2.name,e2.age,e2.wage的值各是什么 ?
2)生成对象e1,e2后,e1.No值为多少 能否通过类名做前缀引用属性No和age?
答:
3、阅读以下程序,写出运行结果 。
class Q 48、1{
public static void main(String args[ ]){
double d=1.23;
Dec dec=new Dec( );
dec.decrement(d);
System.out.println(d);
}
classs Dec{
public void decrement(double decMe){
decMe = decMe - 0.1;
}
}
答:
4、分析下列程序的执行结果:
class Value{
public int i = 15 49、
}
public class Test{
public static void main(String argv[]){
Test t = new Test(); t.first();
}
public void first(){
int i = 5;
Value v = new Value();
v.i = 25; second(v, i);
System.out.println(v.i);
}
public void second(Va 50、lue v, int i){
i = 0; v.i = 20;
Value val = new Value();
v = val;
System.out.println(v.i + " " + i);
}
}
答:
5、分析下列程序的执行结果:
public class Test{
public static void main(){
int i = 1, j = 10;
do{
if(i++ > --j)
continue;
}while(i < 5);






