一、单选题
1. Java 语言是一种( ) 语言 。(选择一项)
A.机器
B.汇编
C.面向过程的
D.面向对象的
解析:B
D ; Java语言是一种面向对象的语言,与其他面向对象语言相比,Java利用面向对象技术更彻底,它把所有的Java应用和Applet都看作对象。
2.java 程序的执行过程中用到一套 JDK 工具,其中 javac.exe 指( )。(选择一项)
A.java 语言编译器
B.java 字节码编译器
C.java 文档生成器
D.java 类分解器
解析:A
B;javac.exe将java源文件编译成字节码文件,而java.exe是解释运行字节码文件解释器或运行工具
3.下面关于 JVM 的说法中不正确的是( )。(选择一项)
A.JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,JVM 是一种用于计算设备的规范
B.JVM 是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
C.Java 之所以能够跨平台是因为 JVM 是跨平台的。
D.Java 虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行
解析:B
C;不同的系统下有不同的JVM(JVM是C语言写的),所以JVM不是跨平台的。
JAVA依赖于JVM,JVM给JAVA提供了运行环境,所以JAVA是跨平台的。
4. JDK 是( )。(选择一项)
A.一种全新的程序语言
B.一种程序开发辅助工具
C.一种由 Java 写成的,并支持 Java Applet 的浏览器
D.一种游戏软件
解析:B;
5. Java 语言具有许多优点和特点,下列选项中,哪个反映了 Java 程序并行机制的特点( )。
(选择一项)
A. 安全性
B. 多线程
C. 跨平台
D. 可移植
解析:C
B;安全性是指Java执行多层安全机制,以提供足够的安全保障的特点;跨平台和可移植是指Java一次编写到处运行;多线程反映了Java程序可同时执行多个任务的并行机制特点。
6. 如果 jdk 的安装路径为:c:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用
javac 和 java 命令,需要将环境变量 path 设置为以下哪个选项( )。(选择一项)
A.c:\jdk;
B.c:\jdk\bin;
C.c:\jre\bin;
D.c:\jre;
解析:C
B;path环境必须设为javac.exe和java.exe的上一级目录bin
7. 以下不是 java 关键字的有( )。(选择一项)
A.super B.this C.class D.tree
解析:D;
8. 以下能作为 char 类型的字面值的有( )。(选择一项)
A. “e” B. ’ f’ C.‘123’ D.’\u0012’
解析:D;
A:双引号表示字符串
B:注意此处f前面有一个空格,当仅有f一个字符的时候用单引号编译是可以通过的
C:123是三个字符,属于字符串,用双引号可以编译
9. java 程序中程序运行入口方法 main 的声明正确的是( )。(选择一项)。
A.public static void main(String[] args)
B.static public void main(String args)
C.public void static main(String[] args)
D.public void main(String args[])
解析:A;
10. 以下关于变量的说法错误的是?( )(选择一项)
A.变量名必须是一个有效的标识符
B.变量在定义时可以没有初始值
C.变量一旦被定义,在程序中的任何位置都可以被访问
D.在程序中,可以将一个 byte 类型的值赋给一个 int 类型的变量,不需要特殊声明
解析:C;
要看它的作用域,如果是全局变量,则全局(任何位置)都可访问,如果是局部变量,则只能在它的作用域(函数或过程内部)中才能生效。
11. 以下( )不是合法的变量名。(选择一项)
A.STRING_
B.x3x
C.void
D.de$f
解析:C;
void是关键词
12. 在 Java 中,不属于整数类型变量的是( ) 。(选择一项)
A.double B.long C.int D.Byte
解析:A;
double是浮点型变量
13.下面哪种注释方法能够支持 javadoc 命令( )。(选择一项)
A./…/
B./…/
C.//
D./**…*/
解析:D;
以“//”开始的是单行注释语句,以“/”开始、“/”结束的是C语言风格的注释语句,在“/…*/”内的文档注释是自由形式的文本,支持javadoe命令,被javadoc处理,可以建立类的一个外部说明性文件。**
14. Java 源文件和编译后的文件扩展名分别为( ) 。(选择一项)
A..class 和 .java
B..java 和 .class
C..class 和 .class
D..java 和 .java
解析:B;
java源文件扩展名是.java。
java编译后的文件扩展名是.class。
我们编好的Java源程序保存为.java后缀,然后再用javac(Java语言的编译器)进行编译,生成后缀名为.class的字节码文件,保存在和源程序一致的目录下,如源代码有错误,会报告错误,按行指出错误,我们按报告查找并修改错误,重新进行编译,直至生成.class字节码文件为止。
15.下列运算结果默认为 float 的是( )。(选择一项)
A.100/10
B.100*10
C.100F+10
D.100D-10
解析:C;
AB默认为整型int ; D默认为double型
16.用 8 位无符号二进制数能表示的最大十进制数为 ( )(选择一项)
A.127
B.128
C.255
D.256
解析:D
C;最大的8位无符号二进制数是11111111,与之对应的十进制数是1X27+1X26+1X25+1X24+1X23+lX22+1 X21+1X20=255
17.下列数据类型进行运算时,哪一个会发生自动类型提升( )(选择一项)
A.int + int
B.long + long
C.byte + byte
D.double + double
解析:C;byte型的变量在运算期间类型会自动提升为int型
18.下面的语句中,错误的是( )(选择一项)
A.||表示的是逻辑或
B.&&表示的是逻辑与
C.& 表示的是按位与
D.&和&&使用的时候没有任何差别
解析:D;
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,
&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。
19.表达式(11+3*8)/4%3 的值是( ) (选择一项)
A.31
B.0
C.1
D.2
解析:D;先算()里的
下表为运算符优先级
20.已知 i 为整形变量,关于一元运算 ++i和 i++,下列说法正确的是( )(选择一项)
A.++i 运算将出错
B.在任何情况下运行程序结果都一样
C.在任何情况下运行程序结果都不一样
D.在任何情况下变量 i 的值都增 1
解析:D;
++i 与 i++ 都表示自增,前者表示先自增再取值;后者表示先取值再自增 无论什么情况 i的值都增加1
21.为一个 boolean 类型变量赋值时,可以使用的方式是( )(选择一项)
A.boolean a = 1;
B.boolean a =(9>10);
C.boolean a =”真”;
D.boolean a == false;
解析:B;boolean即java中的基本类型——布尔类型,值只有true和false两种。
A是对int类型的赋值方式。
B中(9>=10)的值是false,因为有关系运算符是用来比较运算,结果只有对(true)与错(false)两种,是boolean类型,所以B正确
C的赋值方式根本不对,既不符合char类型,也不符合String类型
D中 == 是关系运算符,不能用来赋值,如果 == 改成“=”就是正确的
故选B。
22.分析下面的代码,输出正确的是( )(选择一项)
public class Test {
public static void main(String[ ] args) {
double d = 84.54;
d++;
int c = d/2;
}
}
A.42
B.编译错误,更改为 int c = (int)d/2;
C.43
D.编译错误,更改为 int c = int(d)/2;
解析:B;
d是double类型 , double类型给int类型赋值时,要使用 (int)的方式进行强制转换。
23.下面程序的执行结果是( )(选择一项)
public class Test {
public static void main(String[ ] args) {
int x=3,y=4;
x=(y<x++)?1:0;
System.out.println(x);
}
}
A.3
B.4
C.5
D.0
解析 :D;
三目运算符结果为flase x = 0
24. 下面程序的执行结果是( )(选择一项)
public class Test {
public static void main(String[ ] args) {
int i=10,j=10;
System.out.println(++i+”,”+j--);
} }
A.10,10
B.11,9
C.11,10
D.10,10
解析:C;
++i 表示先自增再取值,输出i = 11;
j-- 表示先取值再自减,虽然 j = 9 了,但是输出为 j= 10;
25.下面程序的执行结果是( )(选择一项)
public class Test {
public static void main(String[ ] args) {
float a = 4.0f,b=6.0f,c=8.0f;
String s = “10.0”; 4
System.out.