Java面试题----选择题04

1.下列程序

class Test{
    public static void main(String[] args){
        doSomething(1);
        doSomething(1,2);
    }
    //insert code here
}

在程序中插入下列哪一行代码可以编译通过:

A static void doSomething(int[] args){}
B static void doSomething(int… args){}
C static coid doSomething(int…args,int x){}
D static void doSomething(int x,int…args){}

答案:BD
难度等级:
解析:
根据题意,方法名称不变,参数的个数可变,解决方案是用可变数组
类型…类型名称 比如:int… args
可变数组其本质是一个数组,且必须放在方法参数的最后一个位置,可以接受零个或多个参数,在方法中使用数组方式来访问,比如:args[0] args[1]…..

选项A 在调用方法时必须传递数组参数
选项B 正确
选项C 可变数组必须放在方法参数的最后
选项D 正确

2.下列哪几种声明是合法的?

A int $x;
B int _123;
C int #y;
D short[] z[][];
E short[6] w;

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

3.下面的代码中,执行之后i和j的值是什么?()

int i=1;
int j;
j=i++;

A 1,1
B 1,2
C 2,1
D 2,2

答案:C
难度等级:简单
解析:
此题考查变量的定义和数据初始化
i++相当于i=i+1;
i--相当于i=i-1
i++ 运算符放在变量的后面,先用i值后加1,比如int j=i++;如果i的初值是1,那么j的值就是1,而这句话执行完毕后,i的值就变成了2。

++i 运算符放在变量的后面,先加1后用i值,比如int j=++i;如果i的初值是1,那么j的值就是2,而这句话执行完毕后,i的值就变成了2.

4.已知如下代码:()

boolean m=true;
if(m==false)
System.out.plintln("False");
else
System.out.plintln("True");

执行结果是什么?

A False
B True
C None
D An error will occur when running

答案:B
难度等级:简单
解析:
boolean类型的数据也可以用==运算符来判断是否相等
另外if或else的代码体没有左右大括号的话,那么离if或else关键字最近的第一条语句就是对应的代码体。
也可以这样写:

    boolean m=true;
    if(m)
    System.out.plintln("True");
    else
    System.out.plintln("False");

5.以下哪个约束符可以定义成员常量?()

A static
B fianl
C abstract
D No modifier can be used

答案:AB
难度等级:简单
选项AB都可以修饰在成员变量上
选项C能修饰在类上或方法上

6.执行如下程序代码后,C的值是()

int a=0;
int c=0;
do{
    --c;
    a=a-1;
}while(a>0);

A 0
B 1
C -1
D 死循环

答案:C
难度等级:简单
解析:
就执行了一次循环,循环就终止了

7.以下哪个表达式不合法的()

A String x=”hello”;int y=9;x+=y;
B String x=”Hello”; int y=9;if(x==y){}
C String x=”Hello”;int y=9;x=x+y;
D String x=null;int y=(x!=null)&&(x.length()>0)

答案:BD
难度等级:简单
解析:
选项AC 正确,字符串+数字,结果就是字符串
选项B 语法错误,整型和字符串类型无法判等
选项D 语法错误,布尔类型的数据不能赋值给整形数据y

8.阅读以下程序段

public class Test{
    public static void main(String[] args){
        String foo=args[1];
        String bar=args[2];
        String baz=args[3];
    }
}

在“命令提示符”下运行:java Test Red Green Blue变量baz的值是多少?

A “ “
B null
C “red”
D “Blue”
E “Green”
F 编译错误
G 抛出异常

答案:G
难度等级:简单
解析:
执行时抛出数组下标越界异常。
命令行执行java的字节码文件,
java是命令
Test是字节码文件的名称
Red Green Blue是执行Test字节码文件的参数,各个参数中间用空格间隔,
字符串”Red“是对应main方法的参数数组args[0]
字符串”Green“是对应main方法的参数数组args[1]
字符串”Blue“是对应main方法的参数数组args[2]

9 以下选项哪些属于Java保留字?()

A run
B default
C implement
D import

答案:BD
难度等级:简单
解析:
default是switch分支结构中的默认选项关键字
implements是实现接口的关键字
import是导入类的关键字

10.阅读以下类,程序输出的结果是()

1.public class test{
    2.private static int j=0;
    3.
    4.private static boolean methodB(int k){
        5.j+=k;
        6.return true;
    }
    8.public static void methodA(int i){
        9.boolean b;
        10.b=i<10|methodB(4);
        11.b=i<10||methodB(8);
    12.}
    13.
    14.public static void main(String[] args){
        15.methodA(0);
        16.System.out.plintln(j);
    }
}

A The program prints “0”
B The program prints “4”
C The program prints “8”
D The program prints “12”
E The code does not complete

答案:B
难度等级:
解析:
此题考查的是或跟短路或
或运算符 | 两边的的表达式都需要判断
短路或运算符 || 左边的表达式为真值,右边的表达式就不用判断了。
第10行代码的methodB(4)执行了
第11行代码的methodB(8)没有执行
所以j的值为4

11.下列叙述中,正确的是()

A Java语言的标识符是区分大小写的
B 源文件名与public类名可以不相同
C 源文件名其扩展名为.jar
D 源文件中public类的数目不同

答案:A
难度等级:简单
解析:
java的原文件的名称必须跟公有类的名称一致,且一个源文件中只有一个公有类,源文件的扩展名是.java

12.在Java中,用package语句说明一个包时,该包的层次结构必须是()

