《Java语言程序设计》期末试卷A (精选01)
《Java语言程序设计》期末试卷A (精选01)
大学生期末考试复习平台前往平台





注意:所有答案均写在答卷上,写在试卷上无效。
(一)单选题(每题 2 分,共 26 分)
(1) 下列语句中,正确的是( )
- A.
float x = 0.0; - B.
boolean b = 3 > 5; - C.
char c = "A"; - D.
double π = 3.14;
::::: details 查看答案与解析
答案:B
解析:
- A 错误:
0.0默认是 double 类型,不能直接赋给 float 变量,应写为0.0f。 - B 正确:
3 > 5是一个布尔表达式,结果为false,可以赋给 boolean 变量。 - C 错误:
"A"是字符串(String),不能赋给 char 变量,应使用单引号'A'。 - D 错误:虽然 Java 技术上支持 Unicode 字符作为标识符(π 是合法标识符),
double π = 3.14;语法上可以通过编译,但本题考查常规编程规范,且题目要求选出唯一正确答案。从实际编程规范角度,不推荐使用非 ASCII 字符作为标识符,因此 D 不作为最佳答案。
难度: ⭐
考点: #数据类型 #float #boolean #char
:::: details 💡 学习锦囊
📖 相关公式与知识点:
- float 赋值:
float x = 0.0f;,小数默认是 double,需加f后缀。 - boolean 类型:只有
true和false,布尔表达式的结果可直接赋值。 - char 类型:使用单引号
'A',双引号"A"是 String 类型。
::: warning 易错点
0.0是 double 类型,不能直接赋给 float。
:::
::::
:::: details 🔄 举一反三
- 下列哪个是合法的 float 类型赋值?
- A.
float f = 1.0; - B.
float f = 1.0f; - C.
float f = (float)1.0d; - D. B 和 C 都正确
::: details 查看练习答案与解析
答案:D
解析:A 中1.0是 double,不能直接赋给 float。B 使用f后缀正确。C 使用强制类型转换也正确。
:::
::::
- A.
:::::
(2) 设有定义:int k = 3; 值为 true 的表达式是( )
- A.
k = 3; - B.
k++ == 3; - C.
++k == 3; - D.
k++ == 3++
::::: details 查看答案与解析
答案:B
解析:
- A:
k = 3是赋值语句,不是比较表达式,结果为 3(int),不是 boolean。 - B:
k++ == 3,k 先取值 3 与 3 比较(true),然后 k 自增为 4。结果为 true。 - C:
++k == 3,k 先自增为 4,再与 3 比较,结果为 false。 - D:
3++是非法表达式,常量不能自增。
难度: ⭐
考点: #自增运算 #比较运算符
:::: details 💡 学习锦囊
📖 相关公式与知识点:
- 自增运算:
k++(先用后加),++k(先加后用)。 - 赋值 vs 比较:
=是赋值,==是比较。
::: warning 易错点
k = 3是赋值不是比较,k == 3才是比较。- 常量不能自增(如
3++非法)。
:::
::::
:::: details 🔄 举一反三
- 设有
int a = 5;,执行int b = a++;后,a 和 b 的值分别是多少?
::: details 查看练习答案与解析
答案:a = 6, b = 5
解析:a++先用后加,b 取到 a 的当前值 5,然后 a 自增为 6。
:::
::::
:::::
(3) 能使程序块显示字符串"good"的 x 值的范围是( )
if (x > 0) System.out.println("excellent");
else if (x > -3) System.out.println("good");
else System.out.println("normal");
- A. x > 0
- B. x > -3
- C. x <= -3
- D. -3 < x <= 0
::::: details 查看答案与解析
答案:D
解析:
程序逻辑分析:
- 当
x > 0时,输出 “excellent”。 - 当
x <= 0且x > -3时,即-3 < x <= 0,输出 “good”。 - 当
x <= -3时,输出 “normal”。
要输出 “good”,需要满足 -3 < x <= 0,故选 D。
难度: ⭐
考点: #条件语句 #if-else
:::: details 💡 学习锦囊
📖 相关公式与知识点:
- if-else if-else 链:从上到下依次判断,第一个满足条件的分支执行后,后续分支不再判断。
- 区间表示:
-3 < x <= 0表示 x 在 (-3, 0] 区间内。
::: warning 易错点
- 注意 else if 的条件是在前面条件不满足的前提下判断的。
:::
::::
:::: details 🔄 举一反三
- 若 x = -5,上述程序输出什么?
::: details 查看练习答案与解析
答案:normal
解析:x = -5,不满足x > 0,也不满足x > -3,执行最后的 else 分支。
:::
::::
:::::
(4) 设有定义:int[] a = {4, 2, -7, 5, 1, 6, 3}; 则 a[a[4]] 的值为( )
- A. 4
- B. 2
- C. -7
- D. 5
::::: details 查看答案与解析
答案:B
解析:
数组 a = {4, 2, -7, 5, 1, 6, 3},索引从 0 开始:
a[4]= 1a[a[4]]=a[1]= 2
对应选项 B(值为 2)。
难度: ⭐
考点: #数组 #索引
:::: details 💡 学习锦囊
📖 相关公式与知识点:
- 数组索引:从 0 开始,
a[i]表示第 i+1 个元素。 - 嵌套索引:
a[a[i]]先计算内层a[i]的值,再作为外层索引。
::: warning 易错点
- 数组索引从 0 开始,
a[4]是第 5 个元素。
:::
::::
:::: details 🔄 举一反三
- 设有
int[] arr = {10, 20, 30, 40, 50};,arr[arr[0]/10]的值是多少?
::: details 查看练习答案与解析
答案:20
解析:arr[0] = 10,10/10 = 1,arr[1] = 20。
:::
::::
:::::
(5) 关于方法的返回值,以下说法正确的是( )
- A. 方法必须有返回值
- B. 方法可以没有返回值,也可以有多个返回值
- C. 方法有且仅有一个返回值
- D. 方法必须有至少一个返回值
::::: details 查看答案与解析
答案:C
解析:
- A 错误:方法可以没有返回值(void)。
- B 错误:方法最多只能有一个返回值,不能有多个。
- C 正确:方法要么没有返回值(void),要么有且仅有一个返回值。
- D 错误:void 方法不需要返回值。
难度: ⭐
考点: #方法 #返回值
:::: details 💡 学习锦囊
📖 相关公式与知识点:
- 方法返回值:void 方法无返回值,非 void 方法必须有且仅有一个返回值(通过 return 语句)。
- return 语句:结束方法执行并返回结果。
::: warning 易错点
- Java 方法不能返回多个值,如需返回多个值,可使用数组或对象封装。
:::
::::
:::: details 🔄 举一反三
- 判断:void 方法中可以使用
return;语句。( )
::: details 查看练习答案与解析
答案:√
解析:void 方法中可以使用不带返回值的return;来提前结束方法。
:::
::::
:::::
(6) 设 Tree 为已定义的类名,下列语句能正确创建 Tree 对象的是( )
- A.
Tree t = new Tree; - B.
Tree t = new Tree(); - C.
Tree t = Tree(); - D.
Tree t[] = new Tree[10];
::::: details 查看答案与解析
答案:B
解析:
- A 错误:缺少小括号
()。 - B 正确:
new Tree()是标准的对象创建语法。 - C 错误:缺少
new关键字。 - D 错误:
new Tree[10]创建的是数组,不是单个对象。
难度: ⭐
考点: #对象创建 #new关键字
:::: details 💡 学习锦囊
📖 相关公式与知识点:
- 对象创建语法:
类名 变量名 = new 类名(参数); - new 关键字:在堆内存中分配空间,调用构造方法初始化对象。
::: warning 易错点
new Tree[10]创建的是数组(存放 10 个 Tree 引用的数组),不是 Tree 对象。
:::
::::
:::: details 🔄 举一反三
- 判断:
String s = new String("hello");和String s = "hello";效果完全相同。( )
::: details 查看练习答案与解析
答案:×
解析:new String("hello")在堆中创建新对象,"hello"使用字符串常量池。两者内存位置不同。
:::
::::
:::::
(7) 在 Applet 的运行过程中,下列什么方法只能执行一次( )
- A.
init() - B.
start() - C.
stop() - D.
paint()
::::: details 查看答案与解析
答案:A
解析:
Applet 生命周期:
init():初始化,只执行一次。start():启动,每次访问页面时执行。stop():停止,每次离开页面时执行。paint():绘制,可多次调用。
难度: ⭐
考点: #Applet #生命周期
:::: details 💡 学习锦囊
📖 相关公式与知识点:
- Applet 生命周期:init() → start() → paint() → stop() → destroy()。
- init():只执行一次,用于初始化。
- paint():每次重绘时调用,可多次执行。
::: warning 易错点
- init() 只执行一次,start() 和 paint() 可多次执行。
:::
::::
:::: details 🔄 举一反三
- 判断:Applet 的
destroy()方法在浏览器关闭时调用,只执行一次。( )
::: details 查看练习答案与解析
答案:√
解析:destroy() 在 Applet 被销毁时调用,只执行一次,用于释放资源。
:::
::::
:::::
(8) 指出下列哪个方法与方法 public void change(int x, int y){} 为不合理的重载方法( )
- A.
public long change(long x, long y){} - B.
public float change(float x, float y){} - C.
public void change(int x){} - D.
public int change(int a, int b){}
::::: details 查看答案与解析
答案:D
解析:
方法重载(Overload)要求:方法名相同,参数列表不同(参数个数或类型不同)。
- A:参数类型为
(long, long),与原方法(int, int)不同,是合法重载。 - B:参数类型为
(float, float),合法重载。 - C:参数个数为 1 个,合法重载。
- D:参数类型为
(int, int),与原方法完全相同,仅返回类型不同不构成重载,编译报错。
难度: ⭐
考点: #方法重载
:::: details 💡 学习锦囊
📖 相关公式与知识点:
- 方法重载:方法名相同,参数列表不同(类型、个数、顺序),与返回类型无关。
- 重载判断:只看方法名和参数列表,不看返回类型。
::: warning 易错点
- 方法重载只看参数列表,返回类型不同不算重载。
:::
::::
:::: details 🔄 举一反三
- 判断:
void f(int a)和int f(int a)构成方法重载。( )
::: details 查看练习答案与解析
答案:×
解析:参数列表完全相同,仅返回类型不同,不构成重载,编译报错。
:::
::::
:::::
(9) 为了以字符方式从文件读出内容,可以使用( )类
- A. FileReader
- B. FileInputStream
- C. FileOutputStream
- D. FileWriter
::::: details 查看答案与解析
答案:A
解析:
- FileReader:字符输入流,以字符方式读取文件。✓
- FileInputStream:字节输入流,以字节方式读取。
- FileOutputStream:字节输出流。
- FileWriter:字符输出流。
难度: ⭐
考点: #文件IO #字符流 #字节流
:::: details 💡 学习锦囊
📖 相关公式与知识点:
- 字符流 vs 字节流:Reader/Writer 是字符流,InputStream/OutputStream 是字节流。
- FileReader:字符输入流,用于读取文本文件。
- FileWriter:字符输出流,用于写入文本文件。
::: warning 易错点
- 读取用 Reader/InputStream,写入用 Writer/OutputStream。
:::
::::
:::: details 🔄 举一反三
- 以字节方式写入文件应使用哪个类?
::: details 查看练习答案与解析
答案:FileOutputStream
解析:FileOutputStream 是字节输出流,用于以字节方式写入文件。
:::
::::
:::::
(10) 以下关于构造方法的描述错误的是( )
- A. 构造方法的返回类型只能是 void 型
- B. 构造方法是类的一种特殊方法,它的方法名必须与类名相同
- C. 构造方法的主要作用是完成对类的对象的初始化工作
- D. 一个类可以定义多个构造方法
::::: details 查看答案与解析
答案:A
解析:
构造方法没有返回类型,连 void 也不能写。如果写了 void,它就变成了普通方法,不再是构造方法。因此 A 的描述是错误的。
难度: ⭐
考点: #构造方法
:::: details 💡 学习锦囊
📖 相关公式与知识点:
- 构造方法:无返回类型,与类同名,用于初始化对象。
- 构造方法重载:一个类可以定义多个参数列表不同的构造方法。
::: warning 易错点
- 构造方法没有返回类型,void 也不能写。
:::
::::
:::: details 🔄 举一反三
- 判断:如果一个类没有定义任何构造方法,编译器会自动生成一个无参构造方法。( )
::: details 查看练习答案与解析
答案:√
解析:如果类中没有定义任何构造方法,编译器会自动添加默认的无参构造方法。
:::
::::
:::::
(11) 数学表达式 ∣ x ∣ < 10 |x| < 10 ∣x∣<10 对应的 Java 表达式为( )
- A.
|x| < 10 - B.
x < 10 && x > -10 - C.
x < 10 || x > -10 - D.
10 > x > -10
::::: details 查看答案与解析
答案:B
解析:
∣
x
∣
<
10
|x| < 10
∣x∣<10 等价于
−
10
<
x
<
10
-10 < x < 10
−10<x<10,即
x
>
−
10
x > -10
x>−10 且
x
<
10
x < 10
x<10。
- A:Java 中没有
||绝对值运算符。 - B:
x < 10 && x > -10,正确。 - C:
||是或,逻辑错误。 - D:Java 不支持连续比较。
难度: ⭐
考点: #逻辑运算符 #绝对值
:::: details 💡 学习锦囊
📖 相关公式与知识点:
- 绝对值不等式: ∣ x ∣ < a |x| < a ∣x∣<a 等价于 − a < x < a -a < x < a −a<x<a。
- 逻辑运算符:
&&(与)、||(或)、!(非)。 - Java 不支持连续比较:
a < b < c在 Java 中非法。
::: warning 易错点
- Java 中没有
||绝对值运算符,需用Math.abs()或逻辑表达式。
:::
::::
:::: details 🔄 举一反三
-
∣
x
∣
≥
5
|x| \geq 5
∣x∣≥5 对应的 Java 表达式是什么?
::: details 查看练习答案与解析
答案:x >= 5 || x <= -5或Math.abs(x) >= 5
解析: ∣ x ∣ ≥ 5 |x| \geq 5 ∣x∣≥5 等价于 x ≥ 5 x \geq 5 x≥5 或 x ≤ − 5 x \leq -5 x≤−5。
:::
::::
:::::
(12) 设有整型变量 a, b, c,其中 a, b 的值分别为 10 与 20,在执行语句 c = (a < b) ? a : b; 后,c 的值为( )
- A. 0
- B. 1
- C. 10
- D. 20
::::: details 查看答案与解析
答案:C
解析:
三元运算符 (条件) ? 值1 : 值2:
a < b即10 < 20为 true。- 返回
a,即 10。 - 所以
c = 10。
难度: ⭐
考点: #三元运算符
:::: details 💡 学习锦囊
📖 相关公式与知识点:
- 三元运算符:
条件 ? 表达式1 : 表达式2,条件为 true 返回表达式1,否则返回表达式2。 - 等价于:
if (条件) 变量 = 表达式1; else 变量 = 表达式2;
::: warning 易错点
- 三元运算符的返回值类型由表达式1和表达式2的类型共同决定。
:::
::::
:::: details 🔄 举一反三
int max = (a > b) ? a : b;的功能是什么?
::: details 查看练习答案与解析
答案:求 a 和 b 中的最大值并赋给 max。
解析:如果 a > b,返回 a;否则返回 b。
:::
::::
:::::
(13) ( )定义了一个合法的抽象类
- A.
abstract Shape {abstract void area();} - B.
class abstract Shape {abstract void area();} - C.
abstract class Shape {abstract void area();} - D.
abstract class Shape {abstract void area() {System.out.println("area");}}
::::: details 查看答案与解析
答案:C
解析:
- A 错误:缺少
class关键字。 - B 错误:
class abstract顺序错误,应为abstract class。 - C 正确:
abstract class Shape {abstract void area();}语法完全正确。 - D 错误:抽象方法不能有方法体(大括号内的实现)。
难度: ⭐
考点: #抽象类 #抽象方法
:::: details 💡 学习锦囊
📖 相关公式与知识点:
- 抽象类:
abstract class定义,不能被实例化。 - 抽象方法:
abstract修饰,无方法体(没有{}),以分号结尾。 - 语法顺序:
abstract class 类名,不是class abstract 类名。
::: warning 易错点
- 抽象方法不能有方法体。
- 抽象类中可以包含非抽象方法。
:::
::::
:::: details 🔄 举一反三
- 判断:抽象类中可以包含非抽象方法。( )
::: details 查看练习答案与解析
答案:√
解析:抽象类中可以同时包含抽象方法(无方法体)和非抽象方法(有方法体)。但含有抽象方法的类必须声明为抽象类。
:::
::::
:::::
更多推荐
所有评论(0)