文档库 最新最全的文档下载
当前位置:文档库 › JAVA各章习题及答案

JAVA各章习题及答案

JAVA各章习题及答案
JAVA各章习题及答案

第1章

一、选择题

1.下列选项中,不属于Java语言特点的一项是(C )。

(A)分布式(B)安全性

(C)编译执行(D)面向对象

【解析】Java程序采用解释执行的方法。在系统编译运行Java程序时,Java编译器将Java程序转化为字节码,在运行时,解释器将编译得到的字节码进行解释执行。

2.在Java语言中,( C )是最基本的元素?

(A)方法(B)包

(C)对象(D)接口

【解析】构成Java程序的基本元素类(抽象的对象)。

3.编译一个定义了3个类和10个方法的Java源文件后,会产生(D )个字节码文件?扩展名是(D )?

(A)13个字节码文件,扩展名为.class (B)1个字节码文件,扩展名为.class (C)3个字节码文件,扩展名为.java (D)3个字节码文件,扩展名为.class 【解析】源文件中的每一个类编译后都会生成一个字节码文件,字节码文件的扩展名是.class。

4.在创建Applet应用程序时,需要用户考虑问题是( B )。

(A)窗口如何创建(B)绘制的图形在窗口中的位置

(C)程序的框架(D)事件处理

【解析】创建Applet程序时必须继承系统类Applet,而Applet类中已经包含了如何创建窗口以及事件处理等内容,这类程序的框架也都是固定的,而绘制图形在窗口中的位置则需要由用户确定。

5.Java语言属于(B )种语言?

(A)面向机器的语言(B)面向对象的语言

(C)面向过程的语言(D)面向操作系统的语言

【解析】Java语言是一种纯面向对象的语言。

6.下列关于Application和Applet程序的说法中不正确的一项是(B )。

(A)Application使用解释器java.exe (B)Application不使用独立的解释器

(C)Applet在浏览器中运行(D)Applet必须继承Java的Applet类

【解析】Application程序包含main()方法,它是一种独立执行的程序,因此必须使用独立的解释器解释执行。

7.下列选项中,不属于Java核心包的一项是(A )。

(A)javax.swing (B)java.io

(C)java.utile (D)https://www.wendangku.net/doc/7b5355095.html,ng

【解析】凡是以java开头的包都是Java核心包,以javax开头的包则属于Java扩展包。8.下列描述中,不正确的是(A )。

(A)不支持多线程(B)一个Java源文件不允许有多个公共类

(C)Java通过接口支持多重继承(D)Java程序分为Application和Applet两类【解析】Java是支持多线程的语言。

9.阅读下列代码,选出该代码段正确的文件名(C )。

class A{

void method1(){

System.out.println("Method1 in class A");

}

}

public class B{

void method2(){

System.out.println("Method2 in class B");

}

public static void main(String[] args){

System.out.println("main() in class B");

}

}

(A)A.java (B)A.class

(C)B.java (D)B.class

【解析】Java源文件名必须和公共类的名字完全一样,源文件的扩展名为.java。10.编译下面源程序会得到哪些文件(D )?

class A1{

}

class A2{

}

public class B{

public static void main(String[] args){

}

}

(A)只有B.class文件(B)只有A1.class和A2.class文件

(C)编译不成功(D)A1.class、A2.class和B.class文件

【解析】由于该程序包含3个类,每个类编译后都会生成1个字节码文件,因此编译后会生成以这3个类名命名的字节码文件。

二、填空题

1.Java程序的编译和执行模式包括2点,是半编译和半解释。

2.Java语言支持TCP/IP 协议,从而使得Java程序在分布式环境中能够很方便地访问处于不同地点的对象。

3.开发Java程序的一般步骤是:源程序编辑、生成字节码和解释执行。

4.每个Java Application程序可以包括许多方法,但是必须有且只能有一个main() 方法,统一格式为public static void main(String[] args) ,它是程序执行的入口。

5.JVM把字节码程序与各种不同的操作系统和硬件分开,使得Java程序独立于平台。6.在Java程序中,能在WWW浏览器上运行的是Applet 程序。

7.Java源程序文件和字节码文件的扩展名分别为 .java 和.class 。

8.如果在Java程序中需要使用java.utile包中的所有类,则应该在程序开始处加上import java.utitle.* 语句。

第2章

一、选择题

1.下列(D )是合法的标识符?

(A)12class (B)void (C)-5 (D)_blank

【解析】根据Java标识符的构成规则确定。

2.下列(B )不是Java中的保留字?

(A)if (B)sizeof (C)private (D)null

【解析】根据Java保留字表进行选择。

3.下列(C )不是合法的标识符?

(A)$million (B)$_million (C)2$_million (D)$2_million

【解析】根据Java标识符的构成规则确定。

4.下列选项中,(B )不属于Java语言的基本数据类型?

(A)整数型(B)数组(C)浮点型(D)字符型

【解析】根据Java语言的基本数据类型包含的类别选取。

5.下列关于基本数据类型的说法中,不正确的一项是(D )。

(A)boolean类型变量的值只能取真或假

(B)float是带符号的32位浮点数

(C)double是带符号的64位浮点数

(D)char是8位Unicode字符

【解析】Java中的字符采用的是16位的Unicode字符。

6.下列关于基本数据类型的取值范围的描述中,正确的一个是(B )。

(A)byte类型的取值范围是-128~128 (B)boolean类型的取值范围是真或假

(C)char类型的取值范围是0~65536 (D)short类型的取值范围是-32767~32767

【解析】根据每种类型占几个字节即可推算出其取值范围,如byte类型占1个字节,即共包含28个数值,其取值范围范围应为-128~127,其他类型也是如此。

7.下列关于Java语言简单数据类型的说法中,正确的一项是(A )。

(A)以0开头的整数代表8进制整型常量

(B)以0x或0X开头的整数代表8进制整型常量

(C)boolean类型的数据作为类成员变量的时候,相同默认的初始值为true

(D)double类型的数据占计算机存储的32位

【解析】根据每种数据类型的特性进行判断。

8.下列Java语句中,不正确的一项是(C )。

(A)$e, a, b = 10; (B)char c, d = ?a‘;

(C)float e = 0.0d; (D)double c = 0.0f;

【解析】不能将double类型的常量赋值给float类型的变量。

9.在编写Java程序时,如果不为类的成员变量定义初始值,Java会给出它们的默认值,下列说法中不正确的一个是(D )。

(A)byte的默认值是0 (B)boolean的默认值是false

(C)char类型的默认值是‘\0‘(D)long类型的默认值是0.0L

【解析】long类型的默认值是0L,而不是0.0L。

10.下列语句中不正确的一个是(B )。

(A)float f = 1.1f; (B)byte b = 128;

(C)double d = 1.1/0.0; (D)char c = (char)1.1f;

【解析】bytel类型变量的取值范围是-128~127。

11.下列表达式1+2+ "aa"+3的值是(B )。

(A)"12aa3" (B)"3aa3 " (C)"12aa" (D)"aa3"

【解析】整数和整数相加得到两个整数的和,而整数和字符串相加得到的是字符串。12.已知y=2, z=3, n=4,则经过n=n+ -y*z/n运算后n的值为(A )。

(A)3 (B)-1 (C)-12 (D)-3

【解析】根据运算符的优先级,该表达式相当于n=n+ ((-y)*z)/n。

13.已知a=2, b=3,则表达式a%b*4%b的值为(A )。

(A)2 (B)1 (C)-1 (D)-2

【解析】根据运算符的优先级,该表达式相当于((a%b)*4)%b。

14.已知x=2, y=3, z=4,则经过z- = --y – x--运算后,z的值为(D )。

(A)1 (B)2 (C)3 (D)4

【解析】在表达式运算过程中,--y的值变为2,x—的值还是2,等号右侧运算后的值为0,因此z的值没有变化。

15.表达式(12==0) && (1/0 < 1)的值为(B )。

(A)true (B)false (C)0 (D)运行时抛出异常

【解析】由于(12==0)的值为false,因此整个表达式发生短路运算,即(1/0 < 1)就没有参与运算,整个表达式的值为false。

16.设有类型定义short i=32; long j=64; 下面赋值语句中不正确的一个是(B )(A)j=i; (B)i=j; (C)i=(short)j; (D)j=(long)i;

【解析】long类型的数据不能自动转变为short类型,因此不能将long类型的变量直接赋值给short类型。

17.现有1个char类型的变量c1=66和1个整型变量i=2,当执行c1=c1+(char)i;语句后,c1的值为(D )。

(A)'d' (B)'D' (C)68 (D)语句在编译时出错

【解析】两个字符型的数据相加,得到的是一个整数,而如果把整数再赋值给一个字符型变量则会在编译时出错。

18.下列说法中,正确的一项是(D )。

(A)字符串"\\abcd" 的长度为6 (B)False是Java的保留字

(C)123.45L代表单精度浮点型(D)False是合法的Java标识符

【解析】Java语言对字符的大小写是敏感的,False不是false,因此False是合法的Java 标识符。

19.以下的变量定义语句中,合法的是(D )

(A)float _*5 = 123.456F; (B)byte $_b1 = 12345;

(C)int _long_ = 123456L; (D)double d = Double.MAX_V ALUE;

【解析】(A)中_*5不是合法的标识符,(B)中12345超出byte范围,(C)中不能将long类型的常量赋值给int型的变量。

20.下列关于运算符优先级的说法中,不正确的一个是(C )

(A)运算符按照优先级顺序表进行运算

(B)同一优先级的运算符在表达式中都是按照从左到右的顺序进行运算的

(C)同一优先级的运算符在表达式中都是按照从右到左的顺序进行运算的

