Java练习题

按题号

<分享给需要的人>

文章目录

    • 按题号
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123

1

请阅读下面的程序
public class Demo {
public static void sum(int a, int b) {
System.out.println(“int:” + (a + b));
}
public static void sum(int a, float b) {
System.out.println(“float:” + (a + b));
}
public static void sum(int a, double b) {
System.out.println(“double:” + (a + b));
}
public static void main(String[] args) {
int a = 10;
long b = 20;
sum(a, b);
}
}
下列选项中,哪一个是程序的运行结果
A、int:30
B、float:30.0
C、double:30.0
D、int:30.0
正确答案: B 我的答案:C 得分: 0.0分
答案解析:

在主方法中定义一个int类型,一个long,按照正常做法,是找对应的类型,可是没有,这个时候要想到基本类型的隐式转换。Long会自动转到float。所以选择B

2

下列常量中,属于整型常量的是?( )
A、198
B、2e3f
C、true
D、N
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

2e3f属于浮点数常量,true属于布尔常量,null属于null常量

3

设 i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( )
A、i = i + 2;
B、a[0] = 7;
C、i++ - --j;
D、a(0) = 66;
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

4

请阅读下面的程序
public class Test {
public static void main(String[] args) {
int a[ ] = { 2, 0, 4, 1, 8, 3, 5 };
int temp;
for (int i = 0; i < a.length - 1; i++) {
for (int j = a.length - 1; j > i; j–) {
if (a[j] < a[j - 1]) {
temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
}
}
}
for (Integer i : a) {
System.out.print(i);
}
}
}
下列选项中,哪个是程序的运行结果()
A、8543210
B、0123458
C、2041835
D、以上答案都不对
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

由于使用的输出语句会换行 ,所以程序的运行结果为B选项

5

下列选项中,按照箭头方向,不可以进行自动类型转换的是
A、byte → int
B、int → long
C、double →long
D、short → int
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

类型转换过程中,只能范围小的自动转成范围大的。double范围大于long

6

下列命令中,可以将文档注释提取出来生成帮助文档的是( )
A、javac
B、java
C、javadoc
D、jar
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

7

可以使用javadoc命令将文档注释提取出来生成帮助文档7
下列选项中,不属于比较运算符的是
A、=
B、==
C、<
D、<=
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

“=”属于赋值运算符,不属于比较运算符

8

下列各项中代表八进制整数的是( )。
A、0XA6
B、0144
C、1840
D、-lE3
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

9

请阅读下面的代码
boolean a = false;
boolean b = true;
boolean c= ( a&&b)&&(!b);
int result = (c = = false)?1:2;
当语句执行完,变量c与result的值为( )
A、false和1
B、true和2
C、true和1
D、false和2
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

三元运算符条件表达式为真就返回第一个表达式的值,条件表达式为假就返回第二个表达式的值。&&运算符的特点是,当且仅当运算符两边的操作数都为true时,其结果才为true,否则结果为false,因此c=false,三元运算符的表达式c==false就为true,因此返回结果为1

10

请阅读下面的程序
public class Test {
public static void main(String[] args) {
for(int x = 0 ; x <=3 ; x++){
continue;
System.out.print(x%2+” “);
}
}
}
下列选项中,哪一个是程序的运行结果
A、0 1 2 3
B、0 1 2 1
C、0 1 2
D、编译失败
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

continue语句的作用是终止本次循环,因此contine后的代码永远不会被执行,编译失败

11

以下选项中,哪些属于合法的标识符?
A、Hello_World
B、class
C、123username
D、username123
正确答案: D 我的答案:A 得分: 0.0分
答案解析:

12

下列关于条件语句的描述,错误的是( )
A、if语句中的条件表达式是一个布尔值
B、选择语句分为if条件语句和switch条件语句
C、switch语句中的表达式只能是布尔类型的值
D、switch语句只能针对某个表达式的值作出判断
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

switch语句中的表达式不是布尔值,switch语句中的表达式可以是byte、short、char、int、 enum、String等类型的值

13

下列选项中,哪一个是多行注释符号?( )
A、//* //
B、/
/*
C、/ /
D、/* */
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

/* / 表示多行注释,以“/”起始,以“*/”结束。

14

请阅读下列的程序,程序的运行结果是
public class Example01 {
public static void main(String[] args) {
int num = 127;
byte b = num;
System.out.println(b);
}
}
A、编译报错
B、编译通过,执行输出127
C、编译通过,执行报错
D、以上选项均不正确
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

将一个int型num变量的值赋给byte类型的变量b时,int类型的取值范围大于byte类型的取值范围,这样的赋值会导致数值溢出,需要进行强制类型转换,否则编译不能通过

15

下列关于while语句的描述中,正确的是
A、while语句循环体中可以没有语句
B、while语句的循环条件可以是整型变量
C、while语句的循环体必须使用大括号
D、while语句的循环体至少被执行一次
正确答案: A 我的答案:B 得分: 0.0分
答案解析:

