java单选题库 博学谷 下载本文

一、单选题

1.Java属于以下哪种语言?( )

A. 机器语言 B. 汇编语言 C. 高级语言 D. 以上都不对 答案:C

解析:Java是一门高级编程语言 考察点:第一章 Java开发入门 题目难度:★☆☆☆ 容易

2.下列目录中,哪一个是用来存放JDK核心源代码的? A. lib目录 B. src目录 C. jre目录 D. include目录 答案:B

解析:JDK核心源代码存放在src文件夹下 考察点:第一章 Java开发入门 题目难度:★☆☆☆ 容易

3.下面命令中,可以用来正确执行HelloWorld案例的是( ) A. java HelloWorld B. java HelloWorld.java C. javac HelloWorld D. javac HelloWorld.java 答案:A

解析:java命令负责运行编译后的.class文件,不需要文件后缀名。 考察点:第一章 Java开发入门 题目难度:★☆☆☆ 容易

4.下面关于配置path环境变量作用的说法中,正确的是( ) A. 在任意目录可以使用javac和java命令 B. 在任意目录下可以使用class文件 C. 在任意目录可以使用记事本

D. 在任意目录下可以使用扫雷游戏 答案:A

解析:path环境变量的作用是在任意目录下都可以使用javac和java命令。 考察点:第一章 Java开发入门 题目难度:★☆☆☆ 容易

5.下列选项中,可以正确配置classpath的命令是( ) A. set classpath =C:\\Program Files\\Java\\jdk1.7.0_15\\bin B. set classpath : C:\\Program Files\\Java\\jdk1.7.0_15\\bin C. classpath set =C:\\Program Files\\Java\\jdk1.7.0_15\\bin D. classpath set : C:\\Program Files\\Java\\jdk1.7.0_15\\bin 答案:A

解析:配置classpath的命令是set classpath=xxx,并且等于号两边不要有空格。 考察点:第一章 Java开发入门 题目难度:★☆☆☆ 容易

6.下面选项中,完全面向对象的编程语言是?( ) A. C

B. COBOL C. JAVA

D. FORTRAN 答案:C

解析:Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯粹的面向对象程序设计语言 考察点:第一章 Java开发入门 题目难度:★☆☆☆ 容易 7.

是打发 A. 1 B. 2 C. 3 D. 4 答案:A 解析: 放到

考察点:第一章 Java开发入门 题目难度:★★☆☆ 一般

8.下列关于Java特点的描述中,错误的是? A. Java语言不支持指针

B. Java具有自动垃圾回收的机制

C. Java只能运行在Window和Linux平台 D. Java允许多个线程同时执行 答案:C

解析:JAVA是一门面向对象的语言,它没有指针的概念,并提供了自动垃圾回收的机制,具有跨平台,多线程等特点。 考察点:第一章 Java开发入门 题目难度:★★☆☆ 一般

9.下列关于JDK、JRE和JVM关系的描述中,正确的是 A. JDK中包含了JRE,JVM中包含了JRE。 B. JRE中包含了JDK,JDK中包含了JVM。 C. JRE中包含了JDK,JVM中包含了JRE。 D. JDK中包含了JRE,JRE中包含了JVM。 答案:D

解析:JVM是Java虚拟机,JRE是Java程序的运行时环境,JDK是Java程序的编译环境,包含范围递增。所以从小到大一次是 JVM—JRE—JDK。 考察点:第一章 Java开发入门 题目难度:★★☆☆ 一般

10.下列关于JDK安装的说法中,错误的是? A. Oracle公司提供了多种操作系统的JDK

B. 开发工具中已经包含了一个JRE,因此可以选择不再安装公共的JRE环境 C. 在安装JDK过程中,源代码指的是Java公共的API类

D. 开发工具是JDK中的核心功能模块,因此无论是否进行Java程序开发都必须安装 答案:D

解析:只有开发Java程序时,才需要安装开发工具,如果只是运行Java程序,安装JRE即可。

考察点:第一章 Java开发入门 题目难度:★★☆☆ 一般

11.下面关于classpath的说法中,错误的是()。

A. classpath和path环境变量的查看与配置的方式完全相同。

B. 为了让Java虚拟机能找到所需的class文件,就需要对classpath环境变量进行设置。 C. 从JDK5.0开始,如果classpath环境变量没有进行设置,Java虚拟机会自动将其设置为“.”,也就是当前目录。

D. 在命令行窗口中配置了classpath后,重新打开新命令行窗口依然生效 答案:D

解析:在命令行窗口设置的classpath只对当前窗口有效 考察点:第一章 Java开发入门 题目难度:★☆☆☆ 容易

12.下列关于JDK的说法中,错误的是? A. JDK是Java开发工具包的简称

B. JDK包括Java编译器、Java文档生成工具、Java打包工具等 C. 安装JDK后,还需要单独安装JRE D. JDK是整个Java的核心 答案:C 解析:SUN公司提供了一套Java开发环境,简称JDK(Java Development Kit),它是整个Java的核心,其中包括Java编译器、Java运行工具、Java文档生成工具、Java打包工具等。JDK工具中自带了一个JRE工具,也就是说开发环境中包含运行环境,这样一来,开发人员只需要在计算机上安装JDK即可,不需要专门安装JRE工具了。

考察点:第一章 Java开发入门 题目难度:★★☆☆ 一般

13.下列目录中,哪一个是用来存放JDK可执行程序的。( ) A. db目录 B. jre目录 C. lib目录 D. bin目录 答案:D

解析:JDK中可执行程序都放在bin目录下。 考察点:第一章 Java开发入门 题目难度:★☆☆☆ 容易

14.在JDK安装目录下,用于存放可执行程序的文件夹是? A. bin B. jre C. lib D. db 答案:A

解析:bin目录用于存放一些可执行程序,如javac.exe(Java编译器)、java.exe(Java运行工具)、jar.exe(打包工具)和javadoc.exe(文档生成工具)等。 考察点:第一章 Java开发入门 题目难度:★☆☆☆ 容易 15.如果jdk的安装路径为:c:\\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项 A. c:\\jdk; B. c:\\jdk\\bin; C. c:\\jre\\bin; D. c:\\jre; 答案:B

解析:path环境必须设为javac.exe和java.exe的上一级目录bin 考察点:第一章 Java开发入门 题目难度:★★★★ 难

16.下列Java命令中,哪一个可以编译HelloWorld.java文件? A. java HelloWorld B. java HelloWorld.java C. javac HelloWorld D. javac HelloWorld.java 答案:D

解析:javac命令用于编译.java文件;java命令用户解析.class文件。 考察点:第一章 Java开发入门 题目难度:★☆☆☆ 容易

17.下列关于Java语言的描述中,错误的是?() A. Java语言是一门面向对象的编程语言 B. Java是一门与平台无关的编程语言

C. Java具有JavaSE、JavaME和JavaEE三大平台 D. Java是一门介于汇编和高级之间的语言 答案:D

解析:Java是一门高级语言,它的开发与平台无关,采用的是面向对象的编程思想。 考察点:第一章 Java开发入门 题目难度:★☆☆☆ 容易

18.下面关于javac命令作用的描述中,正确的是 A. 可以执行java程序