(D)括号可以改变运算的优先次序

【解析】同一优先级的运算符在表达式中都是按照从左到右的顺序进行运算的。

二、填空题

1.变量是Java程序的基本存储单元之一,变量的主要类型包括2大类:字符型和数值型。2.Java语言的整数类型变量和常量一样,各自都包括4种类型的数据,它们分别是byte、int 、short 和long。

3.boolean 类型数据不可以做类型转换。

4.在Java语言的基本数据类型中,占存储空间最少的类型是boolean ,该类型占用的存储空间为 1 位。

5.Java语言中的保留字具有特殊意义和作用,不能作为普通标识符使用。

6.在Java语言中,浮点类型数据属于实型数据,可以分为单精度和双精度两种。7.char类型的数据可以表示的字符数共为65536 。

8.定义初始值为10的8次方的常整型变量iLong的语句是final iLong = 100000000L 。9.Java语言中的数据类型转换包括自动转换和强制转换两种。

10.Java中的字符采用的是16位的Unicode 编码。

11.数据类型中存储空间均为64位的两种数据类型是long 和double 。

12.表达式9*4/ -5%5的值为-2 。(十进制表示)

13.表达式5&2的值为0 。(十进制表示)

14.表达式42<<4的值为672 。(十进制表示)

15.表达式11010011>>>3的值为11010 。(二进制表示)

16.表达式7|3的值为7 。(十进制表示)

17.表达式10^2的值为8 。(十进制表示)

18.Java语言中的逻辑与(&&)和逻辑或(||)运算采用短路方式进行运算。

19.若a、b为int型变量,并且已分别赋值为5和10,则表达式(a++)+(++b)+a*b的值为82 。