while语句的循环条件必须是boolean类型的
while语句的循环体中只有一条语句时可以不用大括号
while语句的循环条件不满足时,循环体中的内容不执行

16

请阅读下面的程序片段
int x = 1, y = 1;
if (x++ == 2 & ++y == 2) {
x = 7;
}
System.out.println(“x=” + x + " , y=" + y);
程序的运行结果是( )
A、x=1,y=1
B、x=7,y=1
C、x=7,y=2
D、x=2,y=2
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

&符号的特点是两边的条件表达式只要有一个为false结果就为false,并且无论左边为true或者false,右边的表达式都会进行运算;++符号的特点是,如果在变量前面先运算后赋值,在变量后面先赋值再运算,因此最终结果为x=2,y=2

17

请阅读下面的程序
public class Test {
public static void main(String[] args) {
int a[] = {2,0,4,1,8,3,5};
int temp;
for (int i = 0; i < a.length - 1; i++) {
for (int j = a.length - 1; j > i; j–) {
if (a[j] < a[j - 1]) {
temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
}
}
}
for (Integer i : a) {
System.out.println(i);
}
}
}
下列选项中,哪一个是程序的运行结果( )
A、8,5,4,3,2,1,0
B、0,1,2,3,4,5,8
C、2,0,4,1,8,3,5
D、5,3,8,1,4,0,2
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

数组的冒泡排序法

18

若int[][] arr= {{1,2,3}},则arr[0][1]的结果为( )
A、0
B、1
C、2
D、3
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

题目中定义的二维数组只有一个一维数组,arr[0][1]表示要获取的是一维数组的第二个元素,因此正确答案为第3项

19

请阅读下面的程序
public class Test {
public static void main(String[] args) {
for(int x =0;x<5;x++)
{
if(x%2==0)
break;
System.out.print(x+” “);
}
}
}
下列选项中,哪一个是程序的运行结果
A、1 2 3 4 5
B、0 2 4
C、1 3
D、不输出任何内容
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

由于上述程序在for循环中使用了break语句,当执行到break语句时,就会跳出本次循环, break后的语句一直没有机会执行,因此,最后什么都不会输出

20

题号:请先阅读下面的代码。
int x = 1;
int y = 2;
if (x % 2 == 0) {
y++;
} else {
y–;
}
System.out.println(“y=” + y);
上面一段程序运行结束时,变量y的值为下列哪一项
A、1
B、2
C、3
A
20
下面选项中,哪个是短路与运算符( )
A、&
B、&&
C、|
D、||
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

运算符“&”和“&&”都表示与操作,当且仅当运算符两边的操作数都为true时,其结果才为true,否则结果为false。当运算符“&”和“&&”的右边为表达式时,两者在使用上还有一定的区别。在使用“&”进行运算时,不论左边为true或者false,右边的表达式都会进行运算。如果使用“&&”进行运算,当左边为false时,右边的表达式不会进行运算,因此“&&”被称作短路与

21

下列选项中,哪一个是十进制数6的二进制值( )
A、111
B、101
C、110
D、011
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

十进制转换成二进制就是一个除以2取余数的过程。把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0。最后将所有余数倒序排列,得到数就是转换结果

22

请阅读下面的程序
public class Test {
public static void main(String[] args) {
int i = 0;
int count = 0;
do {
if (!(i + “”).contains(“4”)) {
count++;
}
i++;
} while (i < 500);
System.out.println(“一共有:” + count);
}
}
下列选项中,哪一个是程序运行后count的值
A、322
B、323
C、324
D、325
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

判断500以内的数字,不包含4的个数,499-99-40-36=324。
99表示以4为百位数数字的个数,40表示以4为十位数数字的个数,36=4*9表示以4位个位数数字的个数

23

下列选项中,关于运算符“^”的描述正确是
A、二进制位有1,则结果为1
B、二进制位有0,则结果为0
C、二进制位有相同,则结果为1,不同为0
D、二进制位有相同,则结果为0,不同为1
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

位运算符“^”是将参与运算的两个二进制数进行“异或”运算,如果二进制位相同,则值为0,否则为1

24

请阅读下面的程序
public class Test {
public static void main(String[] args) {
int x;
int y;
for (x = 1, y = 1; x <= 100; x++) {
if (y >= 20) {
break;
}
if (y % 3 == 1) {
y += 3;
continue;
}
y -= 5;
}
System.out.println(“x=” + x + “,y=” + y);
}
}
下列选项中,哪一个是程序的运行结果
A、x=8,y=22
B、x=22,y=8
C、x=3,y=0
D、x=0,y=3
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

按照循环语句嵌套if语句的执行流程分析即可得到正确结果,注意break和continue语句的特点

25

请阅读下面的代码片段
public static int add(int a,int b) {
return a + b;
}
下列选项中,可以在main()方法中成功调用add()方法的是
A、int num = add(1.0,2.0);
B、int num = add(‘a’,‘b’);
C、int num = add(true,flase);
D、int num = add(“1”,“2”);
正确答案: B 我的答案:A 得分: 0.0分
答案解析:

调用add方法传入’a’和’b’会自动类型提升为int类型,查找对应的ascii码表值

26

阅读下段代码片段,选择正确的运行结果
public static void main(String[] args) {
{
int a = 1;
System.out.print(a);
}
{
int a = 2;
System.out.print(a);
}
int a = 3;
System.out.print(a);
}
A、123
B、111
C、121
D、编译不通过
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

变量的作用域为:从定义处开始,到变量所在块结束位置

27

如果x=4,y=2,则z=x&y值是
A、0
B、1
C、2
D、4
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

28

请阅读下面的程序
public class Example {
public static void main(String[] args) {
int x = 1;
do {
x++;
} while (x <= 4);
System.out.println("x = " + x);
}
}
运行程序后,下列选项中,哪一个是x的值
A、3
B、4
C、5
D、6
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

X=4时,继续执行x++,最后输出x的值,即4+1=5

29

声明一个数组,__[ ] a = new String[]{};空格处应该填写的的内容为()
修改
A、int
B、double
C、String
D、string
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

根据类型[] 数组名 = new 类型[]{元素,元素,……};的格式,此处需要填String

30

设有定义 int i = 6 ;,则执行以下语句后,i 的值为( )。
i += i - 1;
A、10
B、121
C、11
D、100
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

31

当String s=null;时,下列选项中会抛出空指针异常的是( )
A、if( (s!=null) & (s.length()>0) )
B、if( (s!=null) && (s.length()>0) )
C、if( (s!=null) &&(s.length()0) )
D、if( (s
null) || (s.length()==0) )
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

null赋值给引用型变量,不能访问该类型中的成员,由于选项1中使用的运算符号为&当(s!=null)无论为true或者false,右边的表达式都会执行,因此就会出现空指针异常。

32

程序的运行结果是
public class Example02 {
public static void main(String[] args) {
int x = 0; // 定义变量x,初始值为0
int y = 0; // 定义变量y,初始值为0
boolean b = x==0 || y++<0;
System.out.println("b = “+b+”, y = "+y);
}
}
A、b = false, y = 0
B、b = false, y = 1
C、b = true, y = 0
D、b = true, y = 1
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

答案为C。我们看表达式的执行流程:首先判断x==0是否成立,判断结果是true成立,那么“||”右边的表达式将不执行,将true的值赋给b,因为右边的表达式不参与运算,所以y的值还是0

33

下列选项中,用于引入包的关键字是
A、class
B、import
C、package
D、static
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

import关键字的作用是引入包

34

下面选项中,可以从数组int [] arr = {10,1,2,3,4,5,6,7,8,9,10}中求出元素10所对应角标值的是( )
A、for(int x=0;xarr[x]){ return x; } }
B、for(int x=1;xarr[x]){ return x; } }
C、for(int x=0;xarr[x]){ return x; } }
D、for(int x=1;xarr[x]){ return x; } }
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

数组的最大角标值比数组的长度小1,并且数组的角标值从0开始。所以前提条件是x=0且判断条件是x

35

请阅读下面的程序片段
boolean b=true;
if(b=false) {
System.out.println(“a”);
} else if(b) {
System.out.println(b);
} else if(!b) {
System.out.println(“c”);
} else {
System.out.println(“d”);
}
程序的执行结果是( )
A、a
B、b
C、c
D、d
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

条件语句的值为false,所以值为false的语句才可以输出,这里用到了逻辑运算符!(非)即!true 的值为false,因此输出结果是c

36

阅读下面的代码片段
public static int add(int a,int b) {
return a + b;
}
下列选项中,可以在main()方法中调用add()方法的是
A、int num = add(1.0,2.0);
B、int num = add(1,2);
C、int num = add(true,flase);
D、int num = add(“1”, “2”);
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

调用add方法时,传入参数的数据类型必须和方法的形参类型相同

37

请阅读下面的程序。
class WhileDemo5 {
public static void main(String[] args) {
int n = 5;
while (n < 10) {
System.out.print(n);
n++;
}
}
}
下列选项中,哪一个是程序运行的结果
A、无输出
B、输出56789
C、死循环
D、编译错误
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

while条件为true,循环体执行,每执行一次输出n的值,并且n递增

38

下列选项中,哪一个不能通过编译( )
A、byte a=1;
B、short b=100;
C、int c=‘a’;
D、long d=8888888888;
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

java中的整型数据默认是int类型,long d=8888888888;它的值超过了int类型的范围,这时如果要描述成一个long数据,必须在值后面加上L后l。

39

下列语句序列执行后,k 的值是( )。
int m=3, n=6, k=0;
while( (m++) < ( – n) ) ++k;
A、0
B、1
C、2
D、3
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

40

