《Java面向对象编程》练习题 下载本文

Java面向对象编程 练习题

专题1 初识Java 一、填空题

1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是( JAVA SE )、( JAVA EE )、( JAVA ME )。

2.环境变量的设置,若JDK安装在“D:\\JDK”,则应设置Path为(D:JDK\\bin )、classpath为( D:JDK\\lib )。

3.Java源文件的扩展名为( .java ),用Javac编译Java源文件,得到的字节码文件的扩展名为(.class )。

4.如果Java源文件中有多个类,那么只能有一个类是(public class )类。 5.Java程序可以分成两类,即(Java Application )和(java Applet)。

二、选择题

1.作为Java应用程序入口的main方法,其声明格式是(b )

A.public static int main(String args[]) B.public static void main(String args[]) C.public void main(String args[]) D.public int main(String args[]) 2.下面命令正确的是(B)

A.java AppFirst.java B.java AppFirst C.java appfirst.class D.javac AppFirst

3.设有一个Java小程序,源程序名为FirstApplet.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为(D)

A.java FirstApplet B.javac FirstApplet.java C.appletviewer FirstApplet.java D.appletviewer FirstApplet.html 4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的(A)文件夹下。

A.bin B.jre C.include D.doc 5.Java语言是一种 D 语言。 A.机器

B.汇编

C.面向过程的

D.面向对象的

6、Java程序的最基本组成单位是 D 。 A.函数

B.过程 C.变量 D.类

1

三、简答题

1.Java语言有哪些特点?(P3)

2.JDK安装完成后,如何设置环境变量?(P4, classpath, path) 3.简述Java应用程序和小应用程序的区别。

(java是在控制台上执行,applet是需要在网页中执行) 4.简述Java应用程序的开发过程 1)编写程序 2)编译 javac 3)执行 java

专题2 标识符、表达式、数据类型 一、填空题

1.Java逻辑常量有两个:(ture )和(flase )。 2.写出下列表达式的运算结果,设a=2,b=-4,c=true。 (1)-a%b++ -2 (2)a>=1 && a <= 10 ? a : b 2 (3)c^(a>b) (4)(-a)<

false -8 -0.4

(5)(double)(a+b)/5+a/b

3、比较两个数相等的运算符是: = = 。

4、Java中的八种基本数据类型分别是:char、 int 、 long 、 shore 、 flaot、 double 、 byte 和 boolean 。

二、选择题

1.下面这些标识符哪个是错误的(C )

A.Javaworld B._sum C.2Java Program D.$abc 2.下列哪一组运算符的优先级顺序是从高到低排列的( B)

A.|、&、! B.&、^、|| C.!、%、++ D.<、<<、++

2

3、下面哪个赋值语句不会产生编译错误( D)

A.char a=?abc?; B.byte b=152; C.float c=2.0; D.double d=2.0; 4.下面哪个单词是Java语言的关键字(D )

A.False B.FOR C.For D.for 5.执行下面程序后,哪个结论是正确的( D) int a, b, c;

a=1; b=3; c=(a+b>3 ? ++a : b++);

A.a的值为2,b的值为3,c的值为1 B.a的值为2,b的值为4,c的值为2 C.a的值为2,b的值为4,c的值为1 D.a的值为2,b的值为3,c的值为2 6.设各个变量的定义如下,哪些选项的值为true ( C ) int a=3, b=3; boolean flag=true;

A.++a = = b B.++a= = b++ C.(++a = = b) || flag D.(++a= =b) & flag 7.表达式(int)6.5/7.5*3的值的类型为(C )

A.short B.int C.double D.float

8.设a, b, x, y, z均为int型变量,并已赋值,下列表达式的结果属于非逻辑值的是( D) A.x>y && bx-y C.y = = ++x D.y+x*x++ 9.下面语句输出的结果为( B) Syste.out.println(5^2);

A.6 B.7 C.10 D.25 10.对下面的语句执行完后正确的说法是:( D)

int c=?c?/3;

System.out.println(c);

A.输出结果为21 B.输出结果为22 C.输出结果为32 D.输出结果为33 11.以下选项中变量a已定义类型,合法的赋值语句为( D) A.a = int(y); B.a= =1; C.a = a+1=3; D.++a; 12.执行下列程序段后,ch,x,y的值正确的是:( A)

int x=3, y=4; boolean ch;

ch=x

A.true,3,4 B.true,4,3 C.false,3,4 D.false,4,3 13.下列标识符中,正确的是 B 。 A、1_Back B、$_Money

C、$-money D、2-Forward

14.现有一个int类型的整数和一个double类型的浮点数,当它们之间做了加法运算之后,得到的结果类型应该是 B 。

3

A、int类型 B、double类型 C、float类型 D、long类型

15、以下程序的运行结果为 A 。