20.假设i=10, j=20, k=30,则表达式!(i

第3章

一、选择题

1.下列(D )不属于Java语言流程控制结构?

(A)分支语句(B)跳转语句(C)循环语句(D)赋值语句【解析】Java语言流程控制结构只包括分支、循环和跳转三种语句。

2.假设a是int类型的变量,并初始化为1,则下列(D )是合法的条件语句?

(A)if(a){} (B)if(a<<=3){} (C)if(a=2){} (D)if(true){}

【解析】条件语句中的“条件表达式”只能是boolean类型,不能是其他类型。

3.下列说法中,不正确的一个是(C )。

(A)switch语句的功能可以由if…else if语句来实现

(B)若用于比较的数据类型为double型,则不可以用switch语句来实现

(C)if …else if语句的执行效率总是比switch语句高

(D)case子句中可以有多个语句,并且不需要大括号{}括起来

【解析】语句的执行效率高低要根据具体语句来确定,不能简单地说if …else if语句的执行效率总是比switch语句高。

4.设a、b为long型变量,x、y为float型变量,ch为char类型变量且它们均已被赋值,

则下列语句中正确的是(B )。

(A)switch(x+y) {} (B)switch(ch+1) {}

(C)switch ch {} (D)switch(a+b); {}

【解析】switch后面的表达式必须放在括号()中,且表达式的类型只能是byte、short、int和char类型,不能是其他类型。

5.下列循环体执行的次数是( C )。

int y=2, x=4;

while(--x != x/y){ }

(A)1 (B)2 (C)3 (D)4

【解析】第1次执行while时,--x的值为3,3/2=1,满足等号两端值不等的条件,执行一次循环体;第2次执行while时,--x的值为2,2/2=1,条件满足,又执行一次循环体;第3次执行while时,--x的值为1,1/2=0,条件满足,再次执行一次循环体;第4次执行while时,--x的值为0,0/2=0,条件不满足满足,结束循环。因此在这个循环语句执行的过程中,循环体共执行了3次。

6.下列循环体执行的次数是( B )。

int x=10, y=30;

do{ y -= x; x++; }while(x++

(A)1 (B)2 (C)3 (D)4

【解析】执行1次循环体后,y的值为20,x值为11,然后执行while,此时x++的值为11,y—的值为20,因此x++

7.已知如下代码:

switch(m){

case 0: System.out.println("Condition 0");

case 1: System.out.println("Condition 1");

case 2: System.out.println("Condition 2");

case 3: System.out.println("Condition 3");break;

default:System.out.println("Other Condition");

}

当m的值为(D )时,输出“Condition 3”

(A)2 (B)0、1 (C)0、1、2 (D)0、1、2、3

【解析】当m的值为0、1、2、3时,都能输出“Condition 3”,因为case 0、case 1、case 2后面的语句都没有break,因此可以继续向后执行。

二、填空题

1.跳转语句包括break、continue、return和throw

2.switch语句先计算switch后面的表达式的值,再和各case 语句后的值做比较。3.if语句合法的条件值是boolean 类型。

4.continue语句必须使用于循环语句中。

5.break语句有两种用途:一种从switch 语句的分支中跳出,一种是从循环语句内部跳出。6.do -while循环首先执行一遍循环体,而while循环首先判断表达式的值。7.与C++语言不同,Java语言不通过goto 语句实现跳转。

8.每一个else子句都必须和它前面的一个距离它最近的if 子句相对应。

9.在switch语句中,完成一个case语句块后,若没有通过break语句跳出switch语句,则会继续执行后面的case 语句块。

10.在for循环语句中可以声明变量,其作用域是for循环体。

第4章

一、选择题

1.下列哪种类成员修饰符修饰的变量只能在本类中被访问?(D )(A)protected (B)public (C)default (D)private 【解析】只有私有访问权限修饰符才能限制变量只能在本类中被访问。

2.在Java语言中,哪一个包中的类是自动导入的?( A )

A)https://www.wendangku.net/doc/7b5355095.html,ng B)java.awt C)java.io D)java.applet 【解析】只有https://www.wendangku.net/doc/7b5355095.html,ng包中的类能够被自动导入。

3.给出下面的程序代码:

public class X4_1_3 {

private float a;

public static void m ( ){ }

}

如何使成员变量a被方法m( )访问( C )

(A)将private float a改为protected float a(B)将private float a改为public float a (C)将private float a改为static float a (D)将private float a改为float a 【解析】static类型的方法只能访问static类型的数据成员。

4.有一个类B,下面为其构造方法的声明,正确的是( B )。

(A)void B(int x) {} (B)B(int x) {}

(C)b(int x) {} (D)void b(int x) {} 【解析】构造方法没有类型,且方法名与类名相同。

5.下面关于类的说法,不正确的是( C )。

(A)类是同种对象的集合和抽象(B)类属于Java语言中的复合数据类型

(C)类就是对象(D)对象是Java语言中的基本结构单位【解析】类是对象的抽象,对象是类的实例,因此类和对象是有区别的。

6.下面关于方法的说法,不正确的是(C )。

(A)Java中的构造方法名必须和类名相同

(B)方法体是对方法的实现,包括变量声明和合法语句

(C)如果一个类定义了构造方法,也可以用该类的默认构造方法

(D)类的私有方法不能被其他类直接访问

【解析】类中一旦用户定义了构造方法,该类默认的构造方法就不存在了,除非用户再自定义该类的默认构造方法。

7.关于内部类,下列说法不正确的是(A )。

(A)内部类不能有自己的成员方法和成员变量

(B)内部类可用private或protected修饰符修饰

(C)内部类可以作为其他类的成员,而且可访问它所在的类的成员

(D)除static内部类外,不能在类内声明static成员

【解析】内部类也可以有自己的成员方法和变量。

8.定义外部类时不能用到的关键字是( C )。

(A)final (B)public (C)protected (D)abstract 【解析】定义外部类不能使用protected修饰符。

9.为AB类定义一个无返回值的方法f,使得使用类名就可以访问该方法,该方法头的形式为( D )

(A)abstract void f() (B)public void f()

(C)final void f() (D)static void f()

【解析】只有static类型的方法才可以直接使用类名来引用。

10.定义一个公有double型常量PI,哪一条语句最好?( B )

(A)public final double PI; (B)public final static double PI=3.14;

(C)public final static double PI; (D)public static double PI=3.14;

【解析】用public final static来定义常量,既可以节省存储空间,又可以保证数值不会被改变。

二、填空题

1.对象是对事物的抽象,而类是对对象的抽象和归纳。

2.从用户的角度看,Java源程序中的类分为两种:系统定义的类和用户自己定义的类。

3.一个类主要包含两个要素:数据成员和成员方法。

4.创建包时需要使用关键字package 。

5.类中的构造方法是一个特殊的方法,该方法的方法名和类名相同。

6.如果用户在一个自定义类中未定义该类的构造方法,系统将为这个类定义一个默认构造方法。这个方法没有形式参数,也没有任何具体语句,不能完成任何操作。

7.静态数据成员被保存在类的内存区的公共存储单元中,而不是保存在某个对象的内存区中。因此,一个类的任何对象访问它时,存取到的都是相同(相同/不同)的数值。

8.静态数据成员既可以通过对象名来访问,也可以通过类名直接访问它。

9.定义常量时要用关键字final ,同时需要说明常量的数据类型并指出常量的具体值。

10.方法体内定义变量时,变量前不能加修饰符;局部变量在使用前必须明确赋值,否则编译时会出错;而类变量在使用前可以不用赋值,它们都有一个默认的值。

11.static方法中只能引用static 类型的数据成员和static 类型的成员方法;而非static类型的方法中既可以引用static 类型的数据成员和成员方法,也可以引用非static 类型的数据成员和成员方法。

12.引用static类型的方法时,可以使用类名做前缀,也可以使用对象名做前缀。

13.当程序中需要引用java.awt.event包中的类时,导入该包中类的语句为import java.awt.event.*。

14.定义类时需要class 关键字,继承类时需要extends 关键字,实现接口时需要关键字implements 。

第5章

一、选择题

1.已知有下面类的说明:

public class X5_1_1 extends x{

private float f =10.6f;

int i=16;

static int si=10;

public static void main(String[] args) {

X5_1_1 x=new X5_1_1();

}

}

在main()方法中,下面哪条语句的用法是正确的?( A )

A.x.f B.this.si C.X5_1_1.i D.X5_1_1.f

【解析】由于x是在main方法内部定义的对象,因此它可以引用类的非static类型的属性,因此选A,而this和super不能在main方法中使用,使用类名只能引用本类的静态属性,因此B、C、D不对。

2.下列程序的运行结果是(C )。

public class X5_1_2 extends x{

int ab(){

static int aa=10;

aa++;

System.out.println(aa);

}

public static void main(String[] args) {

X5_1_2 x=new X5_1_2();

x.ab();

}

}

A.10 B.11

C.编译错误D.运行成功,但不输出

【解析】方法体内的局部变量不能使用static修饰符。

3.下面关于接口的说法中不正确的是( C )。

A.接口中所有的方法都是抽象的

B.接口中所有的方法都是public访问权限

C.子接口继承父接口所用的关键字是implements

D.接口是Java中的特殊类,包含常量和抽象方法

【解析】子接口继承父接口所用的关键字也是extends,只有类实现接口时才使用implements。4.区分类中重载方法的依据是( A )。

A.形参列表的类型和顺序B.不同的形参名称

C.返回值的类型不同D.访问权限不同

【解析】形参表的类型和顺序不同时区分重载方法的唯一标志。

5.子类对象能否直接向其父类赋值?父类对象能否向其子类赋值?( B )A.能,能B.能,不能C.不能,能D.不能,不能

【解析】子类对象可以直接赋值给父类对象,而父类对象不能直接赋值给子类对象。

6.Java语言类间的继承关系是( A )。

A.单继承B.多重继承C.不能继承D.不一定

【解析】Java语言类间的继承关系是单继承,但一个类可以实现多个接口。

7.Java语言接口间的继承关系是(B )。

A.单继承B.多重继承C.不能继承D.不一定

【解析】Java语言接口间的继承关系允许多重继承。

8.一个类实现接口的情况是(A )。

A.一次可以实现多个接口B.一次只能实现一个接口

C.不能实现接口D.不一定

【解析】Java语言允许一个类一次实现多个接口。

9.定义外部类的类头时,不可用的关键字是( C )。

A.public B.final C.protected D.abstract

【解析】定义外部类时不能使用protected关键字。

10.如果局部变量和成员变量同名,如何在局部变量作用域内引用成员变量?( B )A.不能引用,必须改名,使它们的名称不相同

B.在成员变量前加this,使用this访问该成员变量

C.在成员变量前加super,使用super访问该成员变量

D.不影响,系统可以自己区分

【解析】this可以用来引用本类对象。

11.下面说法不正确的是( B )。

A.抽象类既可以做父类,也可以做子类

B.abstract和final能同时修饰一个类

C.抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类或接口

D.声明为final类型的方法不能在其子类中重新定义

【解析】abstract和final不能同时修饰一个类,因为abstract类需要子类,而final类不能有子类。

二、填空题

1.消息就是向对象发出服务请求,是对数据成员和成员方法的引用。

2.在面向对象系统中,消息分为两类公有消息和私有消息。

3.在面向对象程序设计中,采用继承机制可以有效地组织程序结构。充分利用已有的类来创建更复杂的类,大大提高程序开发的效率,提高代码的复用率,降低维护的工作量。

4.数据成员的隐藏是指在子类中重新定义一个与父类中已定义的数据成员名完全相同的数据成员。

5.子类可以重新定义与父类同名的成员方法,实现对父类方法的覆盖。

6.子类在重新定义父类已有的方法时,应保持与父类完全相同的方法名、返回值类型和参数列表,否则就不是方法的覆盖,而是子类定义自己特有的方法,与父类的方法无关。7.this代表了当前对象的一个引用,super表示的是当前对象的直接父类对象的引用。8.抽象类不能创建对象,该工作由抽象类派生的非抽象子类来实现。

9.如果父类中已有同名的abstract方法,则子类中就不能(能/不能)再有同名的抽象方法。

10.abstract类中不能有private 访问权限的数据成员或成员方法。

11.interface 是声明接口的关键字,可以把它看成一个特殊类。接口中的数据成员默认的修饰符是public static final ,接口中的成员方法默认的修饰符是public abstract 。

12.如果实现某接口的类不是abstract的抽象类,则在类的定义部分必须实现该接口的所有抽象方法;如果实现某接口的类是abstract的抽象类,则它可以不实现该接口所有的方法。但是对于这个抽象类任何一个非抽象的子类而言,它们父类所实现的接口中的所有抽象方法以及自身所实现接口中的抽象方法都必须有实在的方法体。13.包的作用有两个,一是划分类名空间,二是控制类之间的访问。

14.封装也称信息隐藏,是指类的设计者只为类的使用者提供类的可以访问的部分(包括类的数据成员和成员方法),而把类中的其他成员隐藏起来,使用户不能访问的机制。

15.Java提供了4种访问权限来实现封装机制,即private 、protected 、默认和public 。16.Java中提供两种多态机制,重载与覆盖。

17.当一个构造方法需要调用另一个构造方法时,可以使用关键字this ,同时这个调用语句应该是整个构造方法的第一条可执行语句。

18.如果子类自己没有构造方法,那么父类也一定没有(有/没有)带参的构造方法,此时它将继承父类的无参构造方法作为自己的构造方法;如果子类自己定义了构造方法,则在创建新对象时,它将先执行父类的构造方法,然后再执行自己的构造方法。19.对于父类的含参数构造方法,子类可以通过在自己的构造方法中使用super 关键字来调用它,但这个调用语句必须是子类构造方法的第一条可执行语句。

20.创建一个名为myPachkage的包的语句为package myPackage; ,该语句应该放在程序第一行位置。

第6章

一、选择题

1.给出下面程序代码:

byte[] a1, a2[];

byte a3[][];

byte[][] a4;

下列数组操作语句中哪一个是不正确的?( A )

A.a2 = a1 B.a2 = a3 C.a2 = a4 D.a3 = a4

【解析】只有维数相同的数组才能相互赋值。

2.关于数组,下列说法中不正确的是( C )。

A.数组是最简单的复合数据类型,是一系列数据的集合

B.数组元素可以是基本数据类型、对象或其他数组

C.定义数组时必须分配内存

D.一个数组中所有元素都必须具有相同的数据类型

【解析】数组元素可以是基本数据类型、对象或其他数组。

3.设有下列数组定义语句:

int a[] = {1, 2, 3};

则对此语句的叙述错误的是( C )。

A.定义了一个名为a的一维数组B.a数组有3个元素

C.a数组元素的下标为1~3 D.数组中每个元素的类型都是整数

【解析】数组元素的下标是从0开始的。

4.执行语句:int[] x = new int[20];后,下面哪个说法是正确的?(C )A.x[19]为空B.x[19]未定义C.x[19]为0 D.x[0]为空

【解析】此语句定义了x数组后,x[0]~x[19]的值全部为0。

5.下面代码运行后的输出结果为( A )。

public class X6_1_5 {

public static void main(String[] args) {

AB aa = new AB();

AB bb;

bb = aa;

System.out.println(bb.equals(aa));

}

}

class AB{ int x = 100; }

A.true B.false C.编译错误D.100

【解析】同一个类的两个对象可以相互赋值,赋值后两个对象具有相同的存储空间,因此是相同的。

6.已知有定义:String s="I love",下面哪个表达式正确?(A )

A.s += "you"; B.char c = s[1];

C.int len = s.length; D.String s = s.toLowerCase();

【解析】字符串对象可以执行“+=”运算,但不能用s[1]这种方式取其中的字符,也不能用length求它的长度,可以用length()求其长度,因此B、C不正确,不能再次定义s字符串,因此D不正确。

二、填空题

1.Object类是所有类的直接或间接父类,它在https://www.wendangku.net/doc/7b5355095.html,ng 包中。

2.System类是一个功能强大、非常有用的特殊的类,它提供了标准输入/输出、运行时系统信息等重要工具。这个类不能实例化,即不能创建System类的对象,所以它所有的属性和方法都是static 类型,引用时以类名System为前缀即可。3.Applet由浏览器自动调用的主要方法init ,start ,stop 和destroy 分别对应了Applet从初始化、启动、暂停到消亡的生命周期的各个阶段。

4.数组是一种复合数据类型,在Java中,数组是作为对象来处理的。数组是有限元素的有序集合,数组中的元素具有相同的数据类型,并可用统一的数组名和下标来唯一确定其元素。

5.在数组定义语句中,如果[]在数据类型和变量名之间时,[]之后定义的所有变量都是数组类型,当[]在变量名之后时,只有[]之前的变量是数组类型,之后没有[]的则不是数组类型。

6.数组初始化包括静态初始化和动态初始化两种方式。

7.利用System 类中的arraycopy() 方法可以实现数组元素的复制;利用Arrays 类中的sort() 和binarySearch() 方法可以实现对数组元素的排序、查找等操作。

8.Java语言提供了两种具有不同操作方式的字符串类:String 类和StringBuffer 类。它们都是https://www.wendangku.net/doc/7b5355095.html,ng.Object 的子类。

三、写出下列程序的运行结果

1.public class X6_3_1 {

public static void main(String[] args) {

int a[]={12,39,26,41,55,63,72,40,83,95};

int i1=0,i2=0;

for(int i=0;i

if(a[i] %2 == 1) i1++;

else i2++;

System.out.println(i1+"\t"+i2);

}

【运行结果】

6 4

2.public class X6_3_2 {

public static void main(String[] args) { int a[]={36,25,48,14,55,40,32,66};

int b1,b2;

b1=b2=a[0];

for(int i=1;i

if ( a[i] >b1 ){

if ( b1 >b2 ) b2=b1;

b1=a[i];

}

System.out.println(b1+"\t"+b2);

}

}

【运行结果】

66 55

3.public class X6_3_3 {

public static void main(String[] args) { int a[]={36,25,48,14,55,40,32,66 };

int b1,b2;

b1=b2=a[0];

for (int i=1;i

if ( a[i]

if ( b1

b1=a[i];

}

System.out.println(b1+"\t"+b2);

}

}

【运行结果】

14 25

4.public class X6_3_4 {

public static void main(String[] args) { String str = "abcdabcabfgacd";

char[] a =str.toCharArray();

int i1 =0, i2=0, i;

for(i=0;i

if(a[i] == 'a' ) i1++;

if(a[i] == 'b' ) i2++;

}

System.out.println(i1+"\t"+i2);

}

}

【运行结果】

4 3

5.public class X6_3_5 {

public static void main(String[] args) {

String str ="abcdabcabdaeff";

char[] a = str.toCharArray();

int b[] = new int[5],i;

for(i=0;i

switch (a[i]) {

case 'a': b[0] ++; break;

case 'b': b[1] ++; break;

case 'c': b[2] ++; break;

case 'd': b[3] ++; break;

default : b[4] ++;

}

}

for(i =0; i<5; i++)

System.out.print(b[i]+"\t");

System.out.println();

}

}

【运行结果】

4 3 2 2 3

6.public class X6_3_6 {

public static void main(String[] args) {

int a[] = {76,83,54,62,40,75,90,92,77,84};

int b[] = {60,70,90,101};

int c[]=new int[4],i;

for (i=0; i

int j =0;

while (a[i] >= b[j] ) j ++;

c[j] ++;

}

for (i=0; i<4; i++)

System.out.print(c[i]+"\t");

System.out.println();

}

}

【运行结果】

2 1 5 2

7.public class X6_3_7 {

public static void main(String[] args) {

int a[][] = {{1,2,7,8},{5,6,11,12},{9,10,3,4}};

int m = a[0][0];

int ii = 0, jj = 0;

for (int i=0;i

for(int j=0;j

if ( a[i][j]>m ){

m =a[i][j];

ii =i;

jj =j;

}

System.out.println(ii+"\t"+jj+"\t"+a[ii][jj]);

}

}

【运行结果】

1 3 12

8.public class X6_3_8 {

public static void main(String[] args) {

String[] a = {"student" ,"worker" ,"cadre" ,"soldier" ,"peasant" };

String s1,s2;

s1 = s2 = a[0];

for( int i = 1; i

if (a[i].compareTo(s1)>0) s1=a[i];

if (a[i].compareTo(s2)<0) s2=a[i];

}

System.out.println(s1+"\t"+s2);

}

}

【运行结果】

worker cadre

第7章

一、选择题

1.关于异常的含义,下列描述中最正确的一个是( D )。

A.程序编译错误B.程序语法错误

C.程序自定义的异常事件D.程序编译或运行时发生的异常事件

【解析】异常就是程序编译或运行时发生的异常事件。

2.自定义异常时,可以通过对下列哪一项进行继承?( C )

A.Error类B.Applet类

C.Exception类及其子类D.AssertionError类

【解析】自定义异常类时,该类必须继承Exception类及其子类。

3.对应try和catch子句的排列方式,下列哪一项是正确的?( A )A.子类异常在前,父类异常在后B.父类异常在前,子类异常在后

C.只能有子类异常D.父类和子类不能同时出现在try语句块中【解析】对应try和catch子句的排列方式,要求子类异常(范围小的异常)在前,父类异常(范围大的异常)在后。

4.运行下面程序时,会产生什么异常?( A )

public class X7_1_4 {

public static void main(String[] args) {

int x = 0;

int y = 5/x;

int[] z = {1,2,3,4};

int p = z[4];

}

}

A.ArithmeticException B.NumberFormatException

C.ArrayIndexOutOfBoundsException D.IOException

【解析】当程序执行到“int y = 5/x”语句时,发生异常,程序中止执行,因此发生ArithmeticException异常。

5.运行下面程序时,会产生什么异常?( C )

public class X7_1_5 {

public static void main(String[] args) {

int[] z = {1,2,3,4};

int p = z[4];

int x = 0;

int y = 5/x;

}

}

A.ArithmeticException B.NumberFormatException

C.ArrayIndexOutOfBoundsException D.IOException

【解析】当程序执行到“int p = z[4]”语句时,发生异常,程序中止执行,因此发生ArrayIndexOutOfBoundsException异常。

6.下列程序执行的结果是( B )。

public class X7_1_6 {

public static void main(String[] args) {

try{

return;

}

finally{

System.out.println("Finally");

}

}

}

A.程序正常运行,但不输出任何结果B.程序正常运行,并输出Finally

C.编译通过,但运行时出现异常D.因为没有catch子句,因此不能通过编译【解析】在执行try-catch-finally语句块时,最后必须执行finally语句块中的内容,而本程序没有异常发生,因此程序正常运行,并输出Finally。

7.下列代码中给出正确的在方法体内抛出异常的是( B )。

A.new throw Exception(" "); B.throw new Exception(" ");

C.throws IOException(); D.throws IOException;

【解析】在方法体内抛出异常时只能使用throw,而不能使用throws,另外,“new Exception(" ")”是创建一个异常,因此B是正确的。

8.下列描述了Java语言通过面相对象的方法进行异常处理的好处,请选出不在这些好处范围之内的一项( C )

A.把各种不同的异常事件进行分类,体现了良好的继承性

B.把错误处理代码从常规代码中分离出来

C.可以利用异常处理机制代替传统的控制流程

D.这种机制对具有动态运行特性的复杂程序提供了强有力的支持

【解析】异常处理机制不能代替传统的流程控制。

二、填空题

1.异常是在程序编译或运行中所发生的可预料或不可预料的异常事件,出现在编译阶段的异常,称之为编译时异常,出现在运行阶段的异常,称之为运行时异常。

2.根据异常的来源,可以把异常分为两种类型:系统定义的运行时异常和用户自定义异常。

3.所有的Java异常类都是系统类库中的Exception 类的子类。

4.抛出异常分为由系统自动抛出异常、通过throw抛出异常以及通过throws抛出异常三种情况。

5.Java语言为我们提供了try…catch 语句和try…catch…finally 语句捕捉并处理异常。6.一个try块后面可能会跟着若干个catch 块,每个catch 块都有一个异常类名作为参数。7.如果try语句块产生的异常对象被第一个catch块所接收,则程序的流程将转向第一个catch块,catch语句块执行完毕后就退出当前方法,try块中尚未执行的语句和其他的catch块将被忽略;如果try语句块产生的异常对象与第一个catch块不匹配,系统将自动转到第二个catch块进行匹配。

8.由于异常对象与catch块的匹配是按照catch块的先后顺序进行的,所以在处理多异常时应注意认真设计各catch块的排列顺序。

9.throws语句抛出的异常实际上是由throws语句修饰的方法内部的throw 语句抛出的,使用throws的主要目的是为了通知所有预调用此方法的方法。

第8章

一、选择题

1.下列数据流中,属于输入流的一项是( B )。

A.从内存流向硬盘的数据流B.从键盘流向内存的数据流

C.从键盘流向显示器的数据流D.从网络流向显示器的数据流

【解析】输入流是指从外围设备流向主机(包括CPU和内存)的数据流。

2.Java语言提供处理不同类型流的类所在的包是(D )。

A.java.sql B.java.util C.https://www.wendangku.net/doc/7b5355095.html, D.java.io

【解析】java.io 包是Java语言提供处理不同类型流的类所在的包。

3.不属于java.io包中的接口的是(C )。

A.DataInput B.DataOutput C.DataInputStream D.ObjectInput

【解析】DataInputStream是java.io包中的一个类,其他三个则是java.io包中的接口。

4.下列程序从标准输入设备读入一个字符,然后再输出到显示器,选择正确的一项填入―//x‖处,完成要求的功能( B )。

import java.io.*;

public class X8_1_4 {

public static void main(String[] args) {

char ch;

try{

//x

System.out.println(ch);

}

catch(IOException e){

e.printStackTrace();

}

}

}

A.ch = System.in.read(); B.ch = (char)System.in.read();

C.ch = (char)System.in.readln(); D.ch = (int)System.in.read();

【解析】System.in.read()方法返回的是字符对应的Unicode码,即返回的类型是int型,而ch 是char类型,因此必须把方法的返回值强制转换为char类型才能把它赋值给ch变量。另外,System.in对象中没有readln()方法。

5.下列程序实现了在当前包dir815下新建一个目录subDir815,选择正确的一项填入程序的横线处,使程序符合要求(D )。

package dir815;

import java.io.*;

public class X8_1_5 {

public static void main(String[] args){

char ch;

try{

File path = ;

if(path.mkdir())

System.out.println("successful!");

}

catch(Exception e){

e.printStackTrace();

}

}

}

A.new File("subDir815"); B.new File("dir815.subDir815");

C.new File("dir815\subDir815"); D.new File("dir815/subDir815");

【解析】在程序中,目录之间的连接符是“\\”或“/”,因此首先排除B和C;而默认情况下,创建相对目录是在当前目录下进行,而dir815也在当前目录下,因此要在dir815下创建新的目录,就必须使用D的形式。

6.下列流中哪一个使用了缓冲区技术( A )?

A.BufferedOutputStream B.FileInputStream

C.DataOutputStream D.FileReader

【解析】只有BufferedOutputStream使用了缓冲区技术。

7.能读入字节数据进行Java基本数据类型判断过虑的类是(C )。

A.BufferedInputStream B.FileInputStream

C.DataInputStream D.FileReader

【解析】DataInputStream类在读入字节数据时,进行Java基本数据类型判断过虑。

8.使用哪一个类可以实现在文件的任一个位置读写一个记录(B )?

A.BufferedInputStream B.RandomAccessFile

C.FileWriter D.FileReader

【解析】只有RandomAccessFile才能实现在文件的任一个位置读写一个记录。

9.在通常情况下,下列哪个类的对象可以作为BufferedReader类构造方法的参数( C )?

A.PrintStream B.FileInputStream

C.InputStreamReader D.FileReader

【解析】InputStreamReader类的对象可以作为BufferedReader类构造方法的参数。

10.若文件是RandomAccessFile的实例f,并且其基本文件长度大于0,则下面的语句实现的功能是( B )。

f.seek(f.length()-1);

A.将文件指针指向文件的第一个字符后面

B.将文件指针指向文件的最后一个字符前面

C.将文件指针指向文件的最后一个字符后面

D.会导致seek()方法抛出一个IOException异常

【解析】通过调用f对象的length()方法,可以将文件指针指向文件的末尾,因此f.length()-1即指向文件的最后一个字符前面。

11.下列关于流类和File类的说法中错误的一项是(B )。

A.File类可以重命名文件B.File类可以修改文件内容

C.流类可以修改文件内容D.流类不可以新建目录

【解析】只有流类可以修改文件内容,而File类则不能。

12.若要删除一个文件,应该使用下列哪个类的实例(B )?

A.RandomAccessFile B.File

C.FileOutputStream D.FileReader

【解析】要删除文件以及查看文件属性等,应使用File类对象来实现。

13.下列哪一个是Java系统的标准输入流对象()?

A.System.out B.System.in C.System.exit D.System.err

【解析】System.in是Java系统的标准输入流对象,而System.out和System.err则是Java系统的

标准输出流和标准错误对象,System.exit则是System类的退出方法。

14.Java系统标准输出对象System.out使用的输出流是( A )。

A.PrintStream B.PrintWriter

C.DataOutputStream D.FileReader

【解析】System.out属性是PrintStream类型的对象。

二、填空题

1.Java的输入输出流包括字节流、字符流、文件流、对象流以及多线程之间通信的管道流。

2.凡是从外部设备流向中央处理器的数据流,称之为输入流;反之,称之为输出流。3.java.io包中的接口中,处理字节流的有DataInput 接口和DataOutput 接口。

4.所有的字节输入流都从InputStream 类继承,所有的字节输出流都从OutputSteam 类继承。

5.与用于读写字节流的InputStream类和OutputStream类相对应,Java还提供了用于读写Unicode字符的字符流Reader 类和Writer 类。

6.对一般的计算机系统,标准输入通常是键盘,标准输出通常是显示器。

7.Java系统事先定义好两个流对象,分别与系统的标准输入和标准输出相联系,它们是System.in 和System.out 。

8.System类的所有属性和方法都是Static类型的,即调用时需要以类名System为前缀。9.Java的标准输入System.in是InputStream 类的对象,当程序中需要从键盘读入数据的时候,只需调用System.in的read 方法即可。

10.执行System.in.read()方法将从键盘缓冲区读入一个字节的数据,然而返回的却是16比特的整形量,需要注意的是只有这个整形量的低位字节是真正输入的数据,其高位字节全部为0 。

11.System.in只能从键盘读取二进制的数据,而不能把这些比特信息转换为整数、字符、浮点数或字符串等复杂数据类型的量。

12.Java的标准输出System.out是PrintStream 类的对象。PrintStream 类是过滤输出流类FilterOutputStream的一个子类,其中定义了向屏幕输送不同类型数据的方法print() 和println() 。

13.在Java中,标准错误设备用System.err 表示。它属于PrintStream 类对象。

14.在计算机系统中,需要长期保留的数据是以文件的形式存放在磁盘、磁带等外存储设备中的。

15.目录是管理文件的特殊机制,同类文件保存在同一目录下可以简化文件的管理,提高工作效率。

16.Java语言的java.io包中的File 类是专门用来管理磁盘文件和目录的。调用File 类的方法则可以完成对文件或目录的常用管理操作,如创建文件或目录、删除文件或目录、查看文件的有关信息等。

17.File类也虽然在java.io包中,但它不是InputStream或者OutputStream的子类,因为它不负责数据的输入输出,而专门用来管理文件和目录。

18.如果希望从磁盘文件读取数据,或者将数据写入文件,还需要使用文件输入输出流类FileInputStream 和FileOutputStream 。

19.Java系统提供的FileInputStream类是用于读取文件中的字节数据的字节文件输入流类;FileOutputStream类是用于向文件写入字节数据的字节文件输出流。20.利用DataInputStream 类和DataOutputStream 类提供的成员方法可以方便地从文件中读写不同类型的数据。

21.Java中的RandomAccessFile 类提供了随机访问文件的功能,它继承了Object 类,用DataInput 和DataOutput 接口来实现。

第9章

一、选择题

1.下列说法中,正确的一项是( A )。

A.单处理机的计算机上,2个线程实际上不能并发执行

B.单处理机的计算机上,2个线程实际上能够并发执行

C.一个线程可以包含多个进程

D.一个进程只能包含一个线程

【解析】单处理机的计算机上通过一个极短的固定时间段或者在线程等待时,切换到另一个线程,这种调度过程时间极短,看上去像是并发执行。

2.下列说法中,错误的一项是( A )。

A.线程就是程序B.线程是一个程序的单个执行流

C.多线程是指一个程序的多个执行流D.多线程用于实现并发

【解析】线程是一个程序的单个执行流,而不是程序本身。而多线程作为实现并发的一个重要手段,是一个程序的多个执行流。

3.下列关于Thread类的线程控制方法的说法中错误的一项是( C )。

A.线程可以通过调用sleep()方法使比当前线程优先级低的线程运行

B.线程可以通过调用yield()方法使和当前线程优先级一样的线程运行

C.线程的sleep()方法调用结束后,该线程进入运行状态

D.若没有相同优先级的线程处于可运行状态,线程调用yield()方法时,当前线程将继续执行

【解析】线程的sleep()方法调用结束后,该线程进入就绪状态,而不是运行状态。

4.方法resume()负责恢复下列哪一个线程的执行( D )?

A.通过调用stop()方法而停止的线程B.通过调用sleep()方法而停止的线程C.通过调用wait()方法而停止的线程D.通过调用suspend()方法而停止的线程【解析】通过调用suspend()方法而停止的线程需要调用resume()恢复。

5.下面的哪一个关键字通常用来对对象加锁,从而使得对对象的访问是排他的( C )?

A.serialize B.transient C.synchronized D.static

【解析】synchronized用来对对象加锁,从而使得对对象的访问是排他的。

6.下列说法中,错误的一项是( A )。

A.线程一旦创建,则立即自动执行

B.线程创建后需要调用start()方法,将线程置于可运行状态

C.调用线程的start()方法后,线程也不一定立即执行

D.线程处于可运行状态,意味着它可以被调度

【解析】线程创建后需要调用start()方法,将线程置于可运行状态。

7.下列说法中,错误的一项是( A )。

A.Thread类中没有定义run()方法B.可以通过继承Thread类来创建线程

C.Runnable接口中定义了run()方法D.可以通过实现Runnable接口创建线程【解析】Thread类和Runnable接口中都定义了run()方法,而start()方法只有Thread类中进行了定义,而Runnable接口中没有定义。

8.Thread类定义在下列哪个包中( B )?

JAVA题目附答案

JA V A 题目 1. 若有以下代码: int x=5,y=6; If(x++>=y && x >++y) { } 则执行后,X和y的值分别是() A. 5 6 B. 6 6 C. 6 7 D. 7 7 2.字节型数据的取值范围是: A) -128 ~ 127 B) -28 -1 ~ 28 C) -255 ~ 256 D) 取决于具体的Java虚拟机 4. class Excise { public void method() { byte a = 127; int x = ++a; int y = a + 1; "x=" + x + " y=" + y); } } class TestExcise{ public static void main(String args[]) { Excise o = new Excise (); (); } } A) 输出:x=128 y=128 B) 输出:x=128 y=129 C) 输出:x=-128 y=128 D) 输出:x=-128 y=-127 5. 写出下面代码段的运行结果(A) boolean flag = false; if (flag = true) { "true"); } else { "false"); } A) true B) false C) 出错 D) 没有信息输出 6. 执行下面代码会输出什么内容() Boolean b1 = new Boolean(true); Boolean b2 = new Boolean(true); Object obj1 = (Object)b1; Object obj2 = (Object)b2; if (obj1 == obj2) if (obj2)) "a"); else "b");