以下哪个选项可以正确创建一个长度为3的二维数组( )
A、new int [2][3];
B、new int[3][];
C、new int[][3];
D、以上答案都不对
正确答案: B 我的答案:C 得分: 0.0分
答案解析:

41

以下关于变量的说法错误的是?
A、变量名必须是一个有效的标识符
B、变量在定义时可以没有初始值
C、变量一旦被定义,在程序中的任何位置都可以被访问
D、在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声明
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

变量只在其定义的大括号内有效

42

若int a = 7;a %= 2;则执行后,变量a的值是
A、7
B、1
C、2
D、3
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

“a %= 2;”运算相当于“a = a % 2;”,因此a的值为7模于2后的结果,因此答案为B

43

下列关于注释的使用,错误的是?( )
A、int c = 10; //定义变量c
B、/* int c = 5; int x =6; /
C、/
* 这是类的入口方法 /
D、/
/int c = 10;/ int x=5; */
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

多行注释“//”中不能嵌套多行注释“//”,原因在于第一个 “/”会和第一个“/”进行配对,而第二个“*/”则找不到匹配。

44

下列关于多行注释的说法中,正确的是( )
A、多行注释中不能嵌套单行注释
B、多行注释中可以嵌套多行注释
C、多行注释中不可以有分号,逗号,括号等符号
D、多行注释中可以没有换行
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

多行注释中可以没有换行

45

下列语句正确的是()
A、int a={1,2,3}
B、int b=(1,2,3);
C、int c[]={1,2,3}
D、int []d={1 2 3}
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

46

请阅读下面的程序
class WhileDemo4 {
public static void main(String[] args) {
int n = 5;
while (n > 10) {
System.out.print(n);
n++;
}
}
}
下列选项中,哪一个是程序运行的结果
A、无输出
B、输出56789
C、死循环
D、编译错误
正确答案: A 我的答案:C 得分: 0.0分
答案解析:

由于变量n=5,因此while条件为false,循环不执行,没有任何结果输出

47

阅读下面程序片段
switch (i) {
case 1:
System.out.println(“message1”);
case 2:
System.out.println(“message2”);
case 3:
System.out.println(“message3”);
break;
}
请选择当变量i的值为多少时,程序只输出“message 3”
A、1
B、2
C、3
D、4
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

Switch语句在case后面没有加break语句会出现case穿透,所以i的值为1或2都会多输出结果,只有当i等于3的时候,输出结果只有“message3”

48

下列选项中关于二维数组的定义,格式错误的是( )
A、int[][] arr = new int[3][4]
B、int[][] arr = new int[3][]
C、int[][] arr = new int[][4]
D、int[][] arr = {{1,2},{3,4,5},{6}}
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

选项3错误,因为该选项没有给出二维数组的长度

49

请阅读下面的程序
public class Test {
public static void main(String[] args) {
int temp = 0;
for (int i = 1; i < 5; i++) {
for (int j = 0; j < i; j++) {
temp++;
}
}
System.out.println(temp);
}
}
下列选项中,哪个是程序的运行结果()
A、5
B、9
C、10
D、15
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

循环结束后temp的值为10

50

下面关于布尔类型变量的定义中,正确的是( )
A、boolean a=TRUE;
B、boolean b=FALSE;
C、boolean c=‘true’;
D、boolean d=false;
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

布尔类型的变量只有两个值,即true和false。

51

while语句的循环体中不能包含的语句是
A、while语句
B、方法定义语句
C、if语句
D、switch语句
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

while循环体中可以嵌套其它循环语句以及条件判断语句,但不能包含方法定义语句

52

下面的运算符中,用于执行除法运算是哪个?
A、/
B、
C、%
D、*
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

53

下面浮点型数据的定义中,错误的是( )
A、float a=1.23;
B、double b=1.23;
C、double c=1.5E4;
D、float d=‘a’;
正确答案: A 我的答案:C 得分: 0.0分
答案解析:

float类型的数据在定义浮点型数据时,必须在后面加上f或F;double类型的数据在定义时可以在后面加上d或D,也可以不加。

54

下列字符串常量中,哪一个是错误的( )
A、“abc”
B、“12’12”
C、“12”12”
D、“”
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

字符串常量用于表示一串连续的字符,一个字符串常量要用一对英文半角格式的双引号(” “)引起来,一个字符串可以包含一个字符或多个字符,也可以不包含任何字符,但不能包含特殊字符,例如在字符串中表示引号(”),需要用转义字符()。

55

下列关于int类型变量的定义,错误的是( )
A、int a=10;
B、int b,c=20;
C、int d=e=30;
D、int f=40;
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

变量定义的基本格式 数据类型 变量名=值;变量一定要先初始化后才可以使用。

56

当一个方法不需要返回数据时,返回类型必须是
A、boolean
B、int
C、char
D、void
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

57

下列选项中,按照箭头方向,需要进行强制类型转换的是
A、double ← float
B、float ← long
C、int ← char
D、char ←byte
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

