在线测试——JAVA入门与基本语法测试

一 单项选择题

1。下面不属于Java语言特点的是:( )
平台无关
面向对象
支持指针类型
垃圾回收机制
[参考答案] 支持指针类型
[我的答案] 支持指针类型

java不支持指针

2。int[] intArr=new int[10];
System.out.println(intArr[0])
上述语句执行结果是:
编译错误
会报运行错误
0
null
[参考答案] 0
[我的答案] 0

默认值为0

3。下面关于main方法声明正确的是( )。
private static void main(String args[ ])

4。Test.java程序代码如下:
public class Test{
public static void main(String[] args){
System.out.println(args[1]);
}
}
以上程序编译后用java Test 2 3 4 5运行的输出结果是什么? ( )
3

java Test 2 3 4 5 此命令是将2,3,4,5赋值给args数组

5。关于instanceof的说法错误的是:(有疑问)

A 它不能作为标识符名称出现
B 它用来表示某变量所指向的对象是否是另一种类型的实例
C Scanner sc=new Scanner(System.in);boolean b=sc instanceof String;用法是正确的
D Scanner sc=new Scanner(System.in);boolean b=sc instanceof Object;用法是正确的
[参考答案] Scanner sc=new Scanner(System.in);boolean b=sc instanceof String;用法是正确的
[我的答案] 它用来表示某变量所指向的对象是否是另一种类型的实例

二元运算符,左边为对象,右边为类

6。关于枚举类型,说法错误的是:D(有疑问)
A 实质是类类型
B 可以定义若干个常量,如颜色、星期、月份等。
C 可利用 类型名称.values()方法列出所有常量
D 其定义的位置可以在main方法中

枚举实质是类类型,其定义位置不可以main方法中

7。int[] arr1=new int[10];
arr1数组元素批量赋值(预设100)的方式中,错误的有:B

A: Arrays.fill(arr1,100); 
B: arr1.fill(100); 
C:for(int i=0;i<arr1.length;i++){ arr1[i]=100;}

a.fill(a, 100)

8。int[] intArr=new int[10];
System.out.println(intArr[10])
上述语句执行结果是:

编译错误
会报运行错误
0
null
[参考答案] 会报运行错误
[我的答案] 编译错误

编译错误 一般都是语法错误 (比如字母拼错等等,直接对显示)。运行时错误一般都是比如数组索引指向空值

9。下面说法错误的是:(不懂)

int i=1,j=1; System.out.print(i==j);输出结果为true
int i=100,j=100; System.out.print(i==j);输出结果为true
Integer i=100,j=100; System.out.print(i==j);输出结果为true
Integer i=1000,j=1000; System.out.print(i==j);输出结果为true
[参考答案] Integer i=1000,j=1000; System.out.print(i==j);输出结果为true
[我的答案] Integer i=100,j=100; System.out.print(i==j);输出结果为true

9。下面说法错误的是:B(疑问)

A:int a=20,b=30;double c=a/b;运算后c的值为0.0 //a,b为两个int型,先得到一个int型,再转向double
B:int a=5,b=10;float f=a/b;运算后f的值为0.5 //0.0
C:int a=10,b=4;float f=a/b;运算后f的值为2.0
D:double a=2.0%3; 是一个合法的赋值语句
[参考答案] int a=5,b=10;float f=a/b;运算后f的值为0.5
[我的答案] double a=2.0%3; 是一个合法的赋值语句

10。

某Java源文件代码如下:

public  class A
{
     int a;
 }

class B
{
   int b;
}

class C
{
   public static void main(String[] args)
   {
         System.out.print("HELLO!");

    }
}
该源文件经过编译后,如何执行?(        )

题目问的是编译后如何执行,应该执行main类。java C, 且不带.class

11。java中的类不可多继承

12。 关于封装类,下列说法错误的是:(学类后来看)

每种基本数据类型都有对应的封装类
封装类对于其基本数据类型,好处是可以提供丰富的信息和更丰富的功能
从基本数据类型到封装类类型不能自动转换
从封装类类型到基本数据类型能自动转换
[参考答案] 从基本数据类型到封装类类型不能自动转换

13。
int[] arr1=new int[10];
int[] arr2=new int[arr1.length];
System.out.println(arr1==arr2);
程序输出结果是:
true
false
[参考答案] false
[我的答案] true

a == b 数组名代表首地址

14。JAVA中的注释有几种?
//单行注释
/* 多行注释 */
/* 文档注释 /

注意还有文档注释!

15。switch-case语句与if语句相比,说法正确的是:

A:所有switch-case语句都可以用if语句进行改写 (疑问????)
B:所有if语句都可以用switch-case语句进行改写
C:switch-case语句用于等值判断
D:if语句可用于等值判断,也可用于区间判断,有时要用结构比较复杂的嵌套
[参考答案]
所有switch-case语句都可以用if语句进行改写
switch-case语句用于等值判断
if语句可用于等值判断,也可用于区间判断,有时要用结构比较复杂的嵌套

16。在Java中,每种基本数据类型都有对应的封装类。下面说法正确的是:(基本数据类型和对应的封装类之间关系)
A:Integer i1=100; 是基本数据类型的赋值
B:int i1=100; 是基本数据类型的赋值
C:Integer i1=100; int i2=i1; 变量i1和i2都是基本数据类型的变量,二者没有什么差别。
D:Integer i1=100; int i2=i1; 变量i1是引用类型变量,i2是基本类型变量。
E:Integer i1=100; int i2=i1; 语法错误。
[参考答案]
int i1=100; 是基本数据类型的赋值
Integer i1=100; int i2=i1; 变量i1是引用类型变量,i2是基本类型变量。

17。Java中,以下说法正确的是:AC(有疑问)
A:int a=20;a++;a的值是21 //不管先执行还是先加减,a肯定最后是21
B:int a=20;int b=a++;b的值是21 //先执行,再加减。所以先执行b = a,b = 20,之后a+1,a = 21
C:int a=20;int b=++a;b的值是21 //a先+1,再执行赋值给b
D:int a=3++; a的值是3 //???为什么不对???
[参考答案]
int a=20;a++;a的值是21
int a=20;int b=++a;b的值是21
[我的答案]
int a=3++; a的值是3
int a=20;int b=++a;b的值是21

18。下列赋值哪项是不正确的?(有疑问)

float f=12.34; //默认为double类型,不能自动转化
byte b=23; //???
float f1=100;
long l=23.3; //不能转化
float f2=100L;
char ch=100; // ???为什么对???

[参考答案]
float f=12.34;
long l=23.3;

19。

在JDK1.8中,使用如下语句是否正确?
String str="*******";
switch(str)
{
case "abc":
//...
break;
case "def":
//.....
break;
}

正确??疑问是case后面加不加“”??

20。Java基本数据类型的变量所占存储空间大小是固定的与平台无关。这样方便程序的移植。
正确

21。在Java中,局部变量定义后,未赋初值的情况下,可以输出其值。
错误。疑问?????局部变量???

你可能感兴趣的:(Java基础知识+OJ题目)