B. 可以将编写好的Java文件编译成.class文件 C. 可以把文件压缩 D. 可以把数据打包 答案:B

解析:javac命令将java文件编译成java字节码文件。 考察点:第一章 Java开发入门 题目难度:★☆☆☆ 容易

19.以下关于java命令作用的描述中,正确的是 A. 它专门负责解析由Java编译器生成的.class文件 B. 它可以将编写好的Java文件编译成.class文件 C. 可以把文件压缩 D. 可以把数据打包 答案:A

解析:java命令负责运行编译后的.class文件。 考察点:第一章 Java开发入门 题目难度:★☆☆☆ 容易 20.安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种( )

A. Java文档制作工具 B. Java解释器 C. Java编译器 D. Java启动器 答案:B 解析:

考察点:第一章 Java开发入门 题目难度:★★☆☆ 一般

21.下列关于classpath环境变量的说法中,哪一个是正确的 A. classpath配置一次后可永久使用

B. 没有classpath环境变量就不能运行Java程序

C. classpath环境变量可以让虚拟机找到class文件的目录 D. 查看当前classpath配置的命令是:classpath 答案:C 解析:classpath环境变量可以让虚拟机找到class文件目录,没有配置classpath环境变量时,java虚拟机会自动将其设置为“.”。查看当前classpath的命令是set classpath; 考察点:第一章 Java开发入门 题目难度:★☆☆☆ 容易

22.下面关于path和classpath的说法中,错误的是() A. path用来指定 java 虚拟机(JVM) 所在的目录

B. classpath用来指定我们自己所写的或要用到的类文件(.jar文件) 所在的目录 C. 在dos命令行中,classpath和path环境变量的查看与配置的方式不相同 D. 只要设置了classpath 这个环境变量系统就不会再在当前目录下查询某个类 答案:C 解析:classpath和path环境变量的查看与配置的方式完全相同,都是通过 set关键字实现的。 考察点:第一章 Java开发入门 题目难度:★☆☆☆ 容易 一、单选题

1.下列选项中,哪一个是单行注释的符号?( ) A. \\\\ B. // C. / D. \\ 答案:B

解析:// 双斜杠表示注释单行代码 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易 2.以下标识符中,不合法的是 A. user B. $inner C. class D. login_1 答案:C

解析:class为java中的关键字 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

3.下列选项中,用于引入包的关键字是 A. class B. import C. package

D. static 答案:B

解析:import关键字的作用是引入包 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

4.下列选项中,属于浮点数常量的是?( ) A. 198 B. 2e3f C. true D. null 答案:B

解析:198属于整型常量,true属于布尔常量,null属于null常量 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

5.以下关于变量的定义,正确的是 ( ) A. int a=10; B. b=2; C. int=20;

D. int a;b=a+10; 答案:A

解析:变量定义的基本格式 数据类型 变量名=值;变量一定要先初始化后才可以使用。 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

6.下列选项中,按照箭头方向,不可以进行自动类型转换的是 A. byte → int B. int → long C. double →long D. short → int 答案:C

解析:类型转换过程中,只能范围小的自动转成范围大的。double范围大于long 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

7.下列关于变量作用域的说法中,正确的是

A. 在main()方法中任何位置定义的变量,其作用域为整个main()方法 B. 块中定义的变量,在块外也是可以使用的

C. 变量的作用域为:从定义处开始,到变量所在块结束位置 D. 变量的作用域不受块的限制 答案:C

解析:变量的作用域为:从定义处开始,到变量所在代码块结束位置

考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

8.表达式7%(-3)的运算结果为 A. -2 B. -1 C. 2 D. 1 答案:D

解析:在进行取模(%)运算时,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关

考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

9.下列选项中,不属于赋值运算符的是 A. -= B. = C. == D. *= 答案:C

解析:选项C属于比较运算符,其他三项属于赋值运算符 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

10.下列选项中,不属于比较运算符的是 A. = B. == C. < D. <= 答案:A 解析:“=”属于赋值运算符,不属于比较运算符 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

11.下面选项中,哪个是短路与运算符( ) A. & B. && C. | D. || 答案:B

解析:运算符“&”和“&&”都表示与操作,当且仅当运算符两边的操作数都为true时,其结果才为true,否则结果为false。当运算符“&”和“&&”的右边为表达式时,两者在使用上还有一定的区别。在使用“&”进行运算时,不论左边为true或者false,右边的表达式都会进行运算。如果使用“&&”进行运算,当左边为false时,右边的表达式不会进行运

算,因此“&&”被称作短路与 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

12.将十进制的6与11进行异或运算的结果为 A. 11 B. 12 C. 13 D. 14 答案:C

