第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;