public class A {

public static void main(String a[]) { int x = 2, y = 5; String z = \ System.out.println(x + y); System.out.println(x + z + \ System.out.println(\ System.out.println(\ }

} A.7 B.7 C.25 D.7 25x+z 7x+z 25x+z 25x+z x+y=25 x+y=25 x+y=7 x+y=25 x+z=25 x+z=7 x+z=25 x+z=7 16、设有定义int a=12;则执行a*=12;语句后,a的值为: A 。 A.144

B.12

C.24

D.0

17、下列标识符中,合法的一个是 B C 。 A.$#@!$

B.$我们$

C.$22$

D.2$$2

18、执行下列程序段后,b, x, y的值分别是 B 。

int x=6,y=8; boolean b;

b=x>y&&++x==--y; A.true , 6, 8

B.false , 6, 8

C.e, 7, 7

D.false, 7, 7 19、下列程序运行的结果是 D 。 public class A { public static void main(String args[]) { int x = 7%3; while(x){ x--; } System.out.println(x); } } A.0

B.1

C.true

D.编译错误

4

专题3 流程控制语句 一、填空题

1.在switch语句中的表达式的类型必须是( int型 )或者(与int相容的类型[byte,char,long,short] )。

2.break在循环语句中的作用是(跳出当前循环 )。 3.分支语句包括( if)和( switch)。

4.while循环语句的循环次数(0或者不限 ),do-while语句的循环次数( 至少一次 ),for语句的循环次数(0或者不限 )。

二、选择题

1.下面程序片段输出的是什么( C) int a=3, b=1;

if(a=b) Syste.out.println(“a=”+a);

A.a=1 B.a=3 C.编译错误,没有输出 D.正常运行,但没有输出 2.下面语句执行后,x的值为(C ) int a=4, b=5, x=3; if(++a==b) x=x*a;

A.3 B.12 C.15 D.20 3.请看下面的程序代码:

if(x<0) {Syste.out.println(“first”);} else if(x<20) {Syste.out.println(“second”);} else {Syste.out.println(“third”);}

当程序输出“second”时,x的范围是( B)

A.x<=0 B.x<20 && x>=0 C.x>0 D.x>=20 4.请看下面的程序代码: switch(n){

case 0: Syste.out.println(“first”); case 1:

case 2: Syste.out.println(“second”); break; default: Syste.out.println(“end”); }

当n为何值时,程序段将输出字符串”second”( D )

5

A. 0 B.1 C.2 D.以上都可以 5.下列语句执行后,j的值是(D ) int j=3, i=3; while(--i!=i/j) j=j+2;

A. 4 B.5 C.6 D.7 6.下列语句执行后,x的值是(D) int x=2 ;

do{x+=x ; }while(x<17);

A. 4 B.16 C.32 D.256 7.执行下列语句后,i、j的值是( B) int i=1, j=8; do{

if(i++>--j) continue; }while(i<4);

A. i=4, j=5 B.i=5,j=4 C.i=5,j=5 8.下列语句执行后,k的值是( B ) int j=4, i, k=10; for(i=2; i!=j; i++) k=k-i;

A. 4 B.5 C.6 D.7 9.下列语句执行后,c的值是(C ) char c=?\\0?;

for(c=?a?; c

if(c>=?e?) break;

}

A. ?e? B.?f? C.?g? D.?h? 10.若变量都已经正确说明,则以下程序段输出为( A ) a=10; b=50; c=30; if(a>b) a=b;b=c; c=a;

System.out.println(“a=”+a+” b=”+b+” c=”+c);

A.a=10 b=50 c=10 B.a=10 b=30 c=10 C.a=50 b=30 c=10 D.a=50 b=30 c=30 11.以下程序段输出是(D ) int x=1,y=0,a=0,b=0;

D.i=5,j=6 6

i=(--a==b++)? - -a : ++b; j=a++; k=b;

System.out.println(“i=”+i+” ,j=”+j+” ,k=”+k); 2 -1 2 A.i=2,j=1,k=3 B.i=1,j=1,k=2 C.i=4,j=2,k=4 D.i=2,j=-1,k=2 12.以下程序的输出是( B ) int x=1,y=0,a=0,b=0; switch(x){ case 1: switch(y){

case 0: a++;break; case 1: b++;break; } case 2: a++;break; case 3: a++;b++; }

System.out.println(“a=”+a+”,b=”+b); 2 0 A.a=1, b=0 B.a=2,b=0 C.a=1, b=1 D.a=2, b=2 13.以下程序段输出是( C ) int i=0,j=0,a=6;

if ((++i>0) || (++j>0 )) a++ :

System.out.println(“i=”+i+” ,j=”+j+” ,a=”+a);

A.i=0,j=0,a=6 B.i=1,j=1,a=7 C.i=1,j=0,a=7 D.i=0,j=1,a=7 14、下列程序运行的结果是 D 。 public class A{

public static void main(String args[]){ char c = 'd'; for (int i = 1; i <= 4; i++) { switch (i){ case 1: c = 'a'; System.out.print(c); break; case 2: c = 'b'; System.out.print(c); break;

7

}

}

}

case 3: c = 'c'; System.out.print(c); default: System.out.print(\ }

A.! B.dbc! C.abc! D.abc!!

专题4 数组 一、填空题

1.定义一个整型数组y,它有5个元素分别是1,2,3,4,5.用一个语句实现对数组y的声明、创建和赋值:(int y []={1,2,3,4,5} )。

2.设有整型数组的定义:“int x[][]={{12,34},{-5},{3,2,6}};”则x.length的值为(3 ) 3.求取二维数组a[][]的第i行元素个数的表达式是(a[i-1].length )。 4、一个一维数组有10个元素,则该数组可用的下标范围是 0-9 。 5、String S[]={“安徽”, “江苏”, “山东”};则S[1]的值是: 江苏 。

6、当声明一个数据组int arr[]=new int[5];时,这代表这个数组所保存的变量类型是 整形 ,数组元素下标的使用范围是 0-4 。

二.选择题

1.设有定义语句“int a[]={66,88,99};”,则以下对此语句的叙述错误的是( C) A.定义了一个名为a的一维数组 B.a数组有3个元素 C.a数组的元素的下标为1~3 D.数组中的每个元素是整数 2.设有定义“int[] a=new int[4];”则数组a的所有元素是(B ) A.a0、a1、a2、a3 B.a[0]、a[1]、a[2]、a[3] C.a[1]、a[2]、a[3]、a[4] D.a[0]、a[1]、a[2]、a[3]、a[4] 3.下面哪个选项正确地声明了一个字符串数组 (C )

A.char[] str B.char[][] str C.String[] str D.String[10] str

8

4、假设有这样的数组创建:int a[]={1,2,3,4,5,6,7};则该数组长度为 D 。 A.4 B.5

C.6

D.7

5、下列二维数组的创建中错误的是 D 。 A.int a[][]=new int[3][] ; B.int[][] a=new int[3][4] ; C.int a[][]={{1,2},{3,4}} ; D.int [][] a=new int[][];

**专题5 面向对象 一、填空题

1. 如果一个方法不返回任何值,则该方法的返回值类型为 void 。

2. 如果子类中的某个方法名、返回值类型和_传递参数_______与父类中的某个方法

完全一致,则称子类中的这个方法覆盖了父类的同名方法。 3. 接口中所有的属性均为_公有__、__静态_____和_常量_____的

4. 抽象 方法是一种仅有方法声明,没有具体方法体和操作实现的方法,该方

法必须在 抽象类 类之中定义。(抽象类,接口)

5. 在Java程序中,通过类的定义只能实现 单 重继承,但通过 接口 的定

义可以实现多重继承关系。

6. 一般Java程序的类主体由两部分组成:一部分是 成员变量 (属性) ,另一

部分是 成员函数 (方法) 。

7. 分别用 class 关键字来定义类,用 new 关键字来分配实例存储空间。 8. 当一个类的修饰符为 private 时,说明该类不能被继承,即不能有子类。 9. 在Java中,能实现多重继承效果的方式是 implements 。

二、选择题

1. 方法内定义的变量( )。

A.一定在方法内所有位置可见 B.可能在方法的局部位置可见 C.在方法外可以使用 D.在方法外可见

2. 方法的形参()。

9

A.可以没有

B.至少有一个 C.必须定义多个形参

D.只能是简单变量 3. return语句(D)

A.不能用来返回对象 B.只可以返回数值 C.方法都必须含有

D.一个方法中可以有多个 4. main()方法的返回值类型是(C。

A.boolean B.int C.void

D.static

5. 编译并运行下面的程序,运行结果是( )。

public class A{

public static void main(String args[]){ A a=new A(); a.method(8); }

void method(int i){

System.out.println(“int: ”+i); }

void method(long i){

System.out.println(“long: ”+i); }

A.程序可以编译运行,输出结果为:“int: 8” B.程序可以编译运行,输出结果为:“long: 8”

C.程序有编译错误,因为两个method()方法必须定义为静态(static)的 D.程序可以编译运行,但是没有输出

6. 能作为类及其成员的修饰符是( )。

A.interface B.class C.protected

D.public

7. 下列方法定义中,方法头不正确的是( )。

A.public static x(double a){…} B.public static int x(double y){…}C.void x(double d){…}

D.public int x(){…} 8. 构造方法在( )时被调用。

A.类定义时

B.使用对象的变量时 C.调用对象方法时

D.创建对象时

9. 下列哪个类声明是正确的( )。

A.public abstract class Car{…} B.abstract private move(){…} C.protected private number;

D.abstract final class H1{…}

10. 下列不属于面向对象程序设计的基本特征的是( )。

10

A.抽象 B.封装 C.继承

D.静态

11. 请看下面的程序段 class Person{

String name,department; int age;

public Person(String n){name=n;}

public Person(String n, int a){name=n; age=a;}

public Person(String n, String d, int a ){

//doing the same as two arguments version if constructer }

下面那个选项可以添加到// doing the same??处( )

A.Person(n,a) B.this(Person(n,a)) C.this(n, a)

D.this(name.age)

12. 请看下面的程序段 class Test{

private int m;

public static void fun(){ //some code }

}

方法fun()如何来访问变量m( )

A.将private 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 13. 有一个类A,对于其构造函数的声明正确的是( )。

A.void A(int x){?} B.public A(int x){?} C.A A(int x){?}

D.int A(int x){?}

14. 请看下面的程序段 public class Test{

long a[]=new long[10];

pubic static void main(String args[]){

System.out.println(a[6]); }

}

哪一个选项是正确的( )。

A.不输出任何内容

B.输出0

C.当编译时有错误出现 D.当运行时有错误出现 15. 关键字( )表明一个对象或变量在初始化后不能修改。

A.extends B.final C.this

D.finalize

16. 声明为static的方法不能访问( )类成员。

11

A.超类 C.非static

17. 定义类A如下: class A{

int a,b,c;

public void B(int x,int y, int z){ a=x;b=y;c=z;} }

下面对方法B的重载哪些是正确的( )。

B.子类

D.用户自定义类

A.public void A(int x1,int y1, int z1){ a=x1;b=y1;c=z1;} B.public void B(int x1,int y1, int z1){ a=x1;b=y1;c=z1;} C.public void B(int x,int y){ a=x;b=y;c=0;} D.public B(int x,int y, int z){ a=x;b=y;c=z;}

18. 编译运行下面的程序,结果是( )。 public class A{

public static void main(String args[]){

B b=new B(); b.test(); }

void test(){

System.out.print(“A”); } }

class B extends A{ void test(){

super.test();

System.out.print(“B”); } }

A.产生编译错误

19. 已知类关系如下: Class Employee{}

Class Manager extends Employee{} Class Director extends Employee{} 则下列语句正确的是:( )。

B.代码可以编译运行,并输出结果:AB

C.代码可以编译运行,但没有输出 D.编译没有错误,但会产生运行时异常

A.Employee e=new Manager(); C.Director d =new Employee ();

B.Director d=new Manager(); D.Manager m=new Director ();

20. 接口是Java面向对象的实现机制之一,以下说法正确的是( )。

A.Java支持多重继承,一个类可以实现多个接口 B.Java只支持单重继承,一个类可以实现多个接口 C.Java只支持单重继承,一个类可以实现一个接口

12

D.Java支持多重继承,但一个类只可以实现一个接口 21.下列方法的声明中不合法的是 。 A.float area( ){…} C.area{…}

B.void area( ){…} D.int area(int r){…}

22、下面哪个包是编程时不需要导入就可以直接使用的 。 A.java.net

B.java.lang

C.java.sql

D.java.util

23、调用构造方法是在 。 A.类定义时 C.调用对象的方法时

B.创建对象时 D.使用对象的变量时

24、在子类构造方法的哪个地方可以调用其父类的构造方法 。 A.任何地方

B.构造方法的第一条语句 C.构造方法的最后一条语句

D.无法在子类构造方法中调用父类的构造方法 25、关于Java中的继承,下列说法错误的是 。

A.继承是面向对象编程的核心特征,通过继承可以更有效地组织程序结构。 B.继承使得程序员可以在原有类的基础上很快设计出一个功能更强的新类,而不必从头开始,避免了工作上的重复。

C.每一次继承时,子类都会自动拥有父类的属性和方法,同时也可以加入自己的一些特性,使得它更具体、功能更强大。

D.继承一般有多重继承和单一继承两种方式,在单一继承中每一个类最多只有一个父类,而多重继承则可以有多个父类。Java中的类都采用多重继承。

26、当方法中的局部变量与成员变量同名时,必须使用下列哪一个关键字指出成员变量 。 A.static

B.super

C.this

D.new

27、什么样的方法不能被重写 。 A.私有(private)方法

B.最终(final)方法 D.以上都不对

C.受保护(protected)的方法

28、下列有关抽象类与接口的叙述中正确的是哪一个 。 A.抽象类中必须有抽象方法,接口中也必须有抽象方法

13

B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法 C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法 D.抽象类中的变量定义时必须初始化,而接口中不是 29、从下列程序中你发现了几处错误 。

abstract class A{ abstract void f(){};

public abstract void k(); }

class B extends A{ protected void f(){ }

void k(){ System.out.print(\ }

public static void main(String[] args) { A a=new A(); a.f(); a.k(); } } A.1 B.2 C.3 30、下列程序运行的结果是 。

interface InterfaceA{

String s=\ void f(); }

class ClassA implements InterfaceA{ public void f(){

System.out.print(s); } }

class ClassB{ void g(InterfaceA a){

a.f(); } }

public class E { public static void main(String[] args) { ClassB b=new ClassB(); b.g(new ClassA()); } }

D.4

14

A.good

B.编译正确,但无运行结果 D.以上都不对

C.编译错误:b.g(new ClassA())

31、下列类的声明中不合法的是 。 A.class People(){?} C.class A{?}

B.class 植物{?} D.public class 共有类{?}

32、能作为类的修饰符, 也能作为类成员的修饰符的是 。 A.public

B.extends

C.Float

D.static

33、试完成下述程序片段 。 public class Point{ int x,y; public Point(int x,int y){ ( )=x; ( )=y; } ...... }

A.Point.x Point.y C.super.x super.y

B.this.x this.y D.无解

34、在JAVA 中,下列说法正确的是: 。

A.一个子类可以有多个父类,一个父类也可以有多个子类 B.一个子类可以有多个父类,但一个父类只可以有一个子类 C.一个子类只可以有一个父类,但一个父类可以有多个子类 D.上述说法都不对

35、Father和Son是两个java类,下列哪一选项正确的标识出Father是Son的父类? A.class Son implements Father C.class Father extends Son

B.class Father implements Son D.class Son extends Father

36、重载指的是方法具有相同的名字,但这些方法的参数必须不同。下列哪种说法不属于方法参数的不同 。 A.形式参数的个数不同。 C.形式参数的名字不同。

B.形式参数的类型不同。

D.形式参数类型的排列顺序不同。

39、关于接口的定义和实现,以下描述正确的是 。 A.接口定义的方法只有定义没有实现

15

B.接口定义中的变量都必须写明final和static

C.如果一个接口由多个类来实现,则这些类在实现该接口中的方法时采用统一的代码

D.如果一个类实现接口,则必须实现该接口中的所有方法,但方法未必申明为public

三、阅读程序题

1、写出运行结果: 。

public class Computer{ String mainbord,cpu; public Computer(String s1,String s2){ mainbord=s1; cpu=s2; } public static void main(String[]args){ Computer c=new Computer(\华硕\ System.out.println(\

} }

Mainbord: 华硕,cpu:Intel

2、写出运行结果: 。 public class ExamA {

private static int arr[] = new int[5]; public static void main(String args[]) { for(int i=arr.length-1;i>=0;i--) arr[i] = 2*i+1; String output = \ int sum = 0;

for(int i=0;i

output += \ }

output += \

System.out.println(output); System.exit(0); } }

16

3、写出运行结果: 。

public class Person{ String name; int age;

public Person(String name,int age){ this.name=name; this.age=age; }

public static void main(String[]args){ Person c=new Person(\ System.out.println(c.name+\} }

Perter is 17 years old!

4、写出运行结果: 。

public class abc{

public static void main(String args[ ]) {

SubSubClass x = new SubSubClass(10 , 20 , 30); x.show(); } }

class SuperClass{

int a,b;

SuperClass(int aa , int bb){

a=aa; b=bb; }

void show( ){

System.out.println(\ b=\ } }

class SubClass extends SuperClass{

int c;

SubClass(int aa,int bb,int cc){ super(aa,bb);

c=cc; } }

class SubSubClass extends SubClass{

int a;

SubSubClass(int aa,int bb,int cc){ super(aa,bb,cc); a=aa+bb+cc;

17

}

void show(){

System.out.println(\ b=\ c=\ } }

5.下面是一个类的定义,请将其补充完整 class __Student____{ String name; int age;

Student(__String____ name, int a){ __this___.name=name; age=a; } }

6.下面是一个类的定义,请将其补充完整

class __A____{ String s;

__static____ int a=3; A(String s){ this.s=s; }

static int getA(){

return a;

} }

专题6 字符串、日期时间类 一、填空题

1.已知String对象 s=”hello”,运行语句“System.out.println(s.concat(“World!”));”后,s的值为( helloWorld! )

2.使用+=将字符串s2添加到字符串s1后的语句是( S1+=S2 )

3.比较s1种的字符串和s2种的字符串的内容是否相等的表达式是:( s1.equals(s2) ) 4.已知sb为StringBuffer的一个实例,且sb=”abcde”,则sb.reverse()后sb的值为:( edcba )

5.获取当前系统时间( )

18

6.已知StringBuffer sb=new StringBuffer(\,则sb.reverse()后,sb的值为 cba 。

7、String s1=“China”; int n=s1.length( ); n的值为 5 。

二.选择题

1. 已知String对象s=”abcdefg”,则s.substring(2,5)的返回值为( )。

A.”bcde” B.”cde” C.”cdef”

D.”def”

2. 若有下面的代码:

String s=”people”;

String t=”people”;

Char c[]={?p?, ?e?, ?o?, ?p?, ?l?, ?e?};

下面哪一选项的语句返回值为假( )?

A.s.equals(t) B.t.equals(c)

C.s==t D.t.equals(new String(“people”)) 3. 已知s为一个String对象,s=”abcdefg”,则s.charAt(1)的返回值为( )。

A.a B.b C.f

D.g

4. 若有下面的代码:

String s=”good”;

下面选项语句书写正确的是:( )。

A.s+=”student”; B.char c=s[1];

C.int len=s.length

D.String t=s.toLowerCase();

5、假设String s=\,则下面返回\的语句为 。 A.s.substring(6,8); B.s.substring(5,9); C.s.substring(5,7);

D.s.substring(6,7);

6、调用下面哪个方法时会改变原有对象 。 A.String的trim( ) B.String的length( ) C.StringBuffer的reverse( )

D.StringBuffer的length( )

7、已知int i=123,通过以下哪种方式可以得到字符串\ 。 A.Integer.parseInt(i);

B.String.valueOf(i); C.Long.parseLong(i);

D.Float.parseFloat(i);

8、由\得到的数值 。

19

A.>0 B.=0 C.<0 D.不确定 9、已知String s= \,则s.indexOf(\的值为 。 A.1 B.2 C.3 D.4 10、已知int i=123,通过以下哪种方式可以得到字符串\ 。 A.Integer.parseInt(i);

B.String.valueOf(i); D.Float.parseFloat(i);

C.Long.parseLong(i); 11、以下程序段执行的结果为 。 String str1, str2; str1 = \str2= \

System.out.print(str1.equals(str2)); System.out.println(str1 == str2); A.truefalse

B.truetrue

C.falsetrue D.falsefalse

12、已知StringBuffer sb=new StringBuffer(\,则sb.delete(1,2)后sb的值为 。 A.abc B.abde C.acde D.ade

专题7 异常处理 一. 填空题

1.一个try语句块后必须跟(catch )语句块,( )语句块可以没有 2.自定义异常类必须继承( )类及其子类

3.异常处理机制允许根据具体的情况选择在何处处理异常,可以在( )捕获并处理,也可以用throws子句把他交给( )处理

二.选择题

1. finally语句块中的代码( ) A.总是被执行

B.当try语句块后面没有catch时,finally中的代码才会执行 C.异常发生时才执行

D.异常没有发生时才被执行

2. 抛出异常应该使用的关键字是( )

20

A.throw B.catch C.finally

D.throws

3. 自定义异常类时,可以继承的类是( ) A.Error B.Applet

C.Exception及其子类

D.AssertionError

4. 在异常处理中,将可能抛出异常的方法放在( )语句块中 A.throws B.catch C.try

D.finally

5. 对于try{??}catch子句的排列方式,下列正确的一项是( ) A.子类异常在前,父类异常在后 B.父类异常在前,子类异常在后 C.只能有子类异常

D.父类异常与子类异常不能同时出现

6. 使用catch(Exception e)的好处是( ) A.只会捕获个别类型的异常

B.捕获try语句块中产生的所有类型的异常 C.忽略一些异常 D.执行一些程序

三.简答题

1.try/catch/finally如何使用?

try:将可能出现异常的语句放在此处。 catch:当出现异常时在此处捕获异常。 finally:无论是否出现异常都要执行。 2.Throw/throws有什么联系和区别? throw:在语句中抛出异常。 throws:在方法中抛出异常。 联系:都是抛出异常。

3.谈谈final、finally的区别和作用

final:修饰变量是定义常量,修饰类是不允许继承,修饰方法是不允许复写。 finally:使用在异常处理中,无论是否出现异常都要执行。 4.如果try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会

21

被执行? 运行。

5.Error和Exception有什么区别? Error一般是出现的编译器的异常。 Exception:一般是出现的代码异常。

6.什么是RuntimeException?列举至少4个RuntimeException的子类 此异常允许程序不对其进行处理。 ArithmeticException ArrayStoreException

ArrayIndexOUtOfBoundsException ClassCastException

专题8 多线程 一、填空题

1.Java语言实现多线程的方法有两种,它们是(自己创建的线程子类)和(实现一个接口Runnable)

2.线程有5种状态,它们是( 新建 )、( 就绪 )、(运行 )、( 阻塞)和( 死亡 ) 3.在java中,线程同步是通过( Thread )关键字实现的 4.新创建的线程默认的优先级是( )

5.当一个线程睡眠时,sleep()方法不消耗( )时间

二.选择题

1. 一个Java程序运行后,在系统中这个程序便可以作为一个( )

A.线程 B.进程 C.进程或线程 D.不可预知 2. 设已经编好了一个线程类MyThread,要在main()中启动该线程,需使用以下哪个

方法( ) A.new MyThread

B.MyThread myThread=new MyThread(); myThread.start(); C.MyThread myThread=new MyThread(); myThread.run(); D.new MyThread.start();

3. 以下哪个方法不能使线程进入阻塞状态( ) A.sleep() B.wait() C.suspend() D.stop() 4. 可以使用( )方法设置线程的优先级

A.getPriority() B.setPriority() C.yield() D.wait() 5. 线程是Java的( )机制

A.检查 B.解释执行 C.并行 D.并发 6. 以下方法用于定义线程执行体的是( )

22

A.start() B.init() C.run() D.main()

7. 一个线程如果调用了sleep()方法,能唤醒它的方法是( ) A.notify() B.resume() C.run() D.以上都不是

专题9 图形用户界面编程 一.填空题

1. AWT的组件库被更稳定、通用、灵活的库取代,该库称为( ) 2. ( )用于安排容器上的GUI组件

3. 设置容器的布局管理器的方法是( ) 4. 当释放鼠标按键时,将产生( )事件

5. Java为那些声明了多个方法的Listener接口提供了一个对应的( ),在该类中

实现了对应接口的所有方法 6. ActionEvent事件的监听器接口是( ),注册该时间监听器的方法名是( ),

事件处理方法名是( )

7. 图形用户界面通过( )相应用户和程序的交互,产生事件的组件称为( ) 8. Java的Swing包中定义菜单的类是( ) 9. 向容器内添加组件使用( )方法

10. 对话框有两种类型,分别是( )和( ) 11. 工具栏一般放在窗口的( )位置

12. 若要使表格具有滚动条,需要将表格添加到( )组件中。 13. paint() 方法的参数是( )类的实例

14. drawRect(int x1,int y1,int x2,int y2)中,x2和y2分别代表矩形的( )和( )

二.选择题

1. 窗口JFrame使用( )方法可以将jMenuBar对象设置为主菜单 A.setHelpMenu(jMenuBar) B.add(jMenuBar) C.setJMenuBar(jMenuBar)

2. 下面属于容器类的是( ) A.Color类

C.JFrame类

3. 使用( )类创建菜单对象 A.Dimension

D.setMenu(jMenuBar) B.JMenu类 D.JTextField类 B.JMemu

C.JMenuItem D.JTextArea 4. 使用( )方法创建菜单中的分隔条 A.setEditable B.ChangeListener

23

C.add D.addSeparator 5. JPanel和JApplet的默认布局管理器是( ) A.CardLayout B.FlowLayout C.BorderLayout

6. JFrame的默认布局管理器是( ) A.CardLayout

D.GridLayout B.FlowLayout

C.BorderLayout D.GridLayout

7. 按钮可以产生ActionEvent事件,实现哪个接口可以处理此事件( ) A.FocusListener B.ComponentListener C.ActionListener D.WindowListener 8. 容器使用( )方法将组件添加到容器 A.addComponent() B.add() C.setComponent() D.Add()

9. 向JTextArea的( )方法传递false参数可以防止用户修改文本 A.setEditable

B.changeListener

C.add D.addSeparator

10. 为了能够通过选择输入学生性别,使用组件的最佳选择是( ) A.JCheckBox

B.JRadioButton

C.JComboBox D.JList

11. 当选中一个复选框,即在前面的方框上打上对勾,引发的事件是( ) A.ActionEvent

B.ItemEvent

C.SelectEvent D.ChangeEvent 12. 窗口关闭时会触发的事件是( ) A.ContainerEvent B.ItemEvent C.WindowEvent D.MouseEvent 13. 下面哪种对话框可以接受用户输入( ) A.showConfirmDialog

B.showInputDialog

C.showMessageDialog D.showOptionDialog

14. addActionListener(this)方法中的this参数表示的意思是( ) A.当有事件发生时,应该使用this监听器 B.this对象类会处理此事件

C.this事件优先于其他事件

D.只是一种形式

15. 以下类中,具有绘图能力的类是( ) A.Image B.Graphics

C.Font D.Color 16. Graphics类中提供的绘图方法分为两类:一类是绘制图形,另一类是绘制( )

A.屏幕 B.文本 C.颜色 D.图像

24

三、编程题

专题10(模块7) 输入输出 一、填空题

1.根据流的方向,流可以分为两类:( 输入流 )和( 输出流 ) 2.根据操作对象的类型,可以将数据流分为( )和( )两种

3.在java.io包中有4个基本类:InputStream、OutputStream、Reader和( )类

4.在Java语言中,实现多线程之间通信的流是( ) 5.( )类是java.io包中一个非常重要的非流类,封装了操作文件系统的功能。 6.( )类用于将Java的基本数据类型转换为字符串,并作为控制台的标准输出 7.Java包括的两个标准输出对象分别是标准输出对象( )和标准错误输出 8.FileInputStream实现对磁盘文件的读取操作,在读取字符的时候,它一般与( )和( )一起使用

二.选择题

1.Java语言提供处理不同类型流的类所在的包是( ) A.java.sql B.java.util C.java.math D.java.io 2.创建一个DataOutputStream的语句是( ) A.new DataOutputStream(“out.txt”)

B.new DataOutputStream(new File(“out.txt”)); C.new DataOutputStream(new Writer(“out.txt”));

D.new DataOutputStream(new OutputStream(“out.txt”)); 3.下面语句正确的是( )

A.RandomAccessFile raf=new RandomAccessFile (“myfile.txt”,”rw”); B.RandomAccessFile raf=new RandomAccessFile (new DataInputStream()); C.RandomAccessFile raf=new RandomAccessFile (“myfile.txt”);

D.RandomAccessFile raf=new RandomAccessFile (new File(“myfile.txt”)); 4.下面哪个方法返回的是文件的绝对路径( ) A.getCanonicalPath() B.getAbsolutePath() C.getCanonicalFile() D.getAbsoluteFile()

5.在File类提供的方法中,用语创建目录的方法是( )

A.mkdir() B.mkdirs() C.list() D.listRoots()

6.程序如果要按行输入/输出文件中的字符,最合理的方法是采用( ) A.BufferedReader和BufferedWriter类

25

B.InputStream和OutputStream类 C.FileReader和FileWriter类

D.File_Reader和File_Writer类

7.RandomAccessFile类的( )方法可用于设置文件定位指针在文件中的位置。 A.readInt B.readLine C.seek D.close 8.下面哪个流类使用了缓冲区技术( )

A.BufferadOutputStream B.FileInputStream C.DataOutputStream D.FileReader

专题11(模块8) 数据库JDBC 一.简答题

1.说明ODBC数据源创建的步骤

2.JDBC提供了哪几种连接数据库的方式?

3.SQL语言包括哪几种基本语句来完成数据库的基本操作? 4.写出装载驱动程序的代码

5.说明Statement和PreparedStatement的不同,都用在什么场合?

二.选择题

1.下面方法中,可以用来加载JDBC驱动程序的是( D )

A.类java.sql.DriverManager的getDriver方法 B.类java.sql.DriverManager的getDrivers方法 C.类java.sql.Driver的connect方法 D.类java.lang.Class的forName方法

2.下面方法中,可以用来建立数据库连接的是( A )

A.类java.sql.DriverManager的getConnection方法 B.类javax.sql.DataSource的getConnection方法 C.类javax.sql.DataSource的connection方法 D.类java.sql.Driver的getConnection方法

3.一个(C )对象用于向数据库提交查询

A.ResultSet B.Connection C.Statement D.Applet

4.JDBC API主要定义在下面哪个包中( A )

A.java.sql B.java.io C.java.awt D.java.util

5.Statement类的executeQuery()方法返回的数据类型是( D )

A.Statement类的对象 B.Connection类的对象

26

C.DatabaseMetaData类的对象 D.ResultSet类的对象

专题12(模块) 网络编程 一、填空题

1. 一个URL地址是由(协议名称、主机名称、端口号、文件名)几部分组成的 2. URL类中返回URL端口号的方法是(public getPort() )

3. 一个Socket由一个(IP )地址和一个(端口号 )唯一确定 4. 目前最广泛使用的网络协议是Internet上使用的(TCP/IP)协议 5. TCP/IP协议的两种通信协议是(TCP )协议和(UDP)协议 6. 常用的变成模式有客户端/(服务器 )模式和B/S模式

7. 套接字是一个特定机器上被编号的( ),用户可用的端口号是( ),系统可用的端口号

是 ( ) 8. 服务器端套接字类是(ServerSocket )

二.选择题

1. 关于协议下面说法正确的是(B)

A.TCP/IP协议由TCP协议和IP协议组成 B.TCP和UDP都是 TCP/IP协议传输层的子协议 C.Socket是TCP/IP协议的一部分 D.主机名的解析是TCP/IP的一部分

2. TCP协议栈的4层结构中不包括( )

A.应用层 B.传输层 C.网络层 D.会话层 3. 下面服务中使用TCP协议的是( A )

A.HTTP B.FTP C.SMTP D.NEWS 4. HTTP服务的端口号是( A ) A.80 B.21 C.23 D.120 5. 下面URL合法的是( A )

A.http://92.168.1.59/index.html B.ftp://192,168,1,1/incoming C.ftp:// 192.168.1.1:-1 D.http:// 192.168.1.1.2 6. 下面方法表示本机的是( C )

A.localhost B.255.255.0.0 C.127.0.0.1 D.123.456.789.0 7. 一个Socket由(A )唯一确定

A.一个IP地址和一个端口号 B.一个IP地址和一个主机名 C.一个主机号和一个端口号 D.一个IP地址 8. 获取本机地址可以使用下面哪个方法( B )

27

A.getHostName() B.getLocalHost() C.getByName() D.getHostAddress() 9. 以下( A )方法可以获取指定URL的协议名

A.public String getProtocol() B.public String getHost()

C.public final Object getContent() D.public int getPort() 10. 下面创建Socket的语句中正确的是(B )

A.Socket a=new Socket(80); B.Socket b=new Socket(“130.3.4.5”,80); C.ServerSocket c=new Socket(80); D.ServerSocket d=new Socket(“130.3.4.5”,80);

三.简答题

1.什么叫套接字?它的作用是什么?

2.建立Socket连接时,客户端和服务器端有什么不同? 3.基于UDP的通信和基于TCP的通信有什么不同?

4.客户端的套接字对象和服务器端的套接字对象是如何进行通信的?

28