byte是整数型变量,取值范围小于char,但是char是字符型变量,所以需要强制转换

58

下列选项中,哪一个是单行注释的符号?( )
A、\
B、//
C、/
D、
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

// 双斜杠表示注释单行代码

59

阅读下面的程序
public class Test {
public static void main(String[] args) {
for(int x = 0 ; x <=3 ; x++){
continue;
System.out.print(x%2);
}
}
}
运行结果正确的是
A、跳出循环,无输出
B、0121
C、01
D、0123
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

continue语句的作用是终止本次循环,因此contine后的代码永远不会被执行,都是无效代码

60

下列选项中,属于字符常量的是?( )
A、198
B、2e3f
C、“123”
D、‘a’
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

198属于整型常量,2e3f属于浮点数常量,“123”属于字符串常量

61

下列选项中,按照箭头方向,需要进行强制类型转换的是
A、int ← short
B、int ← byte
C、int ← char
D、int ← float
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

62

类型转换过程中,范围大的需要强制转换成范围小的62
阅读下列代码:System.out.println(“Hello” + 9 + 1);
下列选项中,哪个是正确的输出结果( )
A、Hello91
B、Hello10
C、Compilation fails.
D、An exception is thrown at runtime
正确答案: A 我的答案:C 得分: 0.0分
答案解析:

字符串常量与其他数据类型常量使用“+”进行操作时,返回结果还是字符串类型,因此输出Hello91。

63

下列选项中,属于布尔常量的是?( )
A、198
B、2e3f
C、true
D、N
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

198属于整型常量,2e3f属于浮点数常量,null属于null常量

64

关于方法的递归,以下说法正确的是
A、方法递归就是指在一个方法的内部调用自身的过程
B、方法递归其实就是调用其它方法
C、方法递归是指方法的返回值不同
D、以上说法都不对
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

方法的递归是指在一个方法的内部调用自身的过程,而且必须要有结束条件,不然就会陷入无限递归的状态,永远无法结束调用

65

下面哪种写法可以实现访问数组arr的第1个元素?
A、arr[0]
B、arr(0)
C、arr[1]
D、arr(1)
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

66

下列选项中,不属于位运算符的是
A、&
B、!
C、^
D、|
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

“!”是逻辑运算符,表示逻辑非

67

请阅读下面的程序
public class Example {
public static void main(String[] args) {
int x = 1;
do {
x++;
} while (x <= 4);
System.out.println("x = " + x);
}
}
程序的运行结果是
A、3
B、4
C、5
D、6
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

在循环完成时x的值为5

68

下列关于数组最值的描述中,错误的是( )
修改
A、要想求数组的最值必须先定义一个数组
B、在求数组最值时,初始时一定要将数组中的第一个元素的值赋给变量
C、求数组最值过程中,一定要对数组进行遍历
D、在求数组最大值时,使用变量记住每次比较后较大的那个值
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

69

下列选项中,属于字符常量的是( )
A、“a”
B、‘ab’
C、‘1’
D、1
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