AnjoyoJava04课后习题带答案

AnjoyoJava04课后习题 一、选择题: 1.给出下面程序代码: byte[] a1, a2[]; byte a3[][]; byte[][] a4; 下列数组操作语句中哪一个是不正确的?() A、a2 = a1 B、a2 = a3 C、a2 = a4 D、a3 = a4 2.关于数组,下列说法中不正确的是()。 A、数组是最简单的复合数据类型,是一系列数据的集合 B、数组元素可以是基本数据类型、对象或其他数组 C、定义数组时必须分配内存 D、一个数组中所有元素都必须具有相同的数据类型 3.设有下列数组定义语句: int a[] = {1, 2, 3}; 则对此语句的叙述错误的是()。 A、定义了一个名为a的一维数组 B、a数组有3个元素 C、a数组元素的下标为1~3 D、数组中每个元素的类型都是整数 4.执行语句:int[] x = new int[20];后,下面哪个说法是正确的?() A、x[19]为空 B、x[19]未定义 C、x[19]为0 D、x[0]为空 5.下面代码运行后的输出结果为()。 public class Test04_01 { public static void main(String[] args) { AB aa = new AB(); AB bb; bb = aa; System.out.println(bb.equals(aa)); } } class AB{ int x = 100; } A、true B、false C、编译错误 D、100 6.已知有定义:String s="I love",下面哪个表达式正确?() A、s += "you"; B、char c = s[1]; C、int len = s.length; D、String s = s.toLowerCase(); 二、填空题: 1.数组是一种________数据类型,在Java中,数组是作为________来处理的。数组是有 限元素的有序集合,数组中的元素具有相同的________,并可用统一的________和来唯一确定其元素。 2.在数组定义语句中,如果[]在数据类型和变量名之间时,[]之后定义的所有变量都是 ________类型,当[]在变量名之后时,只有[]之前的变量是________类型,之后没有[]的则不是数组类型。 3.数组初始化包括________初始化和________初始化两种方式。 4.Java语言提供了两种具有不同操作方式的字符串类:________类和________类。它们都

