第二章-数据和表达式

一、单项选择题

1. 以下字符串中,是Java语言关键字的是                                          【 】

A. define            B. type          C. include          D. switch

2. 以下标识符中,不是 Java语言关键字的是                                      【

A. wait            B. new           C. long             D. switch

3. 以下字符串中,能作为 Java程序中标识符的是                                     【  】

A. Val              B. OK#            C. 2Val            D. catch

4. 以下字符串中,能作为 Java程序变量名的是                                        【 】

A. default           B. final         C. long            D. CASE

5. 下列选项中,能作为 Java语言注释的是                                         【  】

A. 从/*开始直到行尾                    B. 从∥开始直到行尾

C. 从∥开始直到**/结束                 D. 从/**开始直到行尾

6. 标识符MAIN 不能用作                                                     【  】

A. 类名             B. 接口名         C. 程序名            D. 主函数名

7. 不属于 Java 基本数据类型的是                                                【  】

A. 记录型           B. 整型           C. 浮点型             D. 布尔型

8. 以下数据类型转换中,必须进行强制类型转换的是                                  【  】

A. int→char         B. short→long      C. float→double       D. byte→int

9. 以下数据类型转换中,必须进行强制类型转换的是                                   【  】

A. long→byte        B. short→float      C. int→long          D. byte→short

10. 以下选项中,不是转义字符的是                                             【  】

A. \u061           B. \t            C. \141            D. \u0061

二、填空题

1. 用来声明 Java布尔变量(逻辑变量) 的保留字是 boolean

2. 方法内定义的变量称作 局部变量

3. Java逻辑与和逻辑或运算符有一个特殊的功能,当左侧操作数能决定表达式的值时,则跳过右侧操作数的运算。这个功能是  短路

4. 一个 byte类型的运算数和一个 int类型的运算数进行运算,结果的类型是 Int 。

5. 当不同类型的数据进行运算时,表示范围较小的类型转换为表示范围较大的类型的转换称作 自动类型转换 。

6. 当不同类型的数据进行运算时,表示范围较大的类型转换为表示范围较小的类型的转换称作 强制类型转换 。

7. 表达式“45&20”的十进制值是 4 。

8. 表达式1==1>>>32; 的值是 false  。

三、简答题

1. Java支持的数据类型有哪些? 列出 Java语言中所有的基本数据类型。

答:支持基本数据类型和复合数据类型;基本数据类型包括:byte、short、Int、long、double、float、Boolean(整型、浮点型、布尔型、字符型)

  1. Java中常用的运算符有哪几类? 每类列出几个,并说明其含义。

答:算术运算符:包含+-*/%,完成整型和浮点型数据的算术运算

关系运算符:用于比较两个值,包括大于、小于、大于等于、小于等于、等于和不等于

逻辑运算符:包括逻辑与、逻辑或、逻辑非,逻辑判断对与错

位运算符:用于对二进制进行操作,包括按位取反、按位与、按位或、异或、右移、左移及无符号右移,位运算符只能对整型和字符型数据进行操作。

  1. Java中操作符优先级是如何定义的? 举例说明。

答:在对一个表达式进行计算时,如果表示式中含有多种运算符,则要按运算符的优先次序一次从高至低进行,同级运算符则根据结合从左至右或从右至左进行。

4. 从下列字符串中选出正确的 Java关键字。

 abstract, bit, boolean, case, character, comment, double, else, end, endif, extend, false, final, finally, float, for, generic, goto, if, implements, import, inner, instanceof, interface, line, long, loop, native, new, null, old, oper, outer, package, print, private, rest, return, short, static, super, switch, synchronized, this, throw, throws, transient, var, void, volatile, where, write

5. 请叙述标识符的定义规则。指出下面给出的字符串中,哪些不能用作标识符,并说明原因。

 here, there, this, that, it, 2tol 标识符字符串 名字

答:标识符是有数字、字母、下划线和美元符号组成的字符串,数据不能开头。不区分大小写,长度没有限制。

This:关键字

2tol:数字不能开头

  1. 转义字符是什么? 列举几个转义字符。

答:表示特殊含义的字符,\b:退格(Backspace)—— 删除光标前的一个字符。

\t:水平制表符(Tab)—— 插入一个制表符空格。

\n:新行(Newline)—— 移动光标到下一行的开始位置。

\r:回车(Carriage Return)—— 移动光标到当前行的起始位置。

\f:换页(Form Feed)—— 移动到下一个打印页的开始位置。

  1. Java中的类型转换是指什么? 如何进行安全的类型转换?

答:类型转换是指将一个类型的值转换为另一种类型的值。

确认值的范围:在进行强制类型转换之前,检查并确认转换后的值仍然在目标类型的范围内。如果转换的目标类型无法容纳原类型的值,则会导致溢出或截断错误。

使用条件语句:可以通过条件语句(如 if 语句)来确保只有在值适合目标类型的情况下才进行转换。

利用包装类:Java中的基本数据类型都有对应的包装类(如 Integer, Long, Float 等),这些包装类提供了 valueOf() 和 parseXxx() 方法来进行类型转换。这些方法内部已经做了适当的检查,可以更加安全地转换类型。

使用异常处理:当使用 parseXxx() 方法时,如果提供的字符串不能被解析为目标类型,则会抛出 NumberFormatException。可以通过异常处理机制来捕获这类异常,从而防止程序因非法转换而导致崩溃。

  1. >>>与>>有什么区别? 举例说明。

答:>> 和 >>> 都是位移运算符,用于对整数类型的值进行位移操作。它们之间的主要区别在于处理负数时的行为不同:

>>(算术右移):

当对正数进行右移时,高位用符号位(最左边的位)填充,其余位向右移动。

当对负数进行右移时,同样也是用符号位填充高位,保持原有的符号不变。这就是为什么称其为“算术右移”。

>>>(逻辑右移):

无论操作数是正数还是负数,>>> 运算符总是用0填充高位。

因此,对于负数来说,>>> 会产生一个正数结果,因为所有的高位都被填充成了0。

9. 下列表达式中,找出每个操作符的计算顺序,在操作符下按次序标上相应的数字。

a+b+c-d

1234

a+b/c-d

213

a+b/c*d

312

(a+b)+c-d

123

(a+b)+(c-d)%e

132

(a+b)+c-d%e

132

(a+b)%e%c-d

1234

10. 什么是变量声明?

答:变量声明是在编程中定义一个变量的过程,它告诉编译器或解释器变量的存在以及变量的类型。

四、程序分析题

阅读下列程序片段,请写出程序片段的执行结果。

 int b1=1;

 int b2 =1;

b1<<=31;   b1=-2147483648

b2<<=31;   b2=-2147483648

b1>>=31;   b1=-2147483648

b1>>=1;    b2=-1073741824

b2>>>=31;  b2= 1

b2>>>=1;   b2=0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小欧爱创笔记

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

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

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

打赏作者

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

抵扣说明:

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

余额充值