1.true和false
2.基本数据类型和引用数据类型
3. (1)&
(2)&&
(3)|
(4)||
4. 5
5. 56
1.×错
2.√对
3.×错
4.√对
5.×错
1、AD
2、C
3、C
4、B
5、A
1、Java语言的八种基本数据类型有:byte字节型,占一个字节。short短整型,占两个字节。int整型,占4个字节。long长整型,占8个字节。float单精度浮点型,占4个字节。double双精度浮点型,占8个字节。char字符型,占两个字节。boolean型,表示逻辑值,有true和false两个值,分别占一个字节。
2、如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&&”进行连接,当“&&”左边的表达式为false,则不会执行其右边的表达式。例如定义int x = 2,y = 0; boolean b = x < y & x / 2 > 0表达是会发生被0除异常,因为x / y的表达式执行了。而boolean b = x < y & x / 2 > 0是不会出现这种异常的,因为x < y为false,表达式x / y不会执行。
3、作用:break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
continue结束本次循环,继续下一次循环。
区别:break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循
环中剩余的语句。(break语句也在switch语句中使用)
continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行
下一次是否执行循环的判定。
public class getSum {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 100; i++) {
System.out.println("i="+i);
if (i % 2 != 0){
sum += i;
}
}
System.out.println(sum);
}
}
public class ArraySort {
public static void main(String[] args) {
int[] arr = {
25, 24, 12, 76, 101, 96, 28 };
for (int i = 0; i < arr.length - 1; i++) {
// 定义内层循环
for (int j = 0; j < arr.length - i - 1; j++) {
// 比较相邻元素
if (arr[j] > arr[j + 1]) {
// 下面的三行代码用于交换两个元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
// 打印元素和空格
System.out.print(arr[i] + " ");
}
}
}
一.填空题
1.布尔常量即布尔类型的两个值,分别是()和()。 true false
解析:对应教材第32页,布尔类型变量用来存储布尔值,在Java中用boolean表示,该类型的变量只有两个值,即true和false
2.Java中的变量可分为两种数据类型,分别是()和()。 基本数据类型和引用数据类型
解析:对应教材30页,在Java中变量的数据类型分为两种:基本数据类型和引用数据类型。
3.在逻辑运算符中,运算符()和()用于表示逻辑与,()和()用于表示逻辑或。(1)& (2)&& (3)| (4)||
解析:对应教材第44页和45页,可从表2-9中得知&与 &&短路与 |或 ||短路或。
4.若"int a = 2;a+=3;“执行后,变量a的值为()。 5
解析: a+=3;这条语句相当于a=a+3;所以a=2+3,注意此=不是等于号,而是赋值号。在Java中,单个”=“表示赋值,两个"="表示相等。
5.若int[3][2]={ {123,345},{34,56},{34,56}},则a[2][1]=()。 56
解析:数组与常见数字序列不同,数组从"0"开始,常见的从"1"开始。因此a[2][1]是第三组第二个,也就是56。
二.判断题
1.Java语言不区分大小写。() ×错
解析:对应教材第26页,(2)Java语言是严格区分大小写的。
2.0xC5表示的是一个十六进制整数。() √对
解析:对应教材第41页,0xC5表示的是一个十六进制整数,此数转换为十进制整数的结果为197。
3.continue语句只用于循环语句中,它的作用是跳出循环。() ×错
解析:对应教材第63页,continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。题中的描述显然是break。
4.”/* … * /“中可以嵌套”//“注释,但不能嵌套”/* . . . * /"注释。 () √对
解析:对应教材第27页,(1)多行注释中可以嵌套使用单行注释(2)多行注释中不能嵌套使用多行注释。
5.-5%3的运算结果是2。 ×错
解析: 取余运算时,最终结果的正负符号和%左边的数的正负符号一致。
三.选择题
1.以下选项中,哪些属于合法的标识符?(多选) ( ) AD
A.Hello_World B.class C.123username D.username123
解析:对应教材第28页和29页,B选项class是关键字不能作为标识符,C选项不能以数字开头。故选AD
2.以下关于变量的说法错误的是?() C
A.变量名必须是一个有效的标识符
B.变量在定义时可以没有初始值
C.变量一旦被定义,在程序中的任何位置都可以被访问
D.在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声明
解析:对应教材第36页,变量需要在它的作用范围内才可以被使用,这个作用范围被称为变量的作用域。
3.假设int x= 2,三元表达式x>0?x+1:5的运行结果是以下哪一个?() C
A.0 B.2 C.3 D.5
解析:对应教材第48页,? : 是三元运算符,其语法格式如下: (boolean_expr)?true_statement:false_statement。先对布尔类型表达式进行判断,如果正确就执行冒号左边的表达式,如果错误就执行冒号右边的表达式。
先对布尔类型表达式进行判断,也就是题中x>0,x=2所以x>0正确,故执行x+1,也就是2+1=3。
4.以下哪个选项可以正确创建一个长度为3的二维数组?( )B
A.new int[2][3]; B.new int[3][ ]; C.new int [ ][3];D.以上答案皆不对
解析:A选项创建了一个长度为2,每个数组的元素个数为3的二维数组
B选项创建了一个长度为3的二维数组
C选项创建的方式有误。
5.请先阅读下面的代码。
int x = 1;
int y = 2;
if(x%2==0) {
y++;
}else{
y--;
}
System.out.println("y="+y);
上面一段程序运行结束时,变量y的值为下列哪一项?( ) A
A.1 B.2 C.3 D.0
解析:从第三行代码 if(x%2==0)开始分析,x对2进行取余,如果等于0,y自增1,如果不等于0,y自减1。
题中x=1,对2取余结果为1,所以执行else下的语句,也就是y–;y自减1,所以输出的y应为1,故选A。
四.简答题
1.请列举Java语言中的8种基本数据类型,并说明每种数据类型所占用的空间大小。
Java语言的八种基本数据类型有:byte字节型,占一个字节。short短整型,占两个字节。int整型,占4个字节。long长整型,占8个字节。float单精度浮点型,占4个字节。double双精度浮点型,占8个字节。char字符型,占两个字节。boolean型,表示逻辑值,有true和false两个值,分别占一个字节。
解析:略
2.简述&&与&的区别并举例说明。
如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&&”进行连接,当“&&”左边的表达式为false,则不会执行其右边的表达式。例如定义int x = 2,y = 0; boolean b = x < y & x / 2 > 0表达是会发生被0除异常,因为x / y的表达式执行了。而boolean b = x < y & x / 2 > 0是不会出现这种异常的,因为x < y为false,表达式x / y不会执行。
解析:略
3.简述跳转语句break和continue的作用和区别。
作用:break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
continue结束本次循环,继续下一次循环。
区别:break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循
环中剩余的语句。(break语句也在switch语句中使用)
continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行
下一次是否执行循环的判定。
解析:略
五.编程题
1.请编写程序,实现计算"1+3+5+7+…+99"的值。要求如下:
(1)使用循环语句实现自然数1-99的遍历
(2)在遍历过程中,通过条件判断当前遍历的数是否为奇数,如果是就累加,否则不加。
//创建一个类名为getSum的类
public class getSum {
//主函数
public static void main(String[] args) {
//定义sum为累加的总和,并定义初始值为0
int sum = 0;
//for循环,i初始值为1,最大取值为99,每次自增1
for (int i = 1; i < 100; i++) {
//每次都输出一次i的值,实现了对自然数1-99的遍历
System.out.println("i="+i);
//判断当前数是否为奇数,如果是就执行sum +=i;
if (i % 2 != 0){
//当数为奇数时,sum就累加。
sum += i;
}
}
//输出sum的值,也就是累加总和的值
System.out.println(sum);
}
}
解析:看注释,每一条语句都给了详细的注释。
2.请使用冒泡排序算法编写程序,实现对数组{25,24,12,76,101,96,28}的排序。
//定义一个类名为ArraySort的类
public class ArraySort {
//主函数
public static void main(String[] args) {
//定义数组
int[] arr = {
25, 24, 12, 76, 101, 96, 28 };
//定义外层循环
for (int i = 0; i < arr.length - 1; i++) {
// 定义内层循环,由于冒泡排序每次都是将最大的数排到最右侧,最大的数已经排好了位置,
//无需再排序,所以每次循环都要比上一次循环少比较一次,所以j
for (int j = 0; j < arr.length - i - 1; j++) {
// 比较相邻元素
if (arr[j] > arr[j + 1]) {
// 下面的三行代码用于交换两个元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
//定义for循环,对排序完成后的数组进行逐个输出。
for (int i = 0; i < arr.length; i++) {
// 打印元素和空格
System.out.print(arr[i] + " ");
}
}
}
解析:先看解析,看不懂对照教材第71页的例2-24 Example24.java进行理解。