Java语言程序设计课后习题答案

Java语言程序设计(郑莉) 第二章习题答案 1.什么是对象、类,它们之间的联系 答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。 2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象!3)两者的关系:对象是类的具体实例.。 2.什么是面向对象的程序设计方法它有那些基本特征 答:面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。 它的特征:抽象,封装,继承,多态。 3(无用) 4.请解释类属性、实例属性及其区别。 答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。 5.请解释类方法、实例属性及其区别。 答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。 类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。 区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法; 6.类的访问控制符有哪几种具体含义及其区别。 答:类的访问控制符只有public(公共类)及无修饰符(默认类)两种。 区别:当使用public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。 7类成员的访问控制符有哪几种他们对类成员分别有哪些访问限制的作用 答:类成员的访问控制符有 public,private,protecte及无修饰符. public(公有的):用public修饰的成分表示公有的,也就是它可以被其他任何对象访问(前提是对累成员所在的类访问有访问权限). Private(保护的):类中限定为private的成员只能被这个类本身 访问,在类外不可见。 proteced(保护的)用该关键字修饰的成分是受保护的,只可以被同一类及其子类的实例对象访问。 无修饰符(默认的):public,private,protected这个三个限定符不是必须写的。如果不写,则表明是“friendly”,相应的成分可以被所在保重的各类访问。 8简述构造方法的特点答:构造方法主要有以下特点: (1)构造方法的方法名与类名相同; (2)构造方法没有返回类型(修饰符void也不能有);(3)构造方法通常被声明为公有的(public); (4)构造方法可以有任意多个参数; (5)构造方法的主要作用是完成对象的初始化工作; (6)构造方法不能在程序中显式的调用; (7)在生成一个对象时,系统会自动调用该类的构造方法为新生成的对象初始化。 9如果在类声明中声明了构造方法,系统是否还提供默认的构造方法 答: 用户在进行类声明时,如果没有声明任何构造方法,系统会赋给此类一个默认(无参)的构造方法。但是,只要用户声明了构造方法,即使没有声明无参的构造方法,系统也不会再赋默认的构造方法。 10:声明Patient类表示在门诊室中的病人。此类对象应包括name(astring)\sex(achar)、age(an integer)、weight(a float0、allergies(a boolean). 声明存取及修改方法。在一个单独的累中,声明测试方法,并生成两个patient的例子: Atient april=new Patient(); (“zhangli”) (‘f’);; (330; ; (true); 那么:”+()); ”+()); ”+()); (“weught: ”+());\ ”+()); 声明并测试toString()方法显示一个病人的aga、sex、name及allergies属性。 答: public class Patient { private String name; private char sex; private int age; private float weight; private boolean allergies; public void setname(String a) { name=a; } public void setsex(char b) { sex=b; }

《JAVA语言程序设计》期末考试试题及答案

《JAVA语言程序设计》期末考试试题及答案1 (应考必备题库) 一、单选择题 1、编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B )。 A. java B. .class C. html D. .exe 2、设x = 1 , y = 2 , z = 3,则表达式y + = z --------- /+ + x 的值是( A )。 A. 3 B. 3. 5 C. 4 D. 5 3、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected 4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method() C. final void method( ) D. abstract void method() 二、填空题 1、开发与运行Java程序需要经过的三个主要步骤为 _编辑源程序_________ 、 _编译生成字节码 ______ 和_______ 解释运行字节码 ________ 。 2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占 用____ 2—字节内存空间,这样,无论是中文字符还是英文字符,都是占 用____ 2 ___ 字节内存空间。 3、设x = 2,则表达式(x + + ) /3的值是 __________ 0 ____ 。 4、若x = 5,y = 10,贝Ux < y和x >= y的逻辑值分别为true ___ 和___ fals」。 5、__ 抽象(abstract)-方法是一种仅有方法头,没有具体方法体和操作实现的 方法,该方法必须在抽象类之中定义。最终(fin al)_方法是不能被当前类的子类重新定义的方法。 6、创建一个名为MyPackage的包的语句是package MyPackage ; _, 该语句应该放在程序的位置为:—应该在程序第一句___________________ 。