字符常量用于表示一个字符,一个字符常量要用一对英文半角格式的单引号(’ ')引起来,它可以是英文字母、数字、标点符号、以及由转义序列来表示的特殊字符,如’a’。

70

下列选项中,哪个是程序的运行结果
class Test
{
public static void main(String[] args)
{
int a = 3;
int b = 6;
System.out.print(a==b);
System.out.print(a System.out.print(a!=b);
System.out.print(a>=b);
}
}
A、false false true false
B、false false true true
C、false true true false
D、true false false true
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

3==6(错),3<6(对),3!=6(对),3>=6(错)

71

请阅读下面的程序片段
int x = 3;
if (x > 5) {
System.out.print(“a”);
} else {
System.out.print(“b”);
}
选择程序的运行结果( )
A、a
B、b
C、ab
D、编译错误
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

if语句中的判断条件成立时,会执行if语句中的内容,否则会执行else语句中的内容,很明显3不大于5所以执行else语句的内容,输出结果为b

72

下列选项中关于二维数组的定义,错误的是( )
A、int[][] arr = new int[][2]
B、int[][] arr = new int[1][2]
C、int[][] arr = new int[2][]
D、int[][] arr = {{1},{2,3},{4,5,6}}
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

由二维数组的定义方式可知,int[][] arr = new int[][2] 中的int[]长度不能为空

73

下列关于数据类型的说法中,错误的是
A、Java中的数据类型分为基本数据类型和引用数据类型
B、int类型数据占4个字节
C、浮点数类型变量不能赋予一个整数数值
D、布尔类型的变量只有true和false这两个值
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

浮点数类型变量可以赋予一个整数数值

74

下面关于方法定义的描述中,正确的是
A、当方法没有返回值时,返回值类型要定义为void
B、当方法没有返回值时,返回值类型可以不写
C、当方法没有返回值时,不能有return语句
D、方法是不可以没有参数的
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

如果方法没有返回值,则返回值类型要定义为void;
方法中没有返回值也可以使用return语句,格式为return;
方法中可以定义参数,也可以不定义参数。

75

下列关于变量作用域的说法中,正确的是
A、在main()方法中任何位置定义的变量,其作用域为整个main()方法
B、块中定义的变量,在块外也是可以使用的
C、变量的作用域为:从定义处开始,到变量所在块结束位置
D、变量的作用域不受块的限制
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

变量的作用域为:从定义处开始,到变量所在代码块结束位置

76

以下关于变量的定义,正确的是 ( )
A、int a=10;
B、b=2;
C、int=20;
D、int a;b=a+10;
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

变量定义的基本格式 数据类型 变量名=值;变量一定要先初始化后才可以使用。

77

若二维数组int arr[][]={{1,2,3},{4,5,6},{7,8}};,则arr[1][2]的值是( )
A、2
B、5
C、6
D、0
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

数组角标从0开始计数,arr[1][2]表示的是二维数组中第2个一维数组中的第3个元素的值,因此答案是C

78

下列选项中,属于位运算符的是
A、+
B、++
C、^
D、()
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

&、|、~、^、<<、>>、>>>属于位运算符,+、++属于算术运算符

79

下面关于整数类型的描述中,错误的是( )
A、byte是java中的整数类型,它的取值范围是-127到128。
B、java中的整数有正负之分。
C、bit是java中的整数类型,它代表的是一个字节。
D、int是java中的整数类型,它在内存中占4个字节。
正确答案: C 我的答案:A 得分: 0.0分
答案解析:

java中的整型数据是分正负的,它细分为byte,short,int,long,在内存中分别占1,2,4,8个字节。

80

下列转义字符中,不合法的是( )
A、’\n’
B、’\x’
C、’\r’
D、’\t’
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

Java中的转义字符有\n、\r、\t、\b、’、"、\等

81

将十进制的6与11进行异或运算的结果为
A、11
B、12
C、13
D、14
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

位运算符“^”是将参与运算的两个二进制数进行“异或”运算,如果二进制位相同,则值为0,否则为1。然后将得出的二进制数转化成对应的整数值

82

关于continue语句的使用范围,下列说法正确的是
A、continue语句可以在选择语句中使用
B、continue语句可以在条件语句中使用
C、continue语句可以在循环语句中使用
D、不输出任何内容
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

continue语句只能在循环语句中使用

83

请阅读下列示例代码,选择程序的输出结果
int a = 1;
int b = a++;
int c = ++a;
int d = a++ + ++a;
System.out.print(a + “,” + b + “,” + c + “,” + d);
A、5,1,3,9
B、5,2,3,9
C、5,1,2,9
D、5,1,3,8
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

++在前表示先运行自加运算,++在后表示后运行自加运算

84

若x=6 ,y=5 则表达式int max=x>y?x:y 的结果为()
A、6
B、5
C、true
D、false
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

三元表达式语法结构:
判断条件 ? 表达式1 : 表达式2
当判断条件成立时,运算结果为表达式1的值,否则结果为表达式2的值

85

下面关于字符类型变量的定义中,错误的是( )
A、char a=‘97’;
B、char b=65535;
C、char c=‘a’;
D、char d=
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

char类型数据在定义时需要使用单引号引起的单个字符,也可以赋值为0-65535之间的数字。也可以使用Unicode 代码来描述

86

public class Example01 {
public static void main(String[] args) {
int[] arr = { 4, 1, 6, 3, 9, 8 }; // 定义一个数组
int minIndex = 0; //初始时设第1个角标处的值为最小值
for (int i = 1; i < arr.length; i++) {
if (______) {
minIndex = i;
}
}
System.out.println(“数组中的最小值为:”+arr[minIndex]);
}
}
请问在上述程序的横线处填写下列哪段代码,可以求到数组的最小值( )
A、i < minIndex
B、arr[i] < arr[minIndex]
C、arr[i] > arr[minIndex]
D、i > minIndex
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

求最小值比较的不是角标大小,而是数组中元素的大小

87

下列选项中,按照箭头方向,可以进行自动类型转换的是
A、char → int
B、short → char
C、float → long
D、char → short
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

类型转换过程中,只能范围小的会自动转成范围大的

88

下列各项中属于合法标识符的是( )
A、myid/2
B、+void
C、-5
D、_vacl
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

89

请阅读下面的程序
public class Example03 {
public static void main(String[] args) {
int x = 8;
if (x > 5) {
System.out.println(“a”);
} else {
System.out.println(“b”);
}
}
}
程序的运行结果是?()
A、true
B、false
C、a
D、b
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

因为判断条件8>5成立,所以{}中的语句会被执行,输出a

90

请阅读下面的程序
public class Test {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 1) {
continue;
}
sum += i;
}
System.out.println("sum = " + sum);
}
}
sum的值为()
A、1050
B、2550
C、2500
D、以上答案都不对
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

程序计算的是1到100间的偶数和,答案为2550

