一、Java基础知识
1. 下面几个标识符中,哪些是命名正确的 (A)
-
选项
- A. ILoveJava
- B. static
- C. learn@java
- D. 2tigers
-
正确答案:A
-
解析:
- 标识符的命名规则:
- 只能由字母、数字、下划线(_)和美元符号($)组成。
- 第一个字符不能是数字。
- 不能使用 Java 的关键字作为标识符。
- 选项分析:
- A. ILoveJava 符合命名规则。
- B. static 是 Java 的关键字,不能作为标识符。
- C. learn@java 包含非法字符 "@"。
- D. 2tigers 第一个字符是数字,不符合规则。
- 标识符的命名规则:
2. 分析以下代码,哪些是合法的 (C)
-
选项
- A. while(int i=1;i<1;i++){}
- B. for(int i=1;i++; i<10){}
- C. int n=3;
- D. int n=2;
if(n%3==0){ if(n=2){}
System.out.println("n="+n);
}
-
正确答案:C
-
解析:
- 选项分析:
- A. while(int i=1;i<1;i++){} 错误,while循环的条件判断语句中不能进行变量的定义。
- B. for(int i=1;i++; i<10){} 错误,for循环中的第二部分是更新变量,应该写成 "i++" 或 "i=i+1"。
- C. int n=3; 合法,定义一个 int 型变量 n 并赋值为 3。
- D. int n=2;
if(n%3==0){
System.out.println("n="+n);
}
错误,if(n=2){},if语句的判断条件应该是布尔值,而 "n=2" 是赋值语句,它返回值是 2,不是布尔值。
- 选项分析:
3. 以下代码的执行结果是( B )
- 选项
boolean m = true;
if(m = false){
System.out.println("false");
}else{
System.out.println("true");
}
-
正确答案:B(输出“true”)
-
解析:
- 代码中使用赋值语句
m = false
作为if
语句的判断条件。在 Java 中,赋值运算符 "=" 的返回值是赋值的值,即false
。因此,if
语句判断条件为false
,所以进入else
代码块,输出 "true"。
- 代码中使用赋值语句
4. 下面哪个不是java中的关键字?( B )
-
选项
- A. public
- B. STATIC
- C. class
- D. package
-
正确答案:B
-
解析:
- Java 中的关键字是预留的词语,不能用作标识符。
- 选项分析:
- A. public 是 Java 的关键字,用来修饰类、方法和变量的访问权限。
- B. STATIC 不是 Java 的关键字,应该写成 static。
- C. class 是 Java 的关键字,用来定义类。
- D. package 是 Java 的关键字,用来声明包。
5. 下面对数组 int[] a={1,7,8,9}; 的描述不正确的是( D )
-
选项
- A. 数组的下标是 从 0 开始
- B. 数组的内存空间是连续的
- C. 通过 a[2] 访问的结果 为 8
- D. 数组 a 中的最大下标是 4
-
正确答案:D
-
解析:
- 数组的索引从 0 开始,长度为 4,所以最大下标是 3。
6. 下列语句编译没有错误的是( C )
-
选项
- A. float a=1.5;
- B. byte b=129;
- C. byte c=5;
- D. byte d=-200;
-
正确答案:C
-
解析:
- 选项分析:
- A.
float a=1.5;
错误,float 类型不能直接赋值 double 类型的值,需要强转。 - B.
byte b=129;
错误,byte 类型只能存储 -128 ~ 127 之间的整数,129 超出了范围。 - C.
byte c=5;
正确,5 在 byte 类型范围内。 - D.
byte d=-200;
错误,-200 超出了 byte 类型范围。
- A.
- 选项分析:
7. 数组a的第三个元素表示为(D)
-
选项
- A. a(3)
- B. a[3]
- C. a(2)
- D. a[2]
-
正确答案:D
-
解析:
- 数组的元素访问使用方括号 [],例如
a[2]
表示数组a
的第三个元素。
- 数组的元素访问使用方括号 [],例如
8. Java中int数据类型在内存中表示为( B )
-
选项
- A. 2个字节
- B. 4个字节
- C. 由程序员确定
- D. 以上都不正确
-
正确答案:B
-
解析:
int
类型在 Java 中占 4 个字节。
9. 下列程序段执行后t5
的结果是( B )
- 选项
int t1=9,t2=11,t3=8;
int t4,t5;
t4=t1>t2?t1:t2+t1;
t5=t4>t3?t4:t3;
-
正确答案:B
-
解析:
- 首先执行
t4 = t1 > t2 ? t1 : t2 + t1
,t1 > t2
为 false,所以t4
的值为t2 + t1
,即11 + 9 = 20
。 - 接着执行
t5 = t4 > t3 ? t4 : t3
,t4 > t3
为 true,所以t5
的值为t4
,即20
。
- 首先执行
10. 若有定义int a=2;
则执行完语句(++a)+a
结果为( A )
-
选项
- A. 6
- B. 5
- C. 3
- D. 4
-
正确答案:A
-
解析:
- 表达式
(++a) + a
的执行步骤:++a
先将a
加 1,a
变成 3。a
此时值为3
,所以(++a) + a
的结果是3 + 3 = 6
。
- 表达式
11. 下面正确的初始化语句是(C)
-
选项
- A.
char str[]="hello"
- B.
char str[100]="hello"
- C.
char str[]={'h','e','l','l','o'};
- D.
char str={'\t’};
- A.
-
正确答案:C
-
解析:
- 选项分析:
- A.
char str[]="hello"
错误,不能直接用字符串赋值给字符数组,需要将字符串拆分成字符。 - B.
char str[100]="hello"
错误, Java 中无法在定义数组时直接指定其大小。 - C.
char str[]={'h','e','l','l','o'};
正确,用字符数组的方式初始化char数组。 - D.
char str={'\t’};
错误,不能直接用一个字符赋值给字符数组,需要用{}
包裹起来。
- A.
- 选项分析:
12. 请写出标识符的命名规则,哪个选项正确(A)
-
选项
- A. 由英文字母、数字、下划线(_)、$组成,不限长度
- B. 标识符的第一个字符可以是数字
- C. 标识符不区分大小写
- D. 标识符可以包含空格
-
正确答案:A
-
解析:
- 标识符的命名规则:
- 只能由字母、数字、下划线(_)和美元符号($)组成。
- 第一个字符不能是数字。
- 不能使用 Java 的关键字作为标识符。
- 区分大小写。
- 不能包含空格。
- 标识符的命名规则:
13. 以下代码执行后的输出结果是( B )
- 选项
int x = 3;
int y = 10;
System.out.println(y % x);
-
正确答案:B
-
解析:
- 代码执行了模运算
y % x
,即 10 除以 3 的余数,结果是 1。
- 代码执行了模运算
14. 当访问无效的数组下标时,会发生( B )
-
选项
- A. 编译和运行不受任何影响
- B. 抛出下标越界异常
- C. 抛出内存溢出
- D. 直接死机
-
正确答案:B
-
解析:
- 当访问无效的数组下标时,会抛出
ArrayIndexOutOfBoundsException
异常。
- 当访问无效的数组下标时,会抛出
15. do while循环执行次数(D)
-
选项
- A. 0
- B. 1
- C. 0 ~ n
- D. 1 ~ n
-
正确答案:D
-
解析:
- do-while 循环的特点是:先执行循环体,再判断条件。
- 因此,无论条件是否满足,至少会执行一次循环体。
- 所以执行次数在 1 到 n 之间。
16. 若有定义 int a=1, b=2;
表达式 (a++)+(++b)
的值是( B )
-
选项
- A. 3
- B. 4
- C. 5
- D. 6
-
正确答案:B
-
解析:
- 表达式
(a++) + (++b)
的执行步骤:a++
先使用a
的值 (1),再将a
加 1,a
变成 2。++b
先将b
加 1,b
变成 3,再使用b
的值 (3)。- 所以
(a++) + (++b)
的结果是 1 + 3 = 4。
- 表达式
17. double类型占几个字节?(D)
-
选项
- A. 1
- B. 2
- C. 4
- D. 8
-
正确答案:D
-
解析:
double
类型在 Java 中占 8 个字节。
18. 下列哪一个不属于Java的基本数据类型(B)
-
选项
- A. int
- B. string
- C. float
- D. byte
-
正确答案:B
-
解析:
- Java 的基本数据类型是:
byte
,short
,int
,long
,float
,double
,char
,boolean
。 String
是一个类,不是基本数据类型。
- Java 的基本数据类型是:
八、变量与作用域
19. 判断引用中所存储的对象是否与某种类型兼容的关键字是 instanceof
。
- 答案:instanceof
- 解析:
instanceof
关键字用于检查对象是否是特定类的实例,以避免类型转换错误。
20. 静态属性(类属性)的关键字是 static
。
- 答案:static
- 解析:
static
修饰的成员变量属于类本身,而不是某个实例,称为静态属性或类属性。
21. 在 Java 中,类之间的继承的特点是单继承。
- 答案:单继承
- 解析:Java 中一个类只能继承一个直接父类,这种特性称为单继承。
九、数组
22. 数组 a
的第三个元素表示为 (D)
-
选项
- A. a(3)
- B. a[3]
- C. a(2)
- D. a[2]
-
正确答案:D
-
解析:
- 数组的元素访问使用方括号 [],例如
a[2]
表示数组a
的第三个元素。
- 数组的元素访问使用方括号 [],例如
23. 数组的索引从 0 开始,长度为 4,所以最大下标是 3。
- 答案:3
- 解析:数组的索引从 0 开始,长度为 N 的数组最大下标为 N-1。
十、编译与运行
24. Java 文件的编译扩展名是 .class,源文件扩展名是 .java。
- 答案:.class, .java
- 解析:Java 源文件扩展名为 .java,编译后生成扩展名为 .class 的字节码文件。
25. 定义包的关键字为 package。
- 答案:package
- 解析:在 Java 中,可以使用
package
关键字对类进行分组管理。
十一、其它
26. If 语句:
-
当访问无效的数组下标时,会抛出
ArrayIndexOutOfBoundsException
异常。 -
答案:B
-
解析:ArrayIndexOutOfBoundsException 是 Java 中的一个异常,用来表明数组访问越界。
27. Java中的关键字:
public
,static
,class
,package
- 解析:static 是 Java 的关键字,但必须全部小写。
28. float 数:
-
float
类型在 Java 中占 4 个字节,而double
类型在 Java 中占 8 个字节。 -
答案:B, D
-
解析:Java中
float
数据类型占用 4 字节,而double
数据类型占用 8 字节。
29. 标识符命名规则:
-
只能由字母、数字、下划线(_) 和美元符号($) 组成。
-
第一个字符不能是数字。
-
不允许使用关键字。
-
区分大小写。
-
答案:A
-
解析:标识符的命名规则:只能由字母、数字、下划线(_) 和美元符号($) 组成,第一个字符不能是数字。