java100道选择题含答案

1. 下列不可作为java语言标识符的是(D) A) a1 B) $1 C) _1 D) 11 2. 有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A) A) a1.java B) a1.class C) a1 D) 都对 3. 整型数据类型中,需要内存空间最少的是(D) A) short B) long C) int D) byte 4. Java 类可以作为(C) A) 类型定义机制 B) 数据封装机制 C) 类型定义机制和数据封装机制 D) 上述都不对 5. 在创建对象时必须(C) A) 先声明对象,然后才能使用对象 B) 先声明对象,为对象分配内存空间,然后才能使用对象 C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D) 上述说法都对 6. 在调用方法时,若要使方法改变实参的值,可以(B) A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对 7. Java中(C) A) 一个子类可以有多个父类,一个父类也可以有多个子类 B) 一个子类可以有多个父类,但一个父类只可以有一个子类 C) 一个子类可以有一个父类,但一个父类可以有多个子类 D) 上述说法都不对 8. Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B) A) 安全性B) 多线性C) 跨平台D) 可移植 9. Character流与Byte流的区别是(C) A) 每次读入的字节数不同B) 前者带有缓冲,后者没有 C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用 10. 以下声明合法的是( D ) A、default String s; B、public final static native int w( )

Java程序员认证考试题库

第一部分 基础知识练习 目标 本章对应于《学生指南》各章的内容分别提供了练习题集,包括: ●第一章Java入门 ●第二章数据类型和运算符 ●第三章流程控制与数组 ●第四章封装 ●第五章继承 ●第六章抽象类与接口 ●第七章多态 ●第八章异常 ●第九章多线程机制 ●第十章输入输出流 ●第十一章使用泛型和集合框架 ●第十二章基于Swing的图形用户界面(GUI)设计 ●第十三章Java事件驱动编程

第一章练习题(Java入门) (C)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 .http C.j ava. io D.java.sql

6.使用JDK工具生成的Java文档的文件格式是? A.XML格式 B.自定义格式 c.二进制格式 D.HTML格式 (AC)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程序的运行结果与操作系统无关 (B)9.以下关于Applet和Java程序之间关系的叙述,哪项错误? A.-个Applet就是一段Java程序 B.Applet是一种特殊的Java程序,它需要运行在Web服务器上C.Applet是一种特殊的Java程序,它需要运行在Web浏览器上D.Applet是一种Java SE平台的应用程序 (AD)10.以下关于Java HotSpot的描述,哪两项错误?(选两项)A.Java HotSpot是一种热编译技术,在编译Java源程序时会被使用B.Java HotSpot是一种热编译技术,在运行Java代码时会被使用C.Java HotSpot是一种热编译技术,它只对程序的部分字节码进行优化D.Java HotSpot是一种热编译技术,它会对程序的全部字节码进行优化

JAVA题目附答案

JA V A 题目 1.若有以下代码: int x=5,y=6; If(x++>=y && x >++y) { } 则执行后,X和y的值分别是() A. 5 6 B. 6 6 C. 6 7 D. 7 7 2.字节型数据的取值围是: A) -128 ~ 127 B) -28 -1 ~ 28 C) -255 ~ 256 D) 取决于具体的Java虚拟机 4. class Excise { public void method() { byte a = 127; int x = ++a; int y = a + 1; System.out.println("x=" + x + " y=" + y); } } class TestExcise{ public static void main(String args[]) { Excise o = new Excise (); o.method(); } } A) 输出:x=128 y=128 B) 输出:x=128 y=129 C) 输出:x=-128 y=128 D) 输出:x=-128 y=-127 5.写出下面代码段的运行结果(A) boolean flag = false; if (flag = true) { System.out.println("true"); } else { System.out.println("false"); } A) true B) false C) 出错 D) 没有信息输出 6.执行下面代码会输出什么容?() Boolean b1 = new Boolean(true); Boolean b2 = new Boolean(true); Object obj1 = (Object)b1; Object obj2 = (Object)b2; if (obj1 == obj2) if (obj1.equals(obj2)) System.out.println("a"); else System.out.println("b");

Java基础入门课后习题及答案

