Java面试题----选择题03

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

    int a = 1;
    int b = 10;
    do {
        b -= a;
        a++;
    } while (b-- < 0);
    System.out.print(b);

a.9
b.-2
c.-1
d.8

答案:D
难度等级:简单
解析:
这个do while循环就执行一次

2.请分析下列代码,如果要打印”Test 2”,则x的初始值可能为下列值中的哪些?

 if(x>4){
        System.out.println("Test 1");
 }else if (x<9){
    System.out.println("Test 2");
 }else {
    System.out.println("Test 3");
 }

a) 3
b) 4
c) 5
d) 10

答案:AB
难度等级:简单
解析:
根据题意,只要x的值小于等于4就可以

3.下列字符串中,哪些可以用作Java的变量名?

a) 3d_game
b) $game
c) _game
d) this

答案:BC
难度等级:简单
解析:
选项A 不能以数字开头
选项B 正确
选项C 正确
选项D this为java的关键字

4.变量 “result”是 boolean类型,下列那些表达式是合法的?

a) result=1;
b) result=true;
c) if(result=true){// do something…}
d) if(result){// do something…}

答案:BD
难度等级:简单
解析:
if的条件需要boolean类型数据,否者报语法错误

选项C 应该是双等号

5.己知int a=0x122,则a/2为0.6332的数据类型是()

A float
B double
C Float
D Double

答案:AB
难度等级:
解析:
数据以0x开头的是十六进制数 122的十六进制数换算成十进制数位256+32+2 结果为290
除以2的结果为整数,赋值给double和float皆可,属于自动转换
Float和Double属于封装类,无法直接赋值
Float b=new Float(1.2);Double b=new Double(1.2)这样做是可以得

6.以下程序片段

public class IFElse{
    public static void main(String args[]){
        if(odd(5))
            System.out.println("odd");
        else
            System.out.println("even");
    }
    public static int odd(int x){return x%2;}
}

A 编译错误
B 屏幕输出odd
C 屏幕输出even
D 抛出异常

答案:A
难度等级:简单
考查静态的用法
if的条件需要boolean类型
静态的方法只能访问静态的变量或静态方法,非静态的方法即可以访问静态的方法或静态的变量,也可以访问非静态的方法或非静态的变量
静态的变量或方法属于类而不属于对象,所以在访问范围允许的情况下,静态的变量或方法都可以通过类名访问。虽然可以通过对象来访问静态的变量或静态的方法,但不推荐。

7.以下程序片段

int i=1;
int j=10;
do{
    if(i++>--j)
    continue;
}while(i<5);

执行完毕后的i.j分别为:

A 6,5
B 5,6
C 5,5
D 5,7
E 以上皆错

答案:B
难度等级:
解析:
根据题意,变量i一直在加,变量j一直在减
变量i从一开始到5就会退出循环
i=1 ,j=10
i=2 ,j=9
i=3 ,j=8
i=4 ,j=7
i=5 ,j=6

8.下列变量定义错误的是()

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

答案:D
难度等级:简单
解析:
选项D float f=9.8f

9.表达式6+5%3+2的值是()

A 2
B 1
C 9
D 10

答案:D
难度等级:简单
解析:
算数运算符,先算乘除后算加减

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

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

答案:A
难度等级:
取一个int n=1234,代入计算即可

11.下列语句执行后,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也会执行

12.下列语句执行后,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 退出循环

13.下列哪个是合法的java标识符:(两个答案)

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

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

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

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

A 1
B 2
C 3
D 4

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

15.下面程序运行的结果是?()

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

16.方法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类型

17.下面的程序输出的结果是:()

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

A Equal
B Not Equal
C 编译错误
D 程序没有任何输出结果

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

18.在下面程序中,变量i可以使用的数据类型是:(两个答案)()

switch(i){
    default:
    System.out.plintln("Hello");
}

A char
B byte
C float 不行
D double 不行
E object

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

19.应用程序的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.plintln(y);

A 678
B 122
C -987
D 33

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

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

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

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

21.下列标识符不合法的有(多项)()

A new
B $Usdollars
C 1234
D car.taxi

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

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

22.下列说法错误的有(多项)()

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 数组的长度,在定义数组时,长度可以任意指定,但数组一旦定义完毕,数组的大小,也就是数组的长度就不可以改变了

23.Java的基本类型(如boolean char)存储在哪里(),普通的类(Class)存储在哪里()。

A 寄存器
B 堆栈
C 栈
D 方法区

答案:C D
难度等级:简单
解析:
java的基本数据类型是存储在栈中的
java的类定义是存储在方法区中的
java的对象是存储在堆中的

24.

int i=1,j=10;
do{
    if(i++>--j) continue;
}while(i<5);

根据以上代码回答问题:请问输出i和j的值是多少?()

A i=6 j=5
B i=5 j=5
C i=6 j=4
D i=5 j=6

答案:D
难度等级:
解析:
根据题意,变量i一直在加,变量j一直在减
变量i从一开始到5就会退出循环
i=1 ,j=10
i=2 ,j=9
i=3 ,j=8
i=4 ,j=7
i=5 ,j=6

25.请问Java的保留字?()

A run
B public
C import
D implements

答案:BCD
难度等级:简单
解析:
public,java的访问修饰符
import,java的类导入的关键字
implements,java的接口实现关键字

generated by haroopad

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小乔同学Online

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

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

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

打赏作者

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

抵扣说明:

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

余额充值