东软专业力考试--Java基础语法部分
- 下列哪个选项是Java中的基本数据类型? - A. String - B. Integer - C. boolean - D. Array - 答案:C - 解析: Java有8种基本数据类型:byte、short、int、long、float、double、char、boolean。String是类,Integer是int的包装类,Array是数组,都属于引用类型。 
- 在Java中,以下关于变量声明正确的是? - A. int 1num=10; - B. int _num=10; - C. int class=10; - D. int#num=10; - 答案:B - 解析: Java变量名不能以数字开头,不能是关键字,也不能包含#等特殊符号(除了下划线_和美元符号$)。选项A以数字开头,选项C使用了关键字class,选项D包含了非法符号#,因此只有选项B正确。 
- 在Java中,哪个关键字用于定义一个常量? - A. const - B. final - C. static - D. volatile - 答案:B - 解析: 在Java中,使用 - final关键字来定义一个常量。- const是其他语言中的关键字,在Java中未被使用。
- 为一个boolean类型变量赋值时,以下哪种方式是合法的? - A. boolean b = 1; - B. boolean b = true; - C. boolean b = "true"; - D. boolean b = False; - 答案:B - 解析: 在Java中,boolean类型的值只能是 - true或- false,不能是数字0/1,也不能是字符串。- False(首字母大写)不是有效的布尔值。
- Java语言所用的字符集是? - A. 8位ASCII - B. 16位Unicode - C. 32位UTF-8 - D. 64位UTF-16 - 答案:B - 解析: Java使用16位的Unicode字符集,这使其能够支持国际化和各种语言的字符。 
第二部分:运算符与表达式
- 下列哪个运算符用于取模(求余)运算? - A. % - B. / - C. * - D. & - 答案:A - 解析: - %是取模运算符,用于计算两个数相除后的余数。
- 若有代码 - int a = 5; int b = a++;,执行后b的值是?- A. 4 - B. 5 - C. 6 - D. 7 - 答案:B - 解析: - a++是后置自增运算符,先使用变量a的原始值进行赋值操作(b=5),然后再将a的值自增1(a变为6)。
- 以下关于Java中if-else语句的说法,错误的是? - A. 可以嵌套使用 - B. else后面必须跟if - C. 可以只有if没有else - D. if后面的条件表达式结果必须是布尔类型 - 答案:B - 解析: - else后面不一定必须跟- if,它也可以单独使用,与最邻近的未匹配的- if配对。选项A、C、D的描述都是正确的。
- 以下哪个循环会执行无限次? - A. for(int i=0; i<10; i++){} - B. while(true){} - C. do{}while(false); - D. for(int i=10; i>0; i--){} - 答案:B - 解析: - while(true)的条件判断恒为真,因此循环体会无限次执行。其他选项的循环条件最终都会变为假,从而结束循环。
- 表达式 - (1 + 2 * 3)的结果是?- A. 7 - B. 9 - C. 编译错误 - D. 5 - 答案:A - 解析: 根据运算符的优先级,乘法 - *的优先级高于加法- +,因此先计算- 2 * 3 = 6,再计算- 1 + 6 = 7。
第三部分:控制流(条件与循环)
- 下列哪个选项是Java中的循环结构? - A. if - B. switch - C. for - D. while - 答案:C 和 D (本题选项设计有歧义,for和while都是循环结构。严格来说,单选题应只设一个正确选项。此处可修改题目为“下列哪个不是循环结构?”) - 修正题目:下列哪个不是Java中的循环结构? - A. for - B. while - C. do-while - D. switch - 答案:D - 解析: - for,- while,- do-while是Java的三种循环结构。- switch是选择(分支)语句。
- 在Java中,以下哪个关键字用于终止当前循环? - A. break - B. continue - C. return - D. exit - 答案:A - 解析: - break用于终止当前循环或switch语句;- continue用于跳过本次循环的剩余代码,直接进入下一次循环;- return用于从方法中返回;- exit用于终止Java虚拟机(JVM)。
- switch语句不能用于下列哪种数据类型? - A. int - B. char - C. String - D. double - 答案:D - 解析: Java中的 - switch语句支持- byte,- short,- int,- char, 枚举类型,以及从Java 7开始支持的- String类型。- double是浮点型,不支持在switch中使用。
- 以下代码片段的输出结果是? - int i = 10; System.out.println(i++); System.out.println(++i);- A. 10 11 - B. 10 12 - C. 11 11 - D. 11 12 - 答案:B - 解析: 第一行 - i++是后自增,先输出10,然后i变为11。第二行- ++i是先自增,i自增为12,然后输出12。
- 关于for循环的三个表达式,说法正确的是? - A. 三个表达式都必须存在,不能省略。 - B. 初始化表达式和迭代表达式可以为空,但条件表达式不能为空。 - C. 三个表达式都可以根据需要省略。 - D. 初始化表达式在整个程序运行期间只执行一次。 - 答案:C - 解析: for循环的三个表达式(初始化、条件判断、迭代)都可以省略,但分号不能省略。如果条件判断省略,则默认为true,会形成无限循环。 
第四部分:数组
- 下列哪种数组声明和初始化方式是正确的? - A. int[] arr = new int[5]{1,2,3,4,5}; - B. int arr[] = {1,2,3,4,5}; - C. int arr[5] = {1,2,3,4,5}; - D. int[] arr = new int[]; - 答案:B - 解析: 选项A错误,如果提供了 - {}初始值列表,则不能在- []中指定长度。选项C错误,Java中声明数组时不能在变量名后跟长度。选项D错误,使用- new创建数组时必须指定长度或提供初始值。选项B是合法的简化初始化方式。
- 以下关于Java中数组的说法,正确的是? - A. 数组创建后长度可以改变 - B. 数组可以存储不同类型的数据 - C. 数组下标从1开始 - D. 数组是对象 - 答案:D - 解析: 数组在Java中是对象,是引用数据类型。选项A错误,数组长度固定;选项B错误,数组元素必须是相同类型;选项C错误,数组下标从0开始。 
- 下列哪个选项用于创建一个整型数组? - A. int[] arr = new int[5]; - B. int[] arr = {1, 2, 3, 4, 5}; - C. int arr[] = new int[5]; - D. 以上都是 - 答案:D - 解析: 以上三种方式都是创建整型数组的有效语法。 
- 访问一个长度为10的数组的第11个元素,会发生什么? - A. 编译错误 - B. 运行时报错 ArrayIndexOutOfBoundsException - C. 返回0 - D. 返回null - 答案:B - 解析: 数组下标从0开始,最大为 - 长度-1。访问下标为10(即第11个元素)超出了数组边界,会在运行时抛出- ArrayIndexOutOfBoundsException。
- 关于二维数组 - int[][] arr = new int[2][3];,下列说法正确的是?- A. 这是一个2行3列的数组 - B. 这是一个3行2列的数组 - C. 这是一个包含2个数组的数组,每个子数组长度为3 - D. 这是一个包含3个数组的数组,每个子数组长度为2 - 答案:C - 解析: 在Java中,二维数组是“数组的数组”。 - new int[2][3]表示创建了一个长度为2的数组,其中每个元素又是一个长度为3的整型数组。选项A是通常的形象理解,但从严格的技术定义上,C更准确。