《Java基础入门》课后习题 第1章Java开发入门 一、填空题 1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。 2、Java程序的运行环境简称之为JRE_____。 3、编译Java程序需要使用_javac_____命令。 4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的bin______目录下。 5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量则用 来保存保存Java虚拟机要运行的“.class”文件路径。 二、选择题 1、以下选项中,哪些属于JDK工具?(多选)ABCD A、Java编译器 B、Java运行工具 C、Java文档生成工具 D、Java打包工具 2、Java属于以下哪种语言?C A、机器语言 B、汇编语言 C、高级语言 D、以上都不对 3、下面哪种类型的文件可以在Java虚拟机中运行?D A、.java B、.jre C、.exe D、.class 4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?B A、Java文档制作工具 B、Java解释器 C、Java编译器 D、Java启动器 5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java 命令,需要将环境变量path设置为以下哪个选项?B A.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d:\jre;

java习题及答案第8章 习题参考答案

第8章图形用户界面编程 8.1 什么是组件?什么是容器?并说明各自的作用。 答:从实现角度来看,组件(Component)是构成GUI 的基本要素,作用是通过对不同事件的响应来完成和用户的交互或组件之间的交互;容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等,作用就是放置组件并控制组件位置。 8.2 叙述AWT和Swing组件的关系,指出Swing组件的优点。 答:Swing是在AWT基础上扩展而来的,提供了非常丰富的组件,远远多于AWT,并且引入了新的概念和性能,这使得基于Swing开发GUI应用程序比直接使用AWT开发更为灵活、方便、效率高,而且能设计出更优美的、感受更好的GUI。Swing是由javax.swing包提供的,主要包括两种类型的组件:顶层容器和轻量级组件。它们都以“J”开头。 8.3 总结JFrame的使用要点,并说明如何实现窗体的正常退出。 答:JFrame类包含很多设置窗体的方法,可以用setTitle(String title)方法设置窗体标题,用setBounds(int x,int y,int width,int height)方法设置窗体显示的位置及大小,用setVisable(Boolean b)方法设置可见与否(默认不可见)。此外,向JFrame添加组件有两种方式:调用getContentPane()方法获得内容面板,而后向其中添加组件,或者创建一个中间容器并将组件添加其中,而后用setContentPane()方法把该中间容器设置为JFrame的内容面板。由于JFrame对象的关闭按钮的默认动作只是将窗体隐藏,所以为了正确关闭窗体,应通过setDefaultCloseOperation(int operation)方法设置关闭按钮的动作。 8.4 总结常用Swing组件使用特点。 答:常用Swing组件使用时,首先要创建对应组件的对象,并放置在容器中,一般来说可用setText(String t)设置其的文本信息,setFont(Font font):设置文本的字体及大小,对于列表类组件还可以用AddItem()等方法加入选项,用getSelectedIndices()以int[]形式获得被选中的所有选项的索引值,具体使用方法可参照例8.6。 8.5 查阅资料,简述三个菜单类组件之间的关系,并编写一个带有文件菜单的GUI程序。 答:菜单相关的类主要有菜单栏类JMenuBar、菜单类JMenu和菜单项类MenuItem,此外,还有单选菜单项类JRadioButtonMenuItem和复选菜单项类JCheckBoxMenuItem以及弹出式菜单类JPopupMenu等。前三者的关系是菜单放置在菜单栏上,菜单由若干个菜单项组成。 提示:带有文件菜单的GUI程序核心代码如下:

全国计算机二级考试Java第6章练习题

全国计算机二级考试Java第6章练习题:异常处理第六章异常处理 1下列对异常包含内容正确的说法是_________. (C) A) 程序中的语法错B)程序在编译或运行中发生的异常事件 C) 程序中预先定义好的异常事件D)程序在编译时发生的错误 2 如程序段中有多个catch语句,程序会__________. (C) A) 对每个catch语句都执行一次 B) 对每个符合条件的catch语句都执行一次 C) 找到匹配的异常类型的catch执行后不再执行其他catch语句 D) 找到匹配的异常类型的catch 执行后再执行其他catch语句 3 以下自定义的异常类的父类是____________. (D) A) Erroe B)AWTError C)VirtualMachineError D)Exception及其子类 4 当需要将异常传递给调用方法时,用___________. (A) A)声明异常B)运行异常 C)捕获异常D)抛出异常 5 对于catch语句的正确排列是___________ . (A) A)父类在先,子类在后B)子类在后,父类在后 C)有继承的异常不能在同一个try段内D)排列无关 6 在下列程序的下划线处,填入适当语句使程序能正确执行: Import java.io.*; Public class Exceptionone { Static void situate(int sit) { System.out.println(“---情况”----+sit+”----”);

Try { If(sit==0) { System.out.println(“无异常捕获”); Return; } Else if (sit==1) { Int i=0; Int j=6/I; } Else if (sit==2) { Int iArray[]=new int [4]; iArray[10]=3; } }__________________________________________ System.out.println(“Catch”+e); } Catch(ArrayIndexOutOfBoundsException e) { System.out.println(“Catch”+e);} Catch(Exception e) {system.out.println(“不会执行”);} Finally {system.out.println(“在situate 中”); }

java期末选择试题及答案大全

一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。 1.下列语句序列执行后,k 的值是( B )。 int m=3, n=6, k=0; while( (m++) < ( -- n) ) ++k; A) 0 B) 1 C) 2 D) 3 2.设 i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( B )。 A) i = i + 2 B) a[0] = 7; C) i++ - --j; D) a(0) = 66; 3.Java语言的类间的继承关系是( B )。 A) 多重的 B) 单重的 C) 线程的 D) 不能继承 4.设有定义 int i = 6 ;,则执行以下语句后,i 的值为( C )。 i += i - 1; A) 10 B) 121 C) 11 D) 100 5.下列选项中,用于在定义子类时声明父类名的关键字是( C )。 A)interface B) package C) extends D) class 6.若已定义 byte[ ] x= {11,22,33,-66} ; 其中0≤k≤3,则对x数组元素错误的引用是( C )。 A) x[5-3] B) x[k] C) x[k+5] D) x[0] 7.下列语句序列执行后,ch1 的值是( B )。 char ch1='A',ch2='W'; if(ch1 + 2 < ch2 ) ++ch1; A) 'A' B) 'B' C) 'C' D) B 8.下列语句序列执行后,i 的值是( D )。 int i=8, j=16; if( i-1 > j ) i--; else j--; A) 15 B) 16 C) 7 D) 8 9.下列语句序列执行后,k 的值是( C )。 int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A) 31 B) 32 C) 2 D) 33 10.下面语句执行后,i 的值是( B )。 for( int i=0, j=1; j < 5; j+=3 ) i=i+j; A) 4 B) 5 C) 6 D) 7 11.设有定义 float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是( B )。 A) x > y || x > z B) x != y C) z > ( y + x ) D) x < y & ! ( x < z ) 12.下列语句序列执行后,i的值是( D )。 int i=16; do { i/=2; } while( i > 3 ); A) 16 B) 8 C) 4 D) 2 13.以下由 for 语句构成的循环执行的次数是( B )。 for ( int i = 0; true ; i++) ; A) 有语法错,不能执行 B) 无限次 C) 执行1次 D) 一次也不执行 14.定义类头时能使用的修饰符是(C )。 A) private B) static C) abstract D) protected 15.设int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值, 正确的switch语句是D )。 A) switch (x + y) B) switch ( ch + 1 ) { ...... } { ...... } C) switch ch D) switch ( a + b );

数据结构Java版第五章习题

第五章习题 数组、矩阵 (按照自己的情况选作部分习题,不要抄袭) 一、单项选择题 1. 二维数组M 的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i 的范 围从0到8,列下标j 的范围从1到10,则存放M 至少需要(1)个字节;M 的第8列和第5行共占(2)个字节;若M 按行优先方式存储,元素M[8][5]的起始地址与当M 按列优先方式存储时的(3)元素的起始地址一致。() (1) A.90 B.180 C.240 D.540 (2) A.108 B.114 C.54 D.60 (3) A.M[8][5] B.M[3][10] C.M[5][8] D.M[0][9] 2. 二维数组M 的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i 的范 围从0到4,列下标j 的范围从0到5,M 按行存储时元素M[3][5]的起始地址与M 按列存储时元素(1)的起始地址相同。() A.m[2][4] B.M[3][4] C.M[3][5] D.M[4][4] 3. 数组A 中,每个元素A 的存储占3个单元,行下标i 从1到8,列下标j 从1到10,从首地址SA 开始连续存放在存储器内,存放该数组至少需要的单元个数是(1),若该数组按行存放时,元素A[8][5]的起始地址是(2),若该数组按列存放时,元素A[8][5]的起始地址是(3)。 (1) A. 80 B.100 C.240 D.270 (2) A.SA+141 B.SA+144 C.SA+222 D.SA+225 (3) A.SA+141 B.SA+180 C.SA+222 D.SA+225 4. 稀疏矩阵一般的压缩存储方法有两种,即() A.二维数组和三维数组 B. 三元组和散列 C.三元组和十字链表 D. 散列和十字链表 5.若采用三元组压缩技术存储稀疏矩阵,只要把每个元素的行下标和列下标互换,就完成了对该矩阵的转置运算,这种观点() A.正确 B.错误 6.假设按行优先存储整数数组A[9][3][5][8]时,第一个元素的字节地址时100,每个整数占4个字节。问下列元素的存储地址是什么。 (1) a 0000 (2)a 1111 (3)a 3125 (4)a 8247 7.设有三对角矩阵A n×n ,将其三条对角线上的元素存于数组B[3][n]中,使得元素B[u][v]=a ij ,试推倒出从(i,j )到 (u,v)的下标变换公式。 8.假设一个准对角矩阵: a 11 a 12 a 21 a 22 a 33 a 34 a 43 a 44

java程序设计第1-4章练习题参考答案 (1)

