java面试题----选择题02

1、 下列说法错误的有( )

A、数组是一种对象
B、数组属于一种原生类
C、int number = {12,45,56,32,94};
D、数组大小可以任意改变

答案:BCD
难度等级:简单
解析:

选项A 数组在java中可以看作是对象
选项B java的原生类可以理解为java的8中基本数据类型对应的8个封装类,而数组的类型并不局限这8个基本数据类型的封装类
选项C 应为int[] number={12,45,56,32,94};
选项D 数组的长度,在定义数组时,长度可以任意指定,但数组一旦定义完毕,数组的大小,也就是数组的长度就不可以改变了

2、 下列标识符不合法的有( )

A、new
B、&后加字母单词
C、1234
D、cat.taxi

答案:ACD
难度等级:简单
解析:
java 标识符可以是 字母、数字、$、_(下划线),但不可用数字开头
不可以是java 的关键字

选项A new是java的关键字
选项B 正确
选项C 标识符不能以数字开头
现象D 标识符中不能有.

3.java语言的特点描述错误的()

A java是面向对象的
B java支持多线程
C 跨平台
D java支持多继承

答案:D
难度等级:简单
解析:
java不支持多继承,但支持多实现

4.下列说法正确的有( )

A.环境变量可在编译source code时指定
B. 在编译程序时,所能指定的环境变量不包括class path
C. javac一次可同时编译数个Java源文件
D. javac.exe能指定编译结果要置于哪个目录(directory)

答案:BCD
难度等级:简单
解析:
环境变量是在编译前就需要设定
设定环境变量分为2个步骤
一个是在path中配置javahome/bin 用于找到javac和java命令
一个是在classpath中配置javahome/lib 用于在通过java命令执行字节码文件时要使用的类库

5.下列标识符不合法的有()

A.new
B.$Usdollars
C.1234
D.car.taxi

答案:ACD
难度等级:简单
解析:
java 标识符可以是 字母、数字、$、_(下划线),但不可用数字开头
不可以是java 的关键字

选项A new是java的关键字
选项B 正确
选项C 标识符不能以数字开头
现象D 标识符中不能有.

6.下列说法错误的有( )

A. 数组是一种对象
B. 数组属于一种原生类
C. int number=[]={31,23,33,43,35,63}
D. 数组的大小可以任意改变

答案:BCD
难度等级:简单
解析:

选项A 数组在java中可以看作是对象
选项B java的原生类可以理解为java的8中基本数据类型对应的8个封装类,而数组的类型并不局限这8个基本数据类型的封装类
选项C 应为int[] number={12,45,56,32,94};
选项D 数组的长度,在定义数组时,长度可以任意指定,但数组一旦定义完毕,数组的大小,也就是数组的长度就不可以改变了

7、下列变量定义错误的是 ( )

A.int a;
B.double b=4.5;
C.boolean b=true;
D.float f=9.8;

答案:D
难度等级:简单

选项D float f=9.8f;或float f=9.8F;
如果浮点型数据后面没有指定D或F,那么默认为D,即double类型的浮点数

8、6+5%3+2的值是 ( )

A.2
B.1
C.9
D.10
答案:D
难度等级:简单
算数运算符的优先级为,先乘除后加减,所以先算5%3的结果,即求余数为2

9、对于一个三位的正整数 n,取出它的十位数字k(k为整型)的表达式是 ( )

A.k = n / 10 % 10
B.k = ( n - n / 100 * 100 )%10
C.k = n % 10
D.k = n / 10

答案:A
难度等级:简单
解析:
设定n为1234,分别代入公式即可

10、下列语句序列执行后,k 的值是 ( )

  int  x=6, y=10, k=5;
  switch( x % y )
  {
       case 0:  k=x*y;
       case 6:  k=x/y;
       case 12:  k=x-y;
       default:  k=x*y-x;
  }

A.60
B.5
C.0
D.54

答案:D
难度等级:简单
解析:
switch分支结构如果在case的语句体中添加break;语句,那么只要找到对应的case 的常量,就执行对应case常量后的语句,如果没有break语句就继续执行后面所有case 后的语句
如果最后有default也会执行。

11、下列语句序列执行后,i的值是:( )

int  i = 10;
do {  i/=2; } while( i-- > 1 );

A.1
B.5
C.2
D.-1

答案:D
难度等级:简单
解析:
当i=10时,i=i/2 i=5 5>1为true --后 i为4
当i=4时,i=i/2 i=2 2>1为true --后 i为1
当i=1时,i=i/2 i=0 0>1为false --后 i为-1 退出循环

12、下列哪个是合法的Java标识符: ( )

A.Tree&Glasses
B.FirstJavaApplet
C._$theLastOne
D.273.5

答案:ABC
难度等级:简单
解析:
java 标识符可以是 字母、数字、$、_(下划线),但不可用数字开头
不可以是java 的关键字

选项D 标识符不能以数字开头

13、设 a = 8,则表达式 a >>> 2 的值是:C (无符号右移动)左移是乘 右是除( )

A.1
B.2
C.3
D.4

答案:B
难度等级:
解析:
Java中的位运算符:
>>表示右移,如果该数为正,则高位补0,若为负数,则高位补1;
>>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。

14、下面程序运行的结果是? ( )

public class X {
   private static int a;
   public static void main(String [] args) {
      modify(a);
      System.out.println(a);
   }
   public static void modify(int a) {
     a++;
   }
   }

A.0
B.1
C.程序编译失败
D.程序抛出异常