A 与文件的结构相同
B 与文件目录的层次相同
C 与文件类型相同
D 与文件大小相同

答案:B
难度等级:简单
解析:
java中package的定义,就是对应的文件夹或目录的层次

13.请问下列哪些描述是正确的()

A UTF字符是8位编码
B UTF字符是16位编码
C UTF字符是24位编码
D Unicode字符是16位编码
E 以上均不对

答案:E
难度等级:
解析:
Unicode当然是一个很大的集合,现在的规模可以容纳100多万个符号.
Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。
互联网的普及,强烈要求出现一种统一的编码方式。UTF-8就是在互联网上使用最广的一种Unicode的实现方式。其他实现方式还包括UTF-16(字符用两个字节或四个字节表示)和UTF-32(字符用四个字节表示),不过在互联网上基本不用。重复一遍,这里的关系是,UTF-8是Unicode的实现方式之一。
UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。

14.给出以下代码,请问该程序的运行结果是什么?(

public class Example{
    public static viod mai(String[] args){
        int m=2;
        int p=1;
        int t=0;
        for(;p<5;p++){
            if(t++>m){
                m=p+t;
            }
        }
        System.out.plintln("t equals" +t);
    }
}

请选择一个正确答案:

A t equals 2
B t equals 4
C t equals 6
D t equals 7

答案:B
难度等级:
解析:
当 p=1 1<5 true 0>2 false t=1 p=2
当 p=2 2<5 true 1>2 false t=2 p=3
当 p=3 3<5 true 2>2 false t=3 p=4
当 p=4 4<5 true 3>2 ture t=4 m=8 p=5
当 p=5 5<5 false 输出t的值为4

15.请问,以下哪些是初始化数组的正确形式()

A int x[]={1,2,3};
B int[] x[]={{1,2,3},{1,2,3}};
C int x[3]={1,2,3};
D int []x={0,0,0};
E char c[]={‘a’,’c’,’c’};

答案:ABDE
难度等级:
解析:
选项ADE 方括号可以放在类型的面和变量的后面皆可,推荐放在类型的后面
选项B 实际上是一个二维数组,但不推荐这样写,推荐的写法是
int[][] x={{1,2,3},{1,2,3}};

选项C [3] 中不能指定数字

16.给出下面的代码:

public class Person{
    int arr[]=new int[10];
    public static void main(String[] args){
        System.out.plintln(arr[1]);
    }
}

哪些叙述是对的()

A 编译时出错
B 编译时正确而运行时出错
C 输出 0
D 输出null

答案:A
难度等级:简单
解析:
main方法是静态的方法,静态的方法只能访问静态的数据,整型数组arr不是静态的定义

17一个算法应该是()

A 程序
B 问题求解步骤的描述
C 要满足五个基本属性
D A和C

答案:AB
难度等级:简单
解析:
算法就是问题求解步骤的描述,可以用各种计算机语言描述,可以是一个程序,也可以是一个程序中的算法

18.从一个长度为n的顺序表中删除第i个元素(1<=i<=n)时,需向前移动的元素的个数是()

A n-i
B n-i+1
C n-i-1
D i

答案:A
难度等级:简单
解析:
就是把i这个位置往后的所有元素顺序往前移动一个位置

19.计算机的软件系统一般分为()两大部分

A 系统软件和应用软件
B 操作系统和计算机语言
C 程序和数据
D DOS和WINDOWS

答案:A
难度等级:简单
解析:
软件的分类系统软件和应用软件

20.以下哪个不是Java的基本数据类型()

A Boolean
B long
C void
D String

答案:ACD
难度等级:简单
解析:
java的原始数据类型,也可以叫java的基本数据类型,一共就8个,分别是:byte、short、int、long、boolean、char、float、double

21下列程序执行后,t5的结果是()

int t1=5,t2=6,t3=7,t4,t5;
t4=t1<t2?t1:t2;
t5=t4<t3?t4:t3;

A 7
B 5
C 6

答案:B
难度等级:简单
解析:
此题考查三元运算符
(条件表达式)?表达式1:表达式2;
运算规则:
a) 判断条件表达式,结果为一个布尔值。
b) true,运算结果为表达式1
c) false,运算结果为表达式2

22.编译一个定义了5个类和18个方法的Java源文件。请问,当编译该源文件时会产生多少字节码文件,扩展名是什么。

A 23个字节码文件,扩展名为.class
B 1个字节码文件,扩展名为.class
C 5个字节码文件,扩展名为.java
D 5个字节码文件,扩展名为.class

答案:D
难度等级:简单
解析:
有多少个类就有多少个字节码文件

23.下面哪个不是Java关键字?()

A instanceof
B double
C then
D default

答案:
难度等级:
解析:
java中没有then的关键字

24.使用哪个关键字,使得只有在定义该类的包中的其他类才能访问该类?

A 不使用关键字
B private
C final
D protected

答案:A
难度等级:简单
解析:
java的四个访问修饰符:
访问权限    类    包    子类   其他包
public       ∨     ∨     ∨      ∨
protect      ∨     ∨      ∨      ×
default      ∨     ∨      ×       ×
private      ∨      ×      ×       ×

25.表达式11|2的值应该是:

A 2
B 9
C 10
D 11

答案:D
难度等级:简单
解析:
11的二进制是1011
2 的二进制是0010
按位或运算的结果就是11

generated by haroopad

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小乔同学Online

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

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

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

打赏作者

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

抵扣说明:

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

余额充值