【解析】同一优先级的运算符在表达式中都是按照从左到右的顺序进行运算的。 二、填空题
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类型变量且它们均已被赋值, 5 则下列语句中正确的是( 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++ 【解析】执行1次循环体后,y的值为20,x值为11,然后执行while,此时x++的值为11,y—的值为20,因此x++ switch(m){ case 0: System.out.println(\ case 1: System.out.println(\ case 2: System.out.println(\ case 3: System.out.println(\ default:System.out.println(\ } 当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 子句相对应。 6 9.在switch语句中,完成一个case语句块后,若没有通过break语句跳出switch语句,则会继续执行后面的 case 语句块。 10.在for循环语句中可以声明变量,其作用域是 for循环体 。 第4章 一、选择题 1.下列哪种类成员修饰符修饰的变量只能在本类中被访问?( D ) (A)protected (B)public (C)default (D)private 【解析】只有私有访问权限修饰符才能限制变量只能在本类中被访问。 2.在Java语言中,哪一个包中的类是自动导入的?( A ) A)java.lang B)java.awt C)java.io D)java.applet 【解析】只有java.lang包中的类能够被自动导入。 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成员 【解析】内部类也可以有自己的成员方法和变量。 7 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 。 8