1第1章Java入门一、选择题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)。classA{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个类,每个类编译后都会2生成1个字节码文件,因此编译后会生成以这3个类名命名的字节码文件。11.编译Java程序时,用于指定生成class文件位置的选项是(A)。A.-dB.-gC.-verboseD.-nowarn12.下列标识符(名字)命名原则中,正确的是(C)。A.类名的首字母小写B.接口名的首字母小写C.常量全部大写D.变量名和方法名的首字母大写13.下面哪种注释方法能够支持javadoc命令?(C)A.//B./*...*/C./**...*/D./**...**/14.下面哪些选项是正确的main方法说明?(D)A.voidmain()B.privatestaticvoidmain(Stringargs[])C.publicmain(Stringargs[])D.publicstaticvoidmain(Stringargs[])二、填空题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.*语句。三、判断题1.Java语言具有较好的安全性和可移植性及与平台无关等特性。(√)2.Java语言的源程序不是编译型的,而是编译解释型的。(√)3.JavaApplication程序中,必有一个主方法main(),该方法有没有参数都可以。(√)4.java.util.Scanner(System.in)可以接收用户从键盘输入的简单数据。(√)5.Java程序中不区分大小写字母。(×)6.机器不能直接识别字节码文件,它要经过JVM中的解释器边解释边执行。(√)7.System类中的println()方法分行显示信息,而print()方法不分行显示信息。(√)8.当前路径的标识是“.”。(√)9.java命令不区分大小写,而javac命令区分大小写。(×)10.printf()和format()方法使用指定格式字符串和参数,将格式化字符串写入到PrintStream类型的输出流(System.out对象)中。(√)11.在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名.class。(×)3第2章标识符与简单数据类型一、选择题1.下列(D)是合法的标识符?(A)12class(B)void(C)-5(D)_blank2.下列(B)不是Java中的保留字?(A)if(B)sizeof(C)private(D)null3.下列(C)不是合法的标识符?(A)$million(B)$_million(C)2$_million(D)$2_million4.下列选项中,(B)不属于Java语言的基本数据类型?(A)整数型(B)数组(C)浮点型(D)字符型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.0L10.下列语句中不正确的一个是(B)。(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)-1(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)trueB)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代表单精度浮点型4(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)同一优先级的运算符在表达式中都是按照从左到右