1、下列哪种不属于java的基本数据类型
A int
B float
C String
D char
答案:C
解析:String 是引用类型
2、设x = 5, 则 y = x++ 和 y = ++x 的结果, y的值分别是
A 5, 5
B 5, 6
C 6, 5
D 6, 6
答案: B
解析:++ 在前表示先计算后赋值, ++ 在后表示先赋值后计算
3、以下标识符中哪项是合法的
A @name
B %name
C _name
D 0name
答案:C
解析:标识符只能由数字 0-9、字母、_ 和 $ 符号组成,而且不能以数字开头,也不能与关键字和保留字同名
4、以下不是JRE的主要功能是?
A 加载代码
B 校验代码
C 开发代码
D 执行代码
答案:C
解析:JRE 是 java 运行时环境,主要功能不是开发代码,而是加载、校验和运行代码
5、在Hello.java文件中有如下代码:
class Demo01
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
class Demo02
{
}
在命令行执行javac Hello.java后,编译生成的class文件是
A Hello.class
B Demo01.class
C Demo02.class
D Demo01.class、Demo02.class
答案:D
解析:每一个类都会生成一个字节码文件,而不管类中是否为空
6、下面代码的输出结果是什么?
class Test {
public static void main(String[] args) {
int a = 3, b = 4;
int result = (++a)/3+(b--)*2-(a--)%6+(b++)*3-(b--);
System.out.println("result=" + result + ", a=" + a + ", b=" + b);
}
}
A result=11, a=3, b=3
B result=10, a=3, b=4
C result=11, a=4, b=3
D result=10, a=3, b=3
答案:D
解析:++ 或者 -- 在前,表示先运算再赋值;++ 或者 -- 在后表示先赋值再运算
7、Java 的跨平台机制是由什么实现的
A GC
B Java DE
C Html
D JVM
答案:D
解析:JVM是 java 虚拟机。java 之所以可以实现跨平台是因为有不同版本的 JVM 针对不同的操作系统
8、下面语句的输出结果是
class Test
{
public static void main(String[] args)
{
int x = 4;
System.out.println ("value is "+((x>4) ? 99.9 : 9));
}
}
A 输出结果为:value is 99.9
B 输出结果为:value is 9
C 输出结果为:value is 9.0
D 输出结果为:语法错误
答案:C
解析:因为三目运算符中有 double 类型的数据,这时候 java 内部自动将 int 类型的转换成 double 类型。
9、整型数据类型中,需要内存空间最少的是
A short
B long
C int
D byte
答案:D
解析:byte 占 1 个字节,short 占 2 个字节,int 占 4 个字节,long 占 8 个字节
10、下列代码执行的结果是
public static void main(String[] args)
{
short s1 = 1;
s1 = s1 + 1;
System.out.println(s1);
}
A 编译异常 无法运行
B 2
C 1
D Null
答案:A
解析:因为 s1 是 short 类型的,而 1 默认是 int 类型,这时候是高级类型向低级类型,需要手动强制转换。
11、下列程序段执行后,t5 的结果是:
int t1=5,t2=6,t3=7,t4,t5;
t4=t1
A 4
B 6
C 5
D 7
答案:C
解析:t4 = t1 是将 t1 的值赋给 t4 ,所以 t4 的值就为5
12、设x为int型变量,则执行以下语句段后,x的值为:
x=10;
x+=x-=x-x;
A 30
B 10
C 20
D 40
答案:C
解析:= 是赋值运算符,所以从后面开始算,然后把后面的值赋给前面的变量
13、分析如下Java程序段,程序编译运行结果是( )。
public class A {
public static void main(String[] args) {
int num=0;
switch(num){
default:
System.out.println("Default");
num++;
case 1:
System.out.println("num="+ num);
num+=2;
case 2:
System.out.println("num=" + ++num);
break;
case 3:
System.out.println("num="+ ++num);
break;
}
}
}
A 输出:Default; num=1 ; num=3
B 输出:Default
C 输出:Default ; num=1 ; num=4
D 程序编译出错
答案:C
解析:switch 具有穿透性。也就是说当与第一个 case 后面的值匹配之后若是没有碰到 break 或者右大括号 } ,那么就不再与下面的 case 匹配,而直接执行后面剩下的代码,直到碰到 break 或者右大括号 }。
14、下面哪一个操作符的优先级最高
A &&
B ||
C !
D ()
答案:D
解析:()的优先级最高,其次是 !、&、|
15、关于循环说法错误的是
A while 循环是先判断条件表达式是否为 true,如果为 true,则执行循环体
B do-while 则是先循环后判断,do-while 至少会循环一次
C for()括号中的分号可以一个也不要
D for 循环也是先判断再循环
答案:C
解析:for() 中的表达式可以省略,但是一个分号都不能省略
16、给出以下代码,请问该程序运行的结果是什么?
public class Check{
public static void main(String args[]){
byte b=10;
byte c=15;
b=(byte)(b^c);
System.out.println(“b contains ”+b);
}
}
A 打印输出b contains10
B 打印输出b contains 5
C 打印输出b contains 250
D 打印输出b contains 245
答案:B
解析:b 和 c 进行位与运算后,强转回 byte 类型。这里需要使用二进制进行计算
17、下面代码的输出结果是()
class Test
{
public static void main(String[] args)
{
int[] arr = {1, 3, 2, 5, 4};
change(arr);
print(arr);
}
public static void change(int[] arr)
{
for (int i = 0; i < arr.length - 1; i++){
for (int j = i + 1; j < arr.length; j++){
if (arr[i] > arr[j]){
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
}
public static void print(int[] arr)
{
for (int i = 0; i < arr.length; i++){
System.out.print(arr[i] + ",");
}
}
}
A 1,2,3,4,5
B 5,4,3,2,1
C 1,3,4,2,4
D 1,2,3,4,5
答案:D
解析:for()循环的嵌套,要逐层进行。
18、下面代码的输出结果是什么?
class Test {
public static void main(String[] args) {
int a = 3;
int b = 4;
if ((a>b&(a++)>b&&(--b)<a)|(b++)<=(a--)) {
System.out.println("判断结果为true, a=" + a + ",b=" + b);
} else {
System.out.println("判断结果为false, a=" + a + ",b=" + b);
}
}
}
A 判断结果为true, a=3,b=5
B 判断结果为true, a=3,b=4
C 判断结果为false, a=3,b=5
D 判断结果为false, a=4,b=4
答案:A
解析:++ 在前表示先计算后赋值, ++ 在后表示先赋值后计算
19.下面代码的输出结果是什么?
class Test {
public static void main(String args[]) {
int x = 9;
for (; x > 0; x--) {
if (x % 3 == 0) {
System.out.println(--x);
continue;
}
}
}
}
A 9、3、6
B 9、6、3
C 8、5、2
D 7、4、1
正确答案: C
解析:注意每次循环的时候x值得变化
20.下面代码的输出结果是什么?
class Test {
public static void main(String args[]) {
int i = 1, j = 10;
do {
if (i++ > --j)
continue;
} while (i < 5);
System.out.println(i);
System.out.println(j);
}
}
A 4、5
B 5、6
C 6、7
D 7、8
正确答案: B
解析:注意循环了多少次