答案:A
难度等级:简单
解析:
private static int a;没赋初值,默认为0
把0值传递给modify方法,方法的参数为 int a,相当于又在内存中开辟了一个新的空间
在modify方法中给a值加一操作,改动的是新空间的值,而原空间的值还是0
所以结果为0

15、方法methodA返回类型是:( )

public class returnIt{
     returnType methodA(byte x, double y) {
         return (short) x/y * 2;
  }
}

A.int
B.byte
C.long
D.double

答案:D
难度等级:简单
解析:
表达式中有double,结果自然就是double类型

16、下面的程序输出的结果是:( )

public class IfTest {
  public static void main(string[]args) {
         int x = 3;
         int y = 1;
         if (x = y){
             System.out.println(“Not equal”);
         }else
             System.out.println(“Equal”);
     }
}

A.Equal
B.Not Equal
C.编译失败
D.程序没有任何输出结果

答案:C
难度等级:简单
if (x = y)语法错误,无法编译通过,if需要一个boolean类型数据

17、在下面程序中,变量i可以使用的数据类型是: ( )

 switch (i) {
    default:
    System.out.println(“Hello”);
}

A.char
B.byte
C.float
D.double
E.object

答案:AB
难度等级:简单
解析:
switch分支结构可以接收的数据是
jdk1.6 byte类型,char类型,int类型
jdk1.7及以上 byte类型,char类型,int类型,String类型

18、应用程序的main方法中有以下语句,则输出的结果是:( )

int[]  x={122,33,55,678,-987};
int  y=x[0];
for(int i=1;i<x.length;i++){
    if(x[i]>y)
    y =x[i];
}
System.out.println(y);

A.678
B.122
C.-987
D.33

答案:A
难度等级:简单
解析:
此段程序求数组中的数组元素的最大值

19.下列说法正确的有( )

A.环境变量可在编译source code时指定
B.在编译程序时,所能指定的环境变量不包括class path
C.javac一次可同时编译数个Java源文件
D.javac.exe能指定编译结果要置于哪个目录(directory)

答案:BCD
难度等级:简单
解析:
环境变量是在编译前就需要设定
设定环境变量分为2个步骤
一个是在path中配置javahome/bin 用于找到javac和java命令
一个是在classpath中配置javahome/lib 用于在通过java命令执行字节码文件时要使用的类库

20.下列标识符不合法的有( )

A.new
B.$Usdollars
C.1234
D.car.taxi

答案:C
难度等级:简单
解析:
java 标识符可以是 字母、数字、$、_(下划线),但不可用数字开头
不可以是java 的关键字

选项C 标识符不能以数字开头

21.下列说法错误的有( )

A.数组是一种对象
B.数组属于一种原生类
C.int number={31,23,33,43,35,63}
D.数组的大小可以任意改变

答案:BCD
难度等级:简单
解析:

选项A 数组在java中可以看作是对象
选项B java的原生类可以理解为java的8中基本数据类型对应的8个封装类,而数组的类型并不局限这8个基本数据类型的封装类
选项C 应为int[] number={12,45,56,32,94};
选项D 数组的长度,在定义数组时,长度可以任意指定,但数组一旦定义完毕,数组的大小,也就是数组的长度就不可以改变了

22.下列说法中,不正确的是_

A.一个java源程序经过编译后,得到的文件的扩展名一定是.class
B.一个java源程序编译通过后,得到的结果文件数也只有一个
C.一个java源程序只能有一个public class类定义,且源文件的名字与public class的类名相同,扩展名必须是.java
D.一个java源程序可以包含多个class类

答案:B
难度等级:简单
解析:
一般情况下一个Java文件代表一个类,在编译时会产生一个字节码.class文件。
但是在Java中 一个源文件中可以包含多个类,但是只能有一个public类,其他的都成为内部类,这时编译时会生成多个字节码文件。一个是那个public类也是该源文件名对应的.class 另一个就是public类名$内部类名.class

23.请分析下列代码,编译时那些语句会报错 ?

1     int x = 12;
2     {
3             int q = 96;
4             int x = 96;
5     }
6     q = 12;
7     x = 96;

a.第4、7行
b.第4、6行
c.第4行
d.第6行

答案:B
难度等级:
解析:
2行到5行为java的代码块,在代码块中定义的变量在代码块外面是无法访问到的
6行代码报错q cannot be resolved to a variable 无法识别q变量
4行代码报错Duplicate local variable x 本地变量x重复定义

23.Java对象是在下列哪个存储区域中创建的?

a.寄存器
b.堆栈
c.堆(heap)
d.静态存储

答案:C
难度等级:简单
解析:
java中对象是出现在堆内存中

24.请分析下列代码,编译时那些语句会报错()?

1     int x = 12;
2     {
3             int q = 96;
4             int x = 96;
5     }
6     q = 12;
7     x = 96;

a.第4、7行
b.第4、6行
c.第4行
d.第6行

答案:B
难度等级:
解析:
2行到5行为java的代码块,在代码块中定义的变量在代码块外面是无法访问到的
6行代码报错q cannot be resolved to a variable 无法识别q变量
4行代码报错Duplicate local variable x 本地变量x重复定义

25.请分析下列代码,确定打印结果是什么?

 for (int i = 0; i < 10; i++) {
        if (i % 3 == 2) {
            continue; 
        }
        if (i % 2 == 0) {
            System.out.print(i);
        }
    }

a.248
b.268
c.046
d.02468

答案:C
难度等级:简单
解析:
只有i是偶数的时候能输出,分别把0、2、4、6、8代入即可,刨除2、8,因为符合i % 3 == 2个条件

generated by haroopad

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小乔同学Online

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值