一、选择题 1.下面供选字符序列中,不属于 ...Java语言关键字的是( A ) A.goto B.null C.false D.native 2.以下是关于Java语言关键字的叙述,其中正确的是( C ) A.关键字可以用来描述类的成员类型,但是不能描述普通变量 B.关键字由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成 C.关键字不可以用作变量、方法、类或标号的标识符 D.break和main都是Java语言的关键字 3.下述字符组合不能作为Java程序标识符的是(D) A.Aa12 B.X C.y D.5x 4.在下述字符串中,不属于 ...Java语言关键字的是( C ) A.float B.new C.java D.return 5.下列字符组合不能作为Java整型常量的是( A ) A.078 B.0x3ACB C.5000 D.0x3ABC 6.设有如下程序: public class Test { public static void main(String[] args) { String foo=args[1];

String bar=args[2]; String baz=args[3]; System.out.println("baz= "+baz); } } 下述哪一行命令可以使得执行该程序的输出为baz= 2 ( C ) A) java Test 2222 B) java Test 1 2 3 4 C) java Test 4 2 4 2 D) java Test 4 3 2 1 7.在Java语言中,int类型数据的长度是( C ) A.1个字节 B.2个字节 C.4个字节 D.8个字节 8. 用Java虚拟机执行类名为Hello的应用程序的正确命令是( D )。 A) java Hello.class B) Hello.class C) java Hello.java D) java Hello 9.执行以下代码,输出结果是( B ) int x=5,y=7,u=9,v=6; System.out.println(x>y ? x+2:u>v ? u-3:v+2); A.8 B.6 C.7 D.true 10.下列修饰符中与访问控制无关的是(C)。 A) public B) protected C) final D) private

java考试题库第五章

5-1 下列关于容器的描述中,错误的是D A.容器是由若干个组建和容器组成的 B.容器是对图形界面中界面元素的一种管理 C.容器是一种对指定宽和高的矩形范围 D.容器都是可以独立的窗口 5-2 下列界面元素中,不是容器的是A A.List B.Frame C.Dialog D.Panel 5-3 下列关于实现图形用户界面的描述中,错误的是D A.放在容器中的组件首先要定义,接着要初始化 B.放在容器中的多个组件是要进行布局的,默认的布局策略是FlowLayout C.容器中所有组件都是事件组件,都可以产生事件对象 D.事件处理是忧监听者定义的方法来实现的 5-4 下列关于组件类的描述中,错误的是A A.组件类中包含了文本组件类(TextComponent)和菜单组件类(MenuComponent) B.标签(Label)和按钮(Button)是组件类(Component)的子类 C.面板(Panel)和窗口(Window)是容器类(Container)的子类 D.文本框(TextField)和文本区(TextArea)是文本组件类(TextComponent)的子类 5-5 在对下列语句的解释中,错误的是C but.addActionListener(this); A.but是某种事件对象,如按钮事件对象 B.t his表示当前容器 C.A ctionListener是动作事件的监听者 D.该语句的功能是将but对象注册为this对象的监听者 5-6 所有事件类的父类是C A.ActionEvent B.AwtEvent C.KeyEvent D.MouseEvent 5-7 所有GUI标准组件类的父类是C A.Buttom B.List C.Component D.Container 5-8 下列各种布局管理器中Window类、Dialog类和Frame类的默认布局是C A.FlowLayout B.CardLayout C.BorderLayout D.GridLayout 5-9 在下列各种容器中,最简单的无边框的又不能移动和缩放的只能包含在另一种容器中的容器是D A.Window B.Dialog C.Frame D.Panel 5-10 下列关于菜单和对话框的描述中,错误的是C A.Frame容器是可以容纳菜单组件的容器 B.菜单条中可包含若干个菜单,菜单中又可包含若干菜单项,菜单项中还可包含菜单子项 C.对话框与Frame一样都可作为程序的最外层容器 D.对话框内不含有菜单条,它由Frame弹出

java课后习题及答案

第一章JA V A语言概论 一、选择题 1. 下列不属于java语言特点的是:B A. java能检查程序在变异和运行时的错误 B. java 能运行虚拟机实现跨平台 C. java 自己操纵内存减少了内存出错的可能性 D. java 还实现了真数组,避免了覆盖数据的可能 2. java语言的执行模式是:C A. 全编译型 B. 全解释型 C. 半编译和半解释型 D. 同脚本语言的解释模式 3. 下列关于虚拟机说法错误的是:B A. 虚拟机可以用软件实现 B. 虚拟机部可以用硬件实现 C. 字节码是虚拟机的机器码 D. 虚拟机把代码程序与各操作系统和硬件分开 4. java语言是1995年由()公司发布的A A. Sun B. Microsoft C. Borland D. Fox Software 5. 下列不是虚拟机执行过程特点的是A A. 双线程 B. 多线程 C. 动态链接 D. 异常处理 6. java以JVM为基础,最下层是移植接口,由适配器和()组成B A. 网卡 B. Java os C. Java基本类 D. Java 应用程序和applet小程序 7. java程序的执行过程中用到一套JDK工具,其中javac.exe指A A. java语言编译器 B. java字节码解释器 C. java文档生成器 D. java类分解器 8. java的API结构中,不属于类库主要包括的核心包的是C A. java包 B. javax C. javadoc包 D. org扩展包 9. 每个java的编译单元可包含多个类或界面,但是每个编译单元最多只能有()类或者界面是公共的A

Java练习题及答案

Java 练习题答案 一、填空 1、对象的状态和行为是对象的主要属性;前者对应类的变 量,行为又称为对象的操作,对应着类的方法。类的定义包括变量声明和方法声明。 2、要嵌入在HTML文件中运行的程序是Java Applet (Java Application 、Java Applet )。 3、安装JDK后,Java 开发工具在Bin 目录。 4、声明接口的保留字是interface 。 5、类的声明“ public class Test extends Applet implements Runable{} ” 中,定义的类名是Test ,其父类是Applet ;实现了Runable 接口。这个类的源程序必须保存为Test.java (写出包括扩展名的文件名)。 6、一个完整的Java 应用程序由一个或多个类组成;其中Java Application 至少有一个主类,这个类中包含一个名为main 的方法 7、JDK下解释执行Java 的程序是java.exe 。 8、语句如下: int[] c1=int[10]; int[] c2={1,2,3,4,5,6,7,8,9,0}; 数组c1 中的元素有10 个;c2 中的元素有10 个; 已初始化赋 值的是c2 (c1 c2 )。 9、执行完下列程序后i 的值为5

int i=0; while(i<5) { i++; 10、运行下列程序段后,结果 c 的取值为120 int a = 100, b = 20,c; char oper ='+'; switch(oper) { case '+': c = a+b; break; case '-': c = a - b; break; default: c = a * b; break; } 11、为了能使用Java 中已提供的类,我们需要用import 语句来引入所需要的类。语句import java.io.* ;中引入了java.io 包的所有类。 二、选择题 1、属于访问控制的关键字是( D )。 A、static B 、final C、abstract D 、private 2、对成员的访问控制保护最强的是(C ) A、public 、 B、缺省、 C private D protected 3、可用做Java 标识符的是( B )。 A、try B_isYour C 2time D my name

《Java基础入门》课后章节习题及答案(完整版)

《Java基础入门》课后章节习题及答案(完整版)《Java基础入门》课后习题 第1章Java开发入门 一、填空题 1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。 2、Java程序的运行环境简称之为JRE_____。 3、编译Java程序需要使用_javac_____命令。 4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的bin______目录下。 5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量则用 来保存保存Java虚拟机要运行的“.class”文件路径。 二、选择题 1、以下选项中,哪些属于JDK工具?(多选)ABCD A、Java编译器 B、Java运行工具 C、Java文档生成工具 D、Java打包工具 2、Java属于以下哪种语言?C A、机器语言 B、汇编语言

C、高级语言 D、以上都不对 3、下面哪种类型的文件可以在Java虚拟机中运行?D A、.java B、.jre C、.exe D、.class 4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?B A、Java文档制作工具 B、Java解释器 C、Java编译器 D、Java启动器 5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java 命令,需要将环境变量path设置为以下哪个选项?B A.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d:\jre; 三、问答题 1、简述Java的特点。 面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、简述JRE与JDK的区别。

《Java编程基础知识点汇总及习题集》--答案

目录 第一章 Java入门 (2) 第二章 Java基础 (5) 第三章条件转移 (16) 第四章循环语句 (22) 第五章方法 (28) 第六章数组 (35) 第七章面向对象 (44) 第八章异常 (65)

第一章Java入门 知识点汇总 1、JAVA 三大体系 ?Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个平台中最核心 的部分,包含Java最核心的类库。 ?JavaEE:(J2EE,Java 2 Platform, Enterprise Edition,企业版),开发、装 配、部署企业级应用,包含Servlet、JSP、 JavaBean、JDBC、EJB、Web Service等。 ?Java ME:(J2ME,Java 2 Platform Micro Edition,微型版),用于小型电子设备 上的软件开发。 2、JDK,JRE,JVM的作用及关系 作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 ?path环境变量:存放可执行文件的存 放路径,路径之间用逗号隔开 ?classpath环境变量:类的运行路径, JVM在运行时通过classpath加载需要 的类 4、重点掌握两个程序 ?javac.exe:Java编译器工具,可以将编 写好的Java文件(.java)编译成Java 字节码文件(.class); ?java.exe:Java运行工具,启动Java虚 拟机进程,运行编译器生成的字节码 文件(.class) 5、一切程序运行的入口 public static void main(String args []){ System.out.println(“Hello World!”); } 课堂笔记

相关文档
相关文档 最新文档