1第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)java.lang【解析】凡是以java开头的包都是Java核心包,以javax开头的包则属于Java扩展包。8.下列描述中,不正确的是(A)。(A)不支持多线程(B)一个Java源文件不允许有多个公共类(C)Java通过接口支持多重继承(D)Java程序分为Application和Applet两类【解析】Java是支持多线程的语言。9.阅读下列代码,选出该代码段正确的文件名(C)。2classA{voidmethod1(){System.out.println(Method1inclassA);}}publicclassB{voidmethod2(){System.out.println(Method2inclassB);}publicstaticvoidmain(String[]args){System.out.println(main()inclassB);}}(A)A.java(B)A.class(C)B.java(D)B.class【解析】Java源文件名必须和公共类的名字完全一样,源文件的扩展名为.java。10.编译下面源程序会得到哪些文件(D)?classA1{}classA2{}publicclassB{publicstaticvoidmain(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.每个JavaApplication程序可以包括许多方法,但是必须有且只能有一个main()方法,统一格式为publicstaticvoidmain(String[]args),它是程序执行的入口。5.JVM把字节码程序与各种不同的操作系统和硬件分开,使得Java程序独立于平台。6.在Java程序中,能在程序。7.Java源程序文件和字节码文件的扩展名分别为.java和.class。8.如果在Java程序中需要使用java.utile包中的所有类,则应该在程序开始处加上importjava.utitle.*语句。3第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)charc,d=‘a’;(C)floate=0.0d;(D)doublec=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)。4(A)floatf=1.1f;(B)byteb=128;(C)doubled=1.1/0.0;(D)charc=(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/01)的值为(B)。(A)true(B)false(C)0(D)运行时抛出异常【解析】由于(12==0)的值为false,因此整个表达式发生短路运算,即(1/01)就没有参与运算,整个表达式的值为false。16.设有类型定义shorti=32;longj=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)doubled=Double.MAX_VALUE;【解析】(A)中_*5不是合法的标识符,(B)中12345超出byte范围,(C)中不能将long类型的常量赋值给int型的变量。20.下列关于运算符优先级的说法中,不正确的一个是(C)(A)运算符按照优先级顺序表进行运算(B)同一优先级的运算符在表达式中都是按照从左到右的顺序进行运算的(C)同一优先级的运算符在表达式中都是按照从右到左的顺序进行运算的(D)括号可以改变运算的优先次序5【解析】同一优先级的运算符在表达式中都是按照从左到右的顺序进行运算的。二、填空题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的语句是finaliLong=100000000L。9.Java语言中的数据类型转换包括自动转换和强制转换两种。10.Java中的字符采用的是16位的Unicode编码。11.数据类型中存储空间均为64位的两种数据类型是long和double。12.表达式9*4/-5%5的值为-2。(十进制表示)13.表达式5&2的值为0。(十进制表示)14.表达式424的值为672。(十进制表示)15.表达式110100113的值为11010。(二进制表示)16.表达式7|3的值为7。(十进制表示)17.表达式10^2的值为8。(十