解析:位运算符“^”是将参与运算的两个二进制数进行“异或”运算,如果二进制位相同,则值为0,否则为1。然后将得出的二进制数转化成对应的整数值 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易 13.请阅读下面的程序 public class Example03 {

public static void main(String[] args) { int x = 8; if (x > 5) {

System.out.println(\\\ } else {

System.out.println(\\\ } } }

程序的运行结果是?()

A. true B. false C. a D. b 答案:C

解析:因为判断条件8>5成立,所以{}中的语句会被执行,输出a 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易 14.请阅读下面的程序 public class Test {

public static void main(String[] args) { int temp = 0;

for (int i = 1; i < 5; i++) { for (int j = 0; j < i; j++) { temp++;

} }

System.out.println(temp); } }

下列选项中,哪一个是正确的运行结果( ) A. 5 B. 9 C. 10 D. 15 答案:C

解析:嵌套for循环,依次实现1,2,3,4,5以内数字的叠加运算。外层for循环,每次循环后temp的值依次为:1,3,6,10; 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

15.关于continue语句的使用范围,下列说法正确的是 A. continue语句可以在选择语句中使用 B. continue语句可以在条件语句中使用 C. continue语句可以在循环语句中使用 D. 不输出任何内容 答案:C

解析:continue语句只能在循环语句中使用 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

16.声明一个数组,__[ ] a = new String[]{};空格处应该填写的的内容为() A. int B. double C. String D. string 答案:C

解析:根据类型[] 数组名 = new 类型[]{元素,元素,??};的格式,此处需要填String 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

17.下列选项中关于二维数组的定义,格式错误的是( )

A. int[][] arr = new int[3][4] B. int[][] arr = new int[3][] C. int[][] arr = new int[][4]

D. int[][] arr = {{1,2},{3,4,5},{6}}

答案:C

解析:选项3错误,因为该选项没有给出二维数组的长度 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

18.下列命令中,可以将文档注释提取出来生成帮助文档的是( ) A. javac B. java C. javadoc D. jar 答案:C

解析:可以使用javadoc命令将文档注释提取出来生成帮助文档 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

19.下面选项中,哪一个是合法的标识符 A. hello world B. 1Demo C. _3_ D. class 答案:C

解析:标识符可以由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,不能是Java中的关键字 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

20.下面选项中,哪一个不是Java中的关键字 A. sizeof B. const C. public D. goto 答案:A

解析:sizeof不属于Java语言中的关键字 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

21.下列选项中,哪一个是十进制数6的二进制值( ) A. 111 B. 101 C. 110 D. 011 答案:C

解析:十进制转换成二进制就是一个除以2取余数的过程。把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0。最后将所有余数倒序排列,得到数就是转换结果

考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

22.下列转义字符中,不合法的是( ) A. '\\n' B. '\\x' C. '\\r' D. '\\t' 答案:B

解析:Java中的转义字符有\\n、\\r、\\t、\\b、\\'、\\\\\、\\\\等 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

23.下列字符串常量中,哪一个是错误的( ) A. “abc” B. “12?12” C. “12”12” D. “” 答案:C 解析:字符串常量用于表示一串连续的字符,一个字符串常量要用一对英文半角格式的双引号(” “)引起来,一个字符串可以包含一个字符或多个字符,也可以不包含任何字符,但不能包含特殊字符,例如在字符串中表示引号(”),需要用转义字符(\\)。 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

24.关于变量类型转换的描述中,正确的是 A. 只有数据类型相同的数据才能进行运算

B. byte类型和short类型的数据是不能一起运算的

C. 两个byte类型数据一起运算时会把先自动提升到int类型再运算 D. 两个整型在一起运算时,结果一定是int 答案:C

解析:byte类型和short类型的数据一起运算时会把先自动提升到int类型,再运算 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

25.请阅读下列示例代码,选择程序的输出结果 int a = 1; int b = a++; int c = ++a;

int d = a++ + ++a;

System.out.print(a + \\\A. 5,1,3,9 B. 5,2,3,9 C. 5,1,2,9 D. 5,1,3,8

答案:D

解析:++在前表示先运行自加运算,++在后表示后运行自加运算 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

26.下列选项中,哪个是程序的运行结果 class Test {

public static void main(String[] args) {

int a = 3; int b = 6;

System.out.print(a==b); System.out.print(a=b); } }

A. false false true false B. false false true true C. false true true false D. true false false true 答案:C

解析:3==6(错),3<6(对),3!=6(对),3>=6(错) 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

27.下列关于浮点型数据的定义,哪一个不能通过编译( ) A. double a=12.45; B. float b=12.45; C. double c=100; D. float d=100; 答案:B

解析:float类型的数据在定义浮点型数据时,必须在后面加上f或F.double类型的数据在定义时可以在后面加上d或D,也可以不加。 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

28.题号:请先阅读下面的代码。 int x = 1; int y = 2;

if (x % 2 == 0) { y++; } else {

y--; }

System.out.println(\\\

上面一段程序运行结束时,变量y的值为下列哪一项 A. 1 B. 2 C. 3 答案:A

解析:1 % 2不为0,所以进入到else语句,2--,所以答案为A 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般 29.请阅读下面的程序

public class SwitchDemo3 {

public static void main(String[] args) { char c = ?B?; switch ? { case ?A?:

System.out.println(“优”); break; case ?B?:

System.out.println(“良”); break; case ?C?:

System.out.println(“差”); break; } } }

下列选项中,哪一个才是程序的运行结果 A. 优 B. 良 C. 差

D. 编译失败 答案:B

解析:char c=’B’与case ‘B’相匹配,因此输出结果为“良” 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

30.下列关于while语句的描述中,正确的是 A. while语句循环体中可以没有语句 B. while语句的循环条件可以是整型变量 C. while语句的循环体必须使用大括号 D. while语句的循环体至少被执行一次

答案:A

解析:while语句的循环条件必须是boolean类型的 while语句的循环体中只有一条语句时可以不用大括号 while语句的循环条件不满足时,循环体中的内容不执行 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般 31.请阅读下面的程序 public class Test {

public static void main(String[] args) { int sum = 0;

for (int i = 1; i <= 100; i++) { if (i % 2 == 1) { continue; }

sum += i; }

System.out.println(\\\ } }

sum的值为()

A. 1050 B. 2550 C. 2500

D. 以上答案都不对 答案:B

解析:程序计算的是1到100间的偶数和,答案为2550 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般 32.请阅读下面的程序 public class Test {

public static void main(String[] args) { int temp = 0;

for (int i = 1; i < 5; i++) { for (int j = 0; j < i; j++) { temp++; } }

System.out.println(temp); } }

下列选项中,哪个是程序的运行结果()

A. 5 B. 9 C. 10 D. 15 答案:C

解析:循环结束后temp的值为10 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般 33.请阅读下面的程序 Public class Test {

public static void main(String[] args) { int a = 0; int b = 0;

for (int i = 1; i <= 5; i++) { a = i % 2;

while (a-- >= 0) { b++; } }

System.out.println(\\\} }

下列选项中,哪一个是正确的运行结果( )

A. a=8,b=-2 B. a=-2,b=8 C. a=3,b=0 D. a=0,b=3 答案:B

解析:本题中有两个循环语句,分别是外层循环的for语句和内层循环的while语句,首先程序会执行for循环中的语句,并执行循环体中的表达式a=i%2,计算出a的值,然后在进入while循环计算b的值,循环往复直到外层循环条件i>5为止 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般 34.阅读下面的程序 public class Test {

public static void main(String[] args) { for(int x = 0 ; x <=3 ; x++){ continue;

System.out.print(x%2); }

} }

运行结果正确的是 A. 跳出循环,无输出 B. 0121 C. 01 D. 0123 答案:A

解析:continue语句的作用是终止本次循环,因此contine后的代码永远不会被执行,都是无效代码

考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般 35.阅读下面的代码片段

public static int add(int a,int b) { return a + b; }

下列选项中,可以在main()方法中调用add()方法的是 A. int num = add(1.0,2.0); B. int num = add(1,2);

C. int num = add(true,flase); D. int num = add(\ 答案:B

解析:调用add方法时,传入参数的数据类型必须和方法的形参类型相同 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

36.关于方法的递归,以下说法正确的是

A. 方法递归就是指在一个方法的内部调用自身的过程 B. 方法递归其实就是调用其它方法 C. 方法递归是指方法的返回值不同 D. 以上说法都不对 答案:A

解析:方法的递归是指在一个方法的内部调用自身的过程,而且必须要有结束条件,不然就会陷入无限递归的状态,永远无法结束调用

考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般 37.public class Example01 {

public static void main(String[] args) {

int[] arr = { 4, 1, 6, 3, 9, 8 }; // 定义一个数组

int minIndex = 0; //初始时设第1个角标处的值为最小值 for (int i = 1; i < arr.length; i++) {

if (______) {

minIndex = i; } }

System.out.println(\\\数组中的最小值为:\\\ } }

请问在上述程序的横线处填写下列哪段代码,可以求到数组的最小值( )

A. i < minIndex

B. arr[i] < arr[minIndex] C. arr[i] > arr[minIndex] D. i > minIndex 答案:B

解析:求最小值比较的不是角标大小,而是数组中元素的大小 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般 38.已知类的继承关系如下: class A

class B extends A class C extends A

则以下语句中能够通过编译的是?( )

A. A a=new B(); B. C c=new B(); C. C c=new A(); D. B b=new C(); 答案:A

解析:假设A为犬类,B为狗,C为狼,那么狗当然属于犬类对象 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

39.若二维数组int arr[][]={{1,2,3},{4,5,6},{7,8}};,则arr[1][2]的值是( ) A. 2 B. 5 C. 6 D. 0 答案:C

解析:数组角标从0开始计数,arr[1][2]表示的是二维数组中第2个一维数组中的第3个元素的值,因此答案是C

考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

40.下列选项中,按照箭头方向,需要进行强制类型转换的是 A. double ← float B. float ← long C. int ← char D. char ←byte 答案:D

解析:byte是整数型变量,取值范围小于char,但是char是字符型变量,所以需要强制转换

考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

41.以下哪个选项可以正确创建一个长度为3的二维数组( ) A. new int [2][3]; B. new int[3][]; C. new int[][3];

D. 以上答案都不对 答案:B 解析:

考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

42.阅读下列代码:System.out.println(“Hello” + 9 + 1); 下列选项中,哪个是正确的输出结果( ) A. Hello91 B. Hello10

C. Compilation fails.

D. An exception is thrown at runtime 答案:A

解析:字符串常量与其他数据类型常量使用“+”进行操作时,返回结果还是字符串类型,因此输出Hello91。

考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

43.下列关于方法的描述中,正确的是 A. 方法是对功能代码块的封装

B. 方法没有返回值时,返回值类型可以不写 C. 没有返回值的方法,不能有return语句 D. 方法是不可以没有参数的 答案:A

解析:如果方法没有返回值,则返回值类型要定义为void。 方法中没有返回值也可以使用return语句,格式为return。 方法中可以定义参数,也可以不定义参数。

考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

44.下列选项中,属于布尔常量的是?( ) A. 198 B. 2e3f C. true D. null 答案:C

解析:198属于整型常量,2e3f属于浮点数常量,null属于null常量 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

45.下列选项中,按照箭头方向,需要进行强制类型转换的是 A. int ← short B. int ← byte C. int ← char D. int ← float 答案:D

解析:类型转换过程中,范围大的需要强制转换成范围小的 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

46.int a[ ]={45,4,67,23,65,87,34,52,56};数组中a[5]的值为( ) A. 23 B. 45 C. 65 D. 87 答案:D

解析:数组的索引值从0开始,a[5]表示第6个元素即87 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

47.下列选项中,哪个是八进制043的十六进制表示形式( ) A. 0x43 B. 0x23 C. 23 D. 0x32 答案:B

解析:十六进制数字以0x或者0X开头,八进制以3个二进制位为一个单元,而十六进制以4个二进制位为一个单元计算每一位数。运算过程:八进制043 ->二进制0010 0011 -> 十六进制 0x23 )

考察点:第二章 Java编程基础

题目难度:★☆☆☆ 容易 48.请阅读下面的代码 boolean a = false; boolean b = true;

boolean c= ( a&&b)&&(!b); int result = (c = = false)?1:2;

当语句执行完,变量c与result的值为( )

A. false和1 B. true和2 C. true和1 D. false和2 答案:A 解析:三元运算符条件表达式为真就返回第一个表达式的值,条件表达式为假就返回第二个表达式的值。&&运算符的特点是,当且仅当运算符两边的操作数都为true时,其结果才为true,否则结果为false,因此c=false,三元运算符的表达式c==false就为true,因此返回结果为1

考察点:第二章 Java编程基础 题目难度:★★★★ 难

49.下面选项中,可以从数组int [] arr = {10,1,2,3,4,5,6,7,8,9,10}中求出元素10所对应角标值的是( ) A. for(int x=0;x B. for(int x=1;x C. for(int x=0;x D. for(int x=1;x 答案:A

解析:数组的最大角标值比数组的长度小1,并且数组的角标值从0开始。所以前提条件是x=0且判断条件是x

50.下列选项中,按照箭头方向,可以进行自动类型转换的是 A. char → int B. short → char C. float → long D. char → short 答案:A

解析:类型转换过程中,只能范围小的会自动转成范围大的 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

51.若int[][] arr= {{1,2,3}},则arr[0][1]的结果为( ) A. 0

B. 1 C. 2 D. 3 答案:C

解析:题目中定义的二维数组只有一个一维数组,arr[0][1]表示要获取的是一维数组的第二个元素,因此正确答案为第3项 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易 52.请阅读下面的程序 public class Test {

public static void main(String[] args) { for(int x = 0 ; x <=3 ; x++){ continue;

System.out.print(x%2+” “); } } }

下列选项中,哪一个是程序的运行结果 A. 0 1 2 3 B. 0 1 2 1 C. 0 1 2

D. 编译失败 答案:D

解析:continue语句的作用是终止本次循环,因此contine后的代码永远不会被执行,编译失败

考察点:第二章 Java编程基础 题目难度:★★★★ 难

53.若x=6 ,y=5 则表达式int max=x>y?x:y 的结果为() A. 6 B. 5 C. true D. false 答案:A

解析:三元表达式语法结构: 判断条件 ? 表达式1 : 表达式2

当判断条件成立时,运算结果为表达式1的值,否则结果为表达式2的值

考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

54.下列选项中,不属于位运算符的是 A. &

B. ! C. ^ D. | 答案:B 解析:“!”是逻辑运算符,表示逻辑非 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

55.表达式3510/1000的运算结果为 A. 3 B. 3.51 C. 3.510 D. 4 答案:A

解析:整数之间相除,会忽略小数部分 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

56.下面关于字符类型变量的定义中,错误的是( ) A. char a='97'; B. char b=65536; C. char c='\a'; D. char d=\\\ 答案:D

解析:char类型数据在定义时需要使用单引号引起的单个字符,也可以赋值为0-65535之间的数字。也可以使用Unicode 代码来描述 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

57.阅读下段代码片段,选择正确的运行结果 public static void main(String[] args) { {

int a = 1;

System.out.print(a); } {

int a = 2;

System.out.print(a); }

int a = 3;

System.out.print(a); }

A. 123 B. 111

C. 121

D. 编译不通过 答案:A

解析:变量的作用域为:从定义处开始,到变量所在块结束位置 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易 58.请阅读下面的程序 public class Demo {

public static void sum(int a, int b) {

System.out.println(\\\ }

public static void sum(int a, float b) {

System.out.println(\\\ }

public static void sum(int a, double b) {

System.out.println(\\\ }

public static void main(String[] args) { int a = 10; long b = 20; sum(a, b); } }

下列选项中,哪一个是程序的运行结果 A. int:30 B. float:30.0 C. double:30.0 D. int:30.0 答案:B

解析:在主方法中定义一个int类型,一个long,按照正常做法,是找对应的类型,可是没有,这个时候要想到基本类型的隐式转换。Long会自动转到float。所以选择B 考察点:第二章 Java编程基础 题目难度:★★★★ 难 59.请阅读下面的程序 public class Test {

public static void main(String[] args) { int a[ ] = { 2, 0, 4, 1, 8, 3, 5 }; int temp;

for (int i = 0; i < a.length - 1; i++) { for (int j = a.length - 1; j > i; j--) { if (a[j] < a[j - 1]) { temp = a[j];

a[j] = a[j - 1]; a[j - 1] = temp; } } }

for (Integer i : a) {

System.out.print(i); } } }

下列选项中,哪个是程序的运行结果()

A. 8543210 B. 0123458 C. 2041835

D. 以上答案都不对 答案:B

解析:由于使用的输出语句会换行 ,所以程序的运行结果为B选项 考察点:第二章 Java编程基础 题目难度:★★★★ 难 60.public class Test {

public static void main(String[] args) { int sum = 0;

for (int i = 1; i <= 100; i++) { if (i % 2 == 0) { continue; }

sum += i; }

System.out.println(sum); }

} 下列选项中,哪一个是程序的运行结果( )

A. 1050 B. 2050 C. 2500

D. 以上答案都不对 答案:C

解析:程序表示求出100以内,所有奇数的和 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

61.以下语法格式中,哪一个是三元运算符的语法格式( ) A. 表达式1:表达式2?表达式3 B. 表达式1?表达式2:表达式3 C. 表达式1:表达式2:表达式3 D. 以上答案都不对 答案:B

解析:三元运算符语法格式: 表达式1?表达式2:表达式3;

考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易 62.程序的运行结果是 public class Example02 {

public static void main(String[] args) { int x = 0; // 定义变量x,初始值为0 int y = 0; // 定义变量y,初始值为0 boolean b = x==0 || y++<0;

System.out.println(\\\ } }

A. b = false, y = 0 B. b = false, y = 1 C. b = true, y = 0 D. b = true, y = 1 答案:C

解析:答案为C。我们看表达式的执行流程:首先判断x==0是否成立,判断结果是true成立,那么“||”右边的表达式将不执行,将true的值赋给b,因为右边的表达式不参与运算,所以y的值还是0

考察点:第二章 Java编程基础 题目难度:★★★★ 难 63.请阅读下面的程序片段 int x = 3; if (x > 5) {

System.out.print(\\\ } else {

System.out.print(\\\ }

选择程序的运行结果( ) A. a B. b C. ab

D. 编译错误 答案:B 解析:if语句中的判断条件成立时,会执行if语句中的内容,否则会执行else语句中的内容,很明显3不大于5所以执行else语句的内容,输出结果为b 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

64.下面关于方法定义的描述中,正确的是

A. 当方法没有返回值时,返回值类型要定义为void B. 当方法没有返回值时,返回值类型可以不写 C. 当方法没有返回值时,不能有return语句 D. 方法是不可以没有参数的 答案:A

解析:如果方法没有返回值,则返回值类型要定义为void; 方法中没有返回值也可以使用return语句,格式为return; 方法中可以定义参数,也可以不定义参数。 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

65.下列关于int类型变量的定义,错误的是( ) A. int a=10; B. int b,c=20; C. int d=e=30; D. int f=40; 答案:C

解析:变量定义的基本格式 数据类型 变量名=值;变量一定要先初始化后才可以使用。 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

66.下列选项中关于二维数组的定义,错误的是( ) A. int[][] arr = new int[][2] B. int[][] arr = new int[1][2] C. int[][] arr = new int[2][]

D. int[][] arr = {{1},{2,3},{4,5,6}} 答案:A

解析:由二维数组的定义方式可知,int[][] arr = new int[][2] 中的int[]长度不能为空 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

67.请阅读下列的程序,程序的运行结果是 public class Example01 {

public static void main(String[] args) { int num = 127; byte b = num;

System.out.println(b); } }

A. 编译报错

B. 编译通过,执行输出127 C. 编译通过,执行报错 D. 以上选项均不正确 答案:A

解析:将一个int型num变量的值赋给byte类型的变量b时,int类型的取值范围大于byte类型的取值范围,这样的赋值会导致数值溢出,需要进行强制类型转换,否则编译不能通过 考察点:第二章 Java编程基础 题目难度:★★★★ 难

68.下列关于case关键字的说法中,错误的是 A. case关键字后面必须是常量

B. case关键字后面的break必须存在 C. case关键字后面的break可以没有 D. case关键字后面的值必须不一样 答案:B

解析:case关键字后面的break可以没有 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

69.关于方法的递归,以下说法错误的是 A. 方法递归必须有结束条件

B. 方法递归次数太多会导致内存溢出

C. 方法递归就是指在一个方法的内部调用自身的过程 D. 方法递归可以无数次,只要有结束条件就可以 答案:D

解析:方法的递归是指在一个方法的内部调用自身的过程,递归必须要有结束条件,不然就会陷入无限递归的状态,永远无法结束调用。如果递归此次数太多就会导致内存溢出关于方法的递归,以下说法错误的是 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般 70.请阅读下面的代码片段 public static int add(int a,int b) { return a + b; }

下列选项中,可以在main()方法中成功调用add()方法的是 A. int num = add(1.0,2.0); B. int num = add('a','b'); C. int num = add(true,flase); D. int num = add(\

答案:B

解析:调用add方法传入’a’和’b’会自动类型提升为int类型,查找对应的ascii码表值 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般 71.请阅读下面的程序 class WhileDemo4 {

public static void main(String[] args) { int n = 5;

while (n > 10) {

System.out.print(n); n++; } } }

下列选项中,哪一个是程序运行的结果 A. 无输出 B. 输出56789 C. 死循环 D. 编译错误 答案:A

解析:由于变量n=5,因此while条件为false,循环不执行,没有任何结果输出 考察点:第二章 Java编程基础 题目难度:★★★★ 难

72.下列关于数组最值的描述中,错误的是( ) A. 要想求数组的最值必须先定义一个数组

B. 在求数组最值时,初始时一定要将数组中的第一个元素的值赋给变量 C. 求数组最值过程中,一定要对数组进行遍历

D. 在求数组最大值时,使用变量记住每次比较后较大的那个值 答案:B 解析:

考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

73.下列选项中,哪一个是多行注释符号?( ) A. //* *// B. /* /* C. / / D. /* */ 答案:D

解析:/* */ 表示多行注释,以“/*”起始,以“*/”结束。 考察点:第二章 Java编程基础

题目难度:★☆☆☆ 容易

74.下列选项中,哪一个不能通过编译( ) A. byte a=1; B. short b=100; C. int c='a';

D. long d=8888888888; 答案:D

解析:java中的整型数据默认是int类型,long d=8888888888;它的值超过了int类型的范围,这时如果要描述成一个long数据,必须在值后面加上L后l。 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

75.下列选项中,不属于Java中关键字的是 A. const B. false C. Final D. null 答案:C

解析:Java中的关键字都是小写的 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易 76.请阅读下面的程序 public class Test {

public static void main(String[] args) { int x; int y;

for (x = 1, y = 1; x <= 100; x++) { if (y >= 20) { break; }

if (y % 3 == 1) { y += 3; continue; }

y -= 5; }

System.out.println(“x=” + x + “,y=” + y); } }

下列选项中,哪一个是程序的运行结果 A. x=8,y=22 B. x=22,y=8 C. x=3,y=0

D. x=0,y=3 答案:A

解析:按照循环语句嵌套if语句的执行流程分析即可得到正确结果,注意break和continue语句的特点

考察点:第二章 Java编程基础 题目难度:★★★★ 难 77.请阅读下面的程序 public class Test {

public static void main(String[] args) { int i = 0; int count = 0; do {

if (!(i + \\\ count++; }

i++; } while (i < 500);

System.out.println(\\\一共有:\\\ }

} 下列选项中,哪一个是程序运行后count的值

A. 322 B. 323 C. 324 D. 325 答案:C

解析:判断500以内的数字,不包含4的个数,499-99-40-36=324。

99表示以4为百位数数字的个数,40表示以4为十位数数字的个数,36=4*9表示以4位个位数数字的个数

考察点:第二章 Java编程基础 题目难度:★★★★ 难

78.下面关于布尔类型变量的定义中,正确的是( ) A. boolean a=TRUE; B. boolean b=FALSE; C. boolean c='true'; D. boolean d=false; 答案:D

解析:布尔类型的变量只有两个值,即true和false。 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

79.下面的运算符中,用于执行除法运算是哪个? A. / B. \\ C. % D. * 答案:A 解析:

考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

80.下列数据类型中,哪种数据类型转为int类型需要进行强制转换 A. byte B. short C. char D. float 答案:D

解析:在两种类型兼容的前提下,取值范围大的类型转换成取值范围小的类型时,需要进行强制类型转换

考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

81.假设x为int类型,那么下列选项中可以作为if语句的判断条件的是( ) A. x = 4 B. x & 3 C. x++ D. x<10 答案:D

解析:if判断条件只能是布尔值,上述选项中,只有x<10这个表达式的值是布尔值 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

82.下面哪种写法可以实现访问数组arr的第1个元素? A. arr[0] B. arr(0) C. arr[1] D. arr(1) 答案:A 解析:

考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易 83.请阅读下面的程序 public class Test {

public static void main(String[] args) {

for(int x =0;x<5;x++) {

if(x%2==0) break;

System.out.print(x+” “); } } }

下列选项中,哪一个是程序的运行结果 A. 1 2 3 4 5 B. 0 2 4 C. 1 3

D. 不输出任何内容 答案:D

解析:由于上述程序在for循环中使用了break语句,当执行到break语句时,就会跳出本次循环, break后的语句一直没有机会执行,因此,最后什么都不会输出 考察点:第二章 Java编程基础 题目难度:★★★★ 难

84.下列关于数据类型的说法中,错误的是

A. Java中的数据类型分为基本数据类型和引用数据类型 B. int类型数据占4个字节

C. 浮点数类型变量不能赋予一个整数数值 D. 布尔类型的变量只有true和false这两个值 答案:C

解析:浮点数类型变量可以赋予一个整数数值 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

85.下列常量中,属于整型常量的是?( ) A. 198 B. 2e3f C. true D. null 答案:A

解析:2e3f属于浮点数常量,true属于布尔常量,null属于null常量 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

86.下列选项中,属于字符常量的是( ) A. “a” B. ?ab' C. ?1' D. 1

答案:C

解析:字符常量用于表示一个字符,一个字符常量要用一对英文半角格式的单引号(' ')引起来,它可以是英文字母、数字、标点符号、以及由转义序列来表示的特殊字符,如’a’。 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

87.下列有关数组中元素位置交换的描述,错误的是( ) A. 位置交换的过程中需要借助一个中间变量 B. 位置交换的过程至少需要三步

C. 位置交换后数组的角标顺序发生了改变 D. 位置交换后数组的角标顺序不会发生改变 答案:C

解析:数组角标顺序不会变化,只是角标上的值发生了变化 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

88.当String s=null;时,下列选项中会抛出空指针异常的是( ) A. if( (s!=null) & (s.length()>0) ) B. if( (s!=null) && (s.length()>0) ) C. if( (s!=null) &&(s.length()==0) ) D. if( (s==null) || (s.length()==0) ) 答案:A

解析:null赋值给引用型变量,不能访问该类型中的成员,由于选项1中使用的运算符号为&当(s!=null)无论为true或者false,右边的表达式都会执行,因此就会出现空指针异常。 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

89.下列选项中,关于运算符“^”的描述正确是 A. 二进制位有1,则结果为1 B. 二进制位有0,则结果为0

C. 二进制位有相同,则结果为1,不同为0 D. 二进制位有相同,则结果为0,不同为1 答案:D

解析:位运算符“^”是将参与运算的两个二进制数进行“异或”运算,如果二进制位相同,则值为0,否则为1

考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易 90.请阅读下面的程序 public class Test {

public static void main(String[] args) { int a[] = {2,0,4,1,8,3,5}; int temp;

for (int i = 0; i < a.length - 1; i++) {

for (int j = a.length - 1; j > i; j--) { if (a[j] < a[j - 1]) { temp = a[j]; a[j] = a[j - 1]; a[j - 1] = temp; } } }

for (Integer i : a) {

System.out.println(i); } }

} 下列选项中,哪一个是程序的运行结果( )

A. 8,5,4,3,2,1,0 B. 0,1,2,3,4,5,8 C. 2,0,4,1,8,3,5 D. 5,3,8,1,4,0,2 答案:B

解析:数组的冒泡排序法

考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

91.下面浮点型数据的定义中,错误的是( ) A. float a=1.23; B. double b=1.23; C. double c=1.5E4; D. float d='a'; 答案:A

解析:float类型的数据在定义浮点型数据时,必须在后面加上f或F;double类型的数据在定义时可以在后面加上d或D,也可以不加。 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般

92.下面代码中,哪一项是正确定义了一个3*4的二维数组 A. int[][] arr = new int[3][4] B. int[][] arr = new int[3][] C. int[][] arr = new int[][4]

D. int[][] arr = {{1,2},{3,4,5},{6}} 答案:A

解析:只有1选项正确给出了二维数组的长度,以及每一个一维数组的元素个数 考察点:第二章 Java编程基础

题目难度:★☆☆☆ 容易

93.下列选项中,不属于基本数据类型的是 A. String B. short C. boolean D. char 答案:A 解析:Java中的8种基本数据类型分别是byte、short、int、long、float、double、char和boolean,其中不包含String类型,String属于引用类型 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

94.下面关于字符变量的定义中,错误的是( ) A. char a='a'; B. char b=97; C. char c=0x61; D. char d=A; 答案:D

解析:char类型数据在定义时需要使用单引号引起的单个字符,也可以赋值为0-65535之间的数字

考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易 95.请阅读下面的程序 public class Test {

public static void main(String[] args) { int m = 37; int n = 13;

while (m != n) { while (m > n) { m -= n; }

while (m < n) { n -= m; } }

System.out.println(\\\} }

下列选项中,哪一个是正确的运行结果( )

A. m=37 B. m=13 C. m=1

D. m=2 答案:C

解析:本题中有三个循环语句,首先在外层循环中判断m!=n是否成立,如果成立进入内层循环,然后在内层循环中分别比较m>n还mn,会执行嵌套循环中的第2个,最终输出结果为1 考察点:第二章 Java编程基础 题目难度:★★☆☆ 一般 96.请阅读下面的程序。 Class WhileDemo5 {

public static void main(String[] args) { int n = 5;

while (n < 10) {

System.out.print(n); n++; } } }

下列选项中,哪一个是程序运行的结果 A. 无输出 B. 输出56789 C. 死循环 D. 编译错误 答案:B

解析:while条件为true,循环体执行,每执行一次输出n的值,并且n递增 考察点:第二章 Java编程基础 题目难度:★★★★ 难

97.下列关于continue语句的说法中,正确的是 A. continue语句可以在选择语句中使用 B. continue语句可以在条件语句中使用 C. continue语句可以在循环语句中使用 D. continue语句可以在任何语句中使用 答案:C

解析:continue语句只能在循环语句中使用 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

98.下列关于多行注释的说法中,正确的是( ) A. 多行注释中不能嵌套单行注释 B. 多行注释中可以嵌套多行注释

C. 多行注释中不可以有分号,逗号,括号等符号 D. 多行注释中可以没有换行

答案:D

解析:多行注释中可以没有换行 考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

99.下列关于注释作用的描述中,错误的是?() A. 对程序进行说明 B. 参与编译 C. 帮助调试程序

D. 帮助整理编程思路 答案:B

解析:注释不参与编译

考察点:第二章 Java编程基础 题目难度:★☆☆☆ 容易

1.在以下什么情况下,构造方法会被调用?

A. 类定义时 B. 创建对象时 C. 调用对象方法时 D. 使用对象的变量时 答案:B 解析:

考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易

2.请阅读下面的程序,选择正确的运行结果。 class Demo{

private static int x ;

public static void main(String[] args){ System.out.println(x++); } } A. 0 B. 1

C. 无结果 D. 编译失败 答案:A 解析:

考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易 3.请阅读下面的代码 class A{

int x;

static int y;

void fac(String s){

System.out.println(“字符串:”+s); } }

下列选项中描述正确的是( ) A. x , y和s 都是成员变量

B. x 是实例变量,y是类变量,s是局部变量 C. x和y是实例变量,s是参数 D. x ,y和s都是实例变量 答案:B

解析:在方法中声明的s是局部变量,使用static关键字修饰的y是类变量,在类中定义的x是实例变量。

考察点:第三章 面向对象(上) 题目难度:★★☆☆ 一般 4.请阅读下面的程序代码 Class Person{ void say(){

System.out.println(“hello”); } }

class Example{

public static void main(String[] args){ Person p2 = new Person(); Person p1 = new Person(); p2.say(); p1.say(); p2=null; p2.say(); } }

下列关于程序运行结果的描述中,正确的是() A. 输出1个hello

B. 输出2个hello后会抛出异常 C. 输出3个hello后会抛出异常 D. 不会输出hello,直接抛出异常 答案:B

解析:程序中创建了2个Person对象p1、p2,并分别调用了say()方法输出两个hello,然后将p2对象置为null,使p2对象失去了引用,因此再次使用p2对象调用say()方法时,会抛出异常。

考察点:第三章 面向对象(上) 题目难度:★★☆☆ 一般

5.下列关于构造方法定义的描述中,错误的是( )。

A. 方法名与类名相同

B. 在方法名的前面没有返回值类型的声明

C. 当定义了有参构造方法,系统默认的无参构造方法依然存在 D. 在方法中不能使用return语句返回一个值 答案:C 解析:

考察点:第三章 面向对象(上) 题目难度:★★☆☆ 一般 6.先来看一段代码 ?class Demo{ Demo(){ } }

下列构造方法中,可以存在于Demo类中的是()

A. public Demo(){} B. private Demo(){}

C. Demo(int age,String name)(){} D. Demo(){} 答案:C 解析:

考察点:第三章 面向对象(上) 题目难度:★★☆☆ 一般

7.下列关于this关键字的说法中,错误的是( ) A、 this可以解决成员变量与局部变量重名问题

B、 this出现在成员方法中,代表的是调用这个方法的对象 C、 this可以出现在任何方法中

D、 this相当于一个引用,可以通过它调用成员方法与属性

A. this可以解决成员变量与局部变量重名问题

B. this出现在成员方法中,代表的是调用这个方法的对象 C. this可以出现在任何方法中

D. this相当于一个引用,可以通过它调用成员方法与属性 答案:C 解析:

考察点:第三章 面向对象(上)

题目难度:★★☆☆ 一般

8.下列关于静态方法的描述中,错误的是( )。

A. 静态方法指的是被static关键字修饰的方法

B. 静态方法不占用对象的内存空间,而非静态方法占有对象的内容空间 C. 静态方法内可以使用this关键字

D. 静态方法内部只能访问被static修饰的成员 答案:C 解析:

考察点:第三章 面向对象(上) 题目难度:★★☆☆ 一般 9.阅读下列的程序 public class Test3 {

public static void main(String[] args) { _________________________ _________________________ } }

class Outer {

static class Inner {

public void method () {

System.out.println(\\\ } } }

下列选项中,可以正确输出method()方法的是( A、Outer o = new Outer(); o.method();

B、Inner I = new Inner(); i.method();

C、Outer.Inner oi = new Outer.Inner(); oi.method();

D、以上答案都不对

A. Outer o = new Outer(); o.method(); B. Inner I = new Inner(); i.method();

C. Outer.Inner oi = new Outer.Inner(); oi.method(); D. 以上答案都不对 答案:C 解析:

考察点:第三章 面向对象(上) 题目难度:★★☆☆ 一般

)10.阅读下列的代码 public class Test {

public static void main(String[] args) { _________________________ _________________________ } }

class Outer {

static class Inner {

public void method () {

System.out.println(\\\ } } }

下列选项中,填写在空白处可以使程序正常运行的是()

A. Outer o = new Outer(); o.method(); B. Inner I = new Inner(); i.method();

C. Outer.Inner oi = new Outer.Inner(); oi.method(); D. 以上答案都不对 答案:C 解析:

考察点:第三章 面向对象(上) 题目难度:★★☆☆ 一般

11.下列关于类的说法中,错误的是( ) A. Java中创建类的关键字是class

B. 类中可以有属性与方法,属性用于描述对象的特征,方法用于描述对象的行为 C. Java中对象的创建,首先需要定义出一个类 D. 一个类只能创建一个对象 答案:D 解析:

考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易

12.Person p = new Person(“张三”,23);这条语句会调用下列哪个构造方法给属性进行初始化( )

A. public Person(){}

B. public Person(String name,int age) { this.name = name; this.age = age; } C. public Person(int age,String name) { this.age = age; this.name = name; } D. public Person(String name) { this.name = name; }

答案:B 解析:创建对象时会找到匹配的构造方法给属性进行初始化,由于Person p = new Person(“张三”,23);这条语句中有两个参数,而且第1个参数是String类型的,第2个参数是int类型的,因此会调用B选项中的构造方法。 考察点:第三章 面向对象(上) 题目难度:★★☆☆ 一般

13.下列修饰符中,成员内部类被( )修饰后,可以被外界访问。

A. default B. protected C. public D. private 答案:C 解析:

考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易

14.被声明为private,protected 及public 的类成员,在类的外部则()

A. 只能访问到声明为public 的成员

B. 只可能访问到声明为protected 和public 的成员 C. 都可以访问 D. 都不能访问 答案:B

解析:声明为protected的类既能被同一包下的其它类访问,也能被不同包下该类的子类访问,声明为public的类可以被任意类访问 考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易 15.请阅读下面的代码

String s1=new String(“abc”); String s2=s1.intern(); String s3=”abc”;

System.out.println(s1==s2); System.out.println(s2==s3); System.out.println(s1==s3);

下列选项中,程序的输出结果为()

A. false true false B. false false false C. false true true D. false false true

答案:A 解析:

考察点:第三章 面向对象(上) 题目难度:★★☆☆ 一般

16.下面选项中,可以提取文档注释中作者信息的是( )

A. javadoc –d . Demo1.java

B. javadoc –d . –public Demo1.java C. javadoc –d . –version Demo1.java D. javadoc –d . –author Demo1.java 答案:D 解析:

考察点:第三章 面向对象(上) 题目难度:★★☆☆ 一般

17.下列关于使用this调用构造方法的说法中,错误的是?( )

A. 使用this调用构造方法的格式为this([参数1,参数2?]) B. 只能在构造方法中使用this调用其它的构造方法 C. 使用this调用其它构造方法的语句必须放在第一行 D. 在一个类的两个构造方法中可以使用this互相调用 答案:D 解析:

考察点:第三章 面向对象(上) 题目难度:★★☆☆ 一般

18.当成员变量和局部变量重名时,若想在方法内使用成员变量,那么需要使用下列选项中的哪一个关键字( )。 A. super B. import C. this D. return 答案:C

解析:当成员变量和局部变量重名时,若想在方法内使用成员变量,只能使用this获得成员变量。

考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易

19.类的定义必须包含在以下哪种符号之间?

A. 方括号[] B. 花括号{} C. 双引号\D. 圆括号()

答案:B 解析:

考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易

20.下面选项中,不是面向对象的特征的是( )。 A. 封装 B. 继承 C. 多态 D. 重构 答案:D

解析:面向对象的特点主要可以概括为封装性、继承性和多态性。 考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易

21.下列关于类与对象的说法中,错误的是( )。

A. 类是对某一类事物的抽象描述,而对象则是该类事物的个体。 B. 对象是类的实例化

C. 类用于描述多个对象的共同特征,它是对象的模板 D. 类与对象之间没有关系 答案:D

解析:对象是根据类创建出来的,类是对象的模板,对象是类的实例。 考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易

22.下列选项中,不属于面向对象特征的是( )。 A. 继承性 B. 封装性 C. 跨平台性 D. 多态性 答案:C

解析:面向对象有三种特性,分别是封装性、继承性和多态性。跨平台性是Java语言的特点,而不是面向对象的特征。 考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易 23.阅读下列的程序 class Person{ static{

System.out.println(name); }

private static String name = \\\}

class Demo{

public static void main(String[] args){ Person p = null; } }

下列关于程序运行结果的描述中,正确的是()

A. 无结果输出 B. 输出 null C. 输出 hello D. 编译失败 答案:D 解析:

考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易

24.下面关于调用构造方法的描述中,正确的是( )

A. 构造方法在类定义的时候被调用 B. 构造方法在创建对象的时候被调用 C. 构造方法在调用对象方法时被调用 D. 构造方法在使用对象的变量时被调用 答案:B

解析:调用构造方法创建对象

构造方法的作用是为对象中的属性赋值,在创建对象时,构造方法就会被调用。

考察点:第三章 面向对象(上) 题目难度:★★☆☆ 一般

25.为了能让外界访问私有属性,需要提供一些使用( )关键字修饰的公有方法。

A. void B. default C. private D. public 答案:C 解析:

考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易

26.float类型成员变量的默认初始化值是( )。 A. 0 B. false

C. null D. 0.0F 答案:D

解析:实例化对象时 ,Java虚拟机会自动为成员变量进行初始化,针对不同类型的成员变量,Java虚拟机会赋予不同的初始值。float类型的默认初始值是0.0F。

考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易

27.下列关于单例设计模式的描述中,正确的是( )

A. 将一个类设计为单例设计模式,在其他类中可以创建这个类对象

B. 将一个类设计为单例设计模式,必须私有其空参数构造方法,并且还不能定义有参数的构造方法

C. 将一个类设计为单例设计模式,需要定义一个静态的成员方法将本类创建的对象返回给调用者

D. 以上答案都不对 答案:B 解析:

考察点:第三章 面向对象(上) 题目难度:★★☆☆ 一般

28.当一个类中成员变量和局部变量重名时,可以使用哪个关键字进行区分( )

A. super B. this C. public D. true 答案:B 解析:

考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易

29.下列关键字中,用于创建类的实例对象的是( )。

A. class B. new C. private D. void 答案:B

解析:Java中使用new关键字创建对象,class用于定义一个类,private是权限修饰符,表

示表示只能在本类中访问,void表示无返回值 考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易

30.下列关于类和对象的描述,错误的是( ) A. 对象是类的实例

B. 一个类只能有一个实例化对象 C. 类是对象的抽象

D. 类用于描述一组对象的共同特征和行为 答案:B

解析:类是对象的模板,对象是类的实例,一个类可以创建多个对象。 考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易

31.以下代码执行后的结果是:( ) public class Person {

String name = “小芳”;

public Person(String name) { name = “小兰”; }

public void show() {

this.name = “小翠”; }

public static void main(String[] args) { Person p = new Person(“小凤”); System.out.print(p.name); p.show();

System.out.print(p.name); } }

A. 小兰小翠 B. 小凤小翠 C. 小芳小翠

D. 程序编译失败 答案:C 解析:

考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易

32.下列关于静态方法的描述中,错误的是( )。

A. 静态方法属于类的共享成员

B. 静态方法是通过\类名.方法名\的方式来调用 C. 静态方法只能被类调用,不能被对象调用 D. 静态方法中可以访问静态变量 答案:C 解析:

考察点:第三章 面向对象(上) 题目难度:★★☆☆ 一般

33.下列关于构造方法的描述,错误的是( )。 A、一个类中只能定义一个构造方法 B、一个类中可以定义多个构造方法

C、如果在一个类中定义有参的构造方法,jvm就不会提供默认的无参构造方法 D、构造方法的作用是用来给属性进行初始化的

A. 一个类中只能定义一个空参数的构造方法 B. 一个类中可以定义多个构造方法

C. 如果在一个类中定义有参的构造方法,jvm就不会提供默认的无参构造方法 D. 构造方法的作用是给属性初始化 答案:A 解析:

考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易

34.下列关于构造方法的描述中,错误的是( )

A. 构造方法的方法名必须和类名一致 B. 构造方法不能写返回值类型 C. 构造方法可以重载

D. 构造方法的访问权限必须和类的访问权限一致 答案:D 解析:

考察点:第三章 面向对象(上) 题目难度:★★☆☆ 一般

35.下面哪个关键字用于将类中的属性私有化( )

A. default B. public C. private D. protected 答案:C

解析:

考察点:第三章 面向对象(上) 题目难度:★☆☆☆ 容易

36.请阅读下面的程序,程序的运行结果是()。 class Person { String name; int age;

public Person() {}

public Person(String n, int a) { name = n; age = a; }

public void show() {

System.out.print(name + \\\ \\\ } }

public class Test {

public static void main(String[] args) { Person p1 = new Person(); p1.show();

Person p2 = new Person(\\\周星驰\\\ p2.show(); } }

A. null---0 周星驰---27 B. null---27 周星驰---27 C. 周星驰---0 null---27 D. 周星驰---27 null ---27 答案:A 解析:

考察点:第三章 面向对象(上) 题目难度:★★☆☆ 一般

37.下列修饰符中,哪个修饰内部类后,会使内部类会随着外部类的加载而加载。

A. static B. protected C. public D. private 答案:A

解析:内部类被static修饰后,会随着外部类的加载而加载。所以,可以把一个静态内部类