91

下列关于continue语句的说法中,正确的是
A、continue语句可以在选择语句中使用
B、continue语句可以在条件语句中使用
C、continue语句可以在循环语句中使用
D、continue语句可以在任何语句中使用
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

continue语句只能在循环语句中使用

92

已知类的继承关系如下:
class
class B extends
class C extends
则以下语句中能够通过编译的是?( )
A、A a=new B();
B、C c=new B();
C、C c=new A();
D、B b=new C();
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

假设A为犬类,B为狗,C为狼,那么狗当然属于犬类对象

93

下面关于字符变量的定义中,错误的是( )
A、char a=‘a’;
B、char b=97;
C、char c=0x61;
D、char d=A;
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

char类型数据在定义时需要使用单引号引起的单个字符,也可以赋值为0-65535之间的数字

94

下列关于case关键字的说法中,错误的是
A、case关键字后面必须是常量
B、case关键字后面的break必须存在
C、case关键字后面的break可以没有
D、case关键字后面的值必须不一样
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

case关键字后面的break可以没有

95

100属于下列哪种类型的常量( )
A、布尔类型
B、字符类型
C、整数类型
D、浮点类型
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

100属于整数类型的常量

96

下列有关数组中元素位置交换的描述,错误的是( )
修改
A、位置交换的过程中需要借助一个中间变量
B、位置交换的过程至少需要三步
C、位置交换后数组的角标顺序发生了改变
D、位置交换后数组的角标顺序不会发生改变
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

数组角标顺序不会变化,只是角标上的值发生了变化

97

下列数据类型中,哪种数据类型转为int类型需要进行强制转换
A、byte
B、short
C、char
D、float
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

在两种类型兼容的前提下,取值范围大的类型转换成取值范围小的类型时,需要进行强制类型转换

98

关于变量类型转换的描述中,正确的是
A、只有数据类型相同的数据才能进行运算
B、byte类型和short类型的数据是不能一起运算的
C、两个byte类型数据一起运算时会把先自动提升到int类型再运算
D、两个整型在一起运算时,结果一定是int
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

byte类型和short类型的数据一起运算时会把先自动提升到int类型,再运算

99

下列关于注释作用的描述中,错误的是?()
A、对程序进行说明
B、参与编译
C、帮助调试程序
D、帮助整理编程思路
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

注释不参与编译
100
表达式7%(-3)的运算结果为
A、-2
B、-1
C、2
D、1
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

在进行取模(%)运算时,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关

101

请阅读下面的程序
public class Test {
public static void main(String[] args) {
int m = 37;
int n = 13;
while (m != n) {
while (m > n) {
m -= n;
}
while (m < n) {
n -= m;
}
}
System.out.println(“m=” + m);
}
}
下列选项中,哪一个是正确的运行结果( )
A、m=37
B、m=13
C、m=1
D、m=2
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

本题中有三个循环语句,首先在外层循环中判断m!=n是否成立,如果成立进入内层循环,然后在内层循环中分别比较m>n还mn,会执行嵌套循环中的第2个,最终输出结果为1

102

下面代码中,哪一项是正确定义了一个3*4的二维数组
A、int[][] arr = new int[3][4]
B、int[][] arr = new int[3][]
C、int[][] arr = new int[][4]
D、int[][] arr = {{1,2},{3,4,5},{6}}
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

只有1选项正确给出了二维数组的长度,以及每一个一维数组的元素个数

103

请阅读下面的程序
public class SwitchDemo3 {
public static void main(String[] args) {
char c = ‘B’;
switch© {
case ‘A’:
System.out.println(“优”);
break;
case ‘B’:
System.out.println(“良”);
break;
case ‘C’:
System.out.println(“差”);
break;
}
}
}
下列选项中,哪一个才是程序的运行结果()
A、优
B、良
C、差
D、编译失败
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

char c=’B’与case ‘B’相匹配,因此输出结果为“良”

104

下面选项中,哪一个不是Java中的关键字
A、sizeof
B、const
C、public
D、goto
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

sizeof不属于Java语言中的关键字

105

假设x为int类型,那么下列选项中可以作为if语句的判断条件的是( )
A、x = 4
B、x & 3
C、x++
D、x<10
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

if判断条件只能是布尔值,上述选项中,只有x<10这个表达式的值是布尔值

106

下列关于方法的描述中,正确的是
A、方法是对功能代码块的封装
B、方法没有返回值时,返回值类型可以不写
C、没有返回值的方法,不能有return语句
D、方法是不可以没有参数的
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

如果方法没有返回值,则返回值类型要定义为void。
方法中没有返回值也可以使用return语句,格式为return。
方法中可以定义参数,也可以不定义参数。

107

下列选项中,属于浮点数常量的是?( )
A、198
B、2e3f
C、true
D、N
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

198属于整型常量,true属于布尔常量,null属于null常量

108

下面选项中,哪一个是合法的标识符
A、hello world
B、1Demo
C、3
D、class
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

标识符可以由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,不能是Java中的关键字

109

关于表达式1234/1000 * 1000的运算结果,下列哪个选项是正确的( )
A、1234
B、1000
C、1234.0
D、以上都不对
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

Java中,整数之间相除,会忽略小数部分,得到的结果还是整型数据。

110

下列关于浮点型数据的定义,哪一个不能通过编译( )
A、double a=12.45;
B、float b=12.45;
C、double c=100;
D、float d=100;
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

float类型的数据在定义浮点型数据时,必须在后面加上f或F.double类型的数据在定义时可以在后面加上d或D,也可以不加。

111

下列选项中,不属于Java中关键字的是
A、const
B、for
C、Final
D、class
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

Java中的关键字都是小写的

112

以下标识符中,不合法的是
A、user
B、$inner
C、class
D、login_1
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

class为java中的关键字

113

下列数据类型进行运算时,哪一个会发生自动类型提升
A、int + int
B、long + long
C、byte + byte
D、double + double
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

byte型的变量在运算期间类型会自动提升为int型

114

以下语法格式中,哪一个是三元运算符的语法格式( )
A、表达式1:表达式2?表达式3
B、表达式1?表达式2:表达式3
C、表达式1:表达式2:表达式3
D、以上答案都不对
正确答案: B 我的答案:D 得分: 0.0分
答案解析:

三元运算符语法格式:
表达式1?表达式2:表达式3;

115

请阅读下面的程序
Public class Test {
public static void main(String[] args) {
int a = 0;
int b = 0;
for (int i = 1; i <= 5; i++) {
A、= i % 2;
while (a-- >= 0) {
b++;
}
}
System.out.println(“a=” + a + “,b=”+
B、}
}
下列选项中,哪一个是正确的运行结果( )
A、a=8,b=-2
B、a=-2,b=8
C、a=3,b=0
D、a=0,b=3
正确答案: B 我的答案:B 得分: 0.8分
答案解析:

本题中有两个循环语句,分别是外层循环的for语句和内层循环的while语句,首先程序会执行for循环中的语句,并执行循环体中的表达式a=i%2,计算出a的值,然后在进入while循环计算b的值,循环往复直到外层循环条件i>5为止

116

下列选项中,不属于赋值运算符的是
A、-=
B、=
C、==
D、*=
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

选项C属于比较运算符,其他三项属于赋值运算符

117

关于方法的递归,以下说法错误的是
A、方法递归必须有结束条件
B、方法递归次数太多会导致内存溢出
C、方法递归就是指在一个方法的内部调用自身的过程
D、方法递归可以无数次,只要有结束条件就可以
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

方法的递归是指在一个方法的内部调用自身的过程,递归必须要有结束条件,不然就会陷入无限递归的状态,永远无法结束调用。如果递归此次数太多就会导致内存溢出关于方法的递归,以下说法错误的是

118

表达式3510/1000的运算结果为
A、3
B、3.51
C、3.510
D、4
正确答案: A 我的答案:A 得分: 0.8分
答案解析:

整数之间相除,会忽略小数部分

119

public class Test {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
continue;
}
sum += i;
}
System.out.println(sum);
}
}
下列选项中,哪一个是程序的运行结果( )
A、1050
B、2050
C、2500
D、以上答案都不对
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

程序表示求出100以内,所有奇数的和

120

下列选项中,不属于基本数据类型的是
A、String
B、short
C、boolean
D、char
正确答案: A 我的答案:C 得分: 0.0分
答案解析:

Java中的8种基本数据类型分别是byte、short、int、long、float、double、char和boolean,其中不包含String类型,String属于引用类型

121

int a[ ]={45,4,67,23,65,87,34,52,56};数组中a[5]的值为( )
A、23
B、45
C、65
D、87
正确答案: D 我的答案:D 得分: 0.8分
答案解析:

数组的索引值从0开始,a[5]表示第6个元素即87

122

请阅读下面的程序
public class Test {
public static void main(String[] args) {
int temp = 0;
for (int i = 1; i < 5; i++) {
for (int j = 0; j < i; j++) {
temp++;
}
}
System.out.println(temp);
}
}
下列选项中,哪一个是正确的运行结果( )
A、5
B、9
C、10
D、15
正确答案: C 我的答案:C 得分: 0.8分
答案解析:

嵌套for循环,依次实现1,2,3,4,5以内数字的叠加运算。外层for循环,每次循环后temp的值依次为:1,3,6,10;

123

下列选项中,哪个是八进制043的十六进制表示形式( )
A、0x43
B、0x23
C、23
D、0x32
正确答案: B 我的答案:B 得分: 2.4分
答案解析:

十六进制数字以0x或者0X开头,八进制以3个二进制位为一个单元,而十六进制以4个二进制位为一个单元计算每一位数。运算过程:八进制043 ->二进制0010 0011 -> 十六进制 0x23
)

你可能感兴趣的:(java练习题)