一套Java测试题 带答案

2010年11月16日 01:20 阅读 20 Java

试题1
指出下面语句没有编译错误的是( )。
A. long n = 999999999999;
B.int n = 999999999999L;
C. long n = 999999999999L;
D. double n = 999999999999;
试题2
完成代码计算10的阶乘并输出,应该填入的代码是( )

long result = 1;
for(int i = 2; i <= 10; i++) {
< 填入代码 >
}
System.out.println(“result= ” + result);
… … …
A. result = result * i;
B. result = i*i;
C. result = i*(i+1);
D. reslut = i*(i-1);
试题3
下列关于数组的声明错误的是
A.int[] arry = new int[100];
B. int[3] arry = {1,2,3}
C. int[] arry = new int[]{1,2,3}
D. int[][] arry = new int[3][]
试题4
实现对数组arry的冒泡排序,应填入的代码是
public static void bubbleSort(int[] arry) {
int len = arry.length;
for (int i = 1; i < len; i++) {
boolean asc = true;
< 填入代码 >
if (asc) return;
}
}

private static void swap(int[] arry, int i, int j) {
int temp = arry[i];
arry[i] = arry[j];
arry[j] = temp;
}

A.
for (int j = len-1; j > i; j–) {
if (arry[j] < arry[j - 1]) {
swap(arry, j, j – 1);
asc = false;
}
}
B.
for (int j = len – 1; j >= i; j–) {
if (arry[j] < arry[j - 1]) {
swap(arry, j, j – 1);
asc = false;
}
}
C.
for (int j = len – 1; j >= i; j–) {
if (arry[j] > arry[j - 1]) {
swap(arry, j, j – 1);
asc = false;
}
}
D.
for (int j = len – 1; j >= i; j–) {
if (arry[j] < arry[j - 1]) {
swap(arry, j, j – 1);
asc = true;
}
}
试题5
数列1,1,2,3,5,…(从第三项开始每一项是前两项之和)
下面的代码用于求第100项的值,应填入的代码是

int n = 100; //项目数
long n1 = 1, n2 = 1;
for (int i = 3; i <= n; i++) {
< 填入代码 >
}
System.out.println(n2);

A. n2 = n1 + n2;
B. n2 = n1 + n2; n1 = n2;
C. n2 = n1 – n2; n1 = n2 – n1;
D. n2 = n1 + n2; n1 = n2 – n1;
试题6
语句System.out.println(1+2+”java”+3+4)输出的结果是( C )。
A. 3java34
B. 12java34
C. 3java7
D. 12java7
试题7
下面程序的输出结果是:C
public static void main(String[] args) {
int d = 325;
int sum = 0;
while (d > 0) {
int n = d % 10;
sum += n;
d /= 10;
}
System.out.println(sum);
}

A. 10
B. 12
C. 5
D. 32
试题8
下面的程序没有编译错误的是:
A.
public class Main{
public static void main(String[] args) {
byte b1 = 1;
byte b2 = 2;
byte b = b1+b2;
}
}
B.
public class Main{
public static void main(String[] args) {
int n;
for(int i=0;i<10;i++) {
n +=i;
}
}
}
C.
public class Main{
public static void main(String[] args) {
int n = 100;
for(;;) {
}
System.out.println(n);
}
}
D.
public class Main{
public static void main(String[] args) {
int n = 100;
while(n>0);
System.out.println(n);
}
}
试题9 D
Java语言中int类型标示整数的最大范围是

A. -2147483647 ~ 2147483647
B. -2147483648 ~ 2147483647
C. -32767~32767
D. -32768~32767
试题10 A
Java语言中字符串“学Java”所占的内存空间是
A. 6个字节
B. 7个字节
C. 10个字节
D. 11个字节
试题11
下面的代码使用二分法在有序的int类型数组arry查找元素key,如果找到输出元素在数组中的下标
否则输出-1,应该填入的代码是:

public static void main(String[] args) {
int key = 16;
int[] arry = { 1, 3, 5, 7, 8, 10, 12, 15, 16 };
int low = 0;
int high = arry.length – 1;

while (low <= high) {
< 填入代码 >
else {
System.out.println(mid);
return;
}
}
System.out.println(-1);
}
A.
int mid = (low + high) >>> 1;
if (arry[mid] > key)
low = mid + 1;
else if (arry[mid] < key)
high = mid – 1;
B.
int mid = (low + high) >>> 1;
if (arry[mid] < key)
low = mid;
else if (arry[mid] > key)
high = mid – 1;
C.
int mid = (low + high) >>> 1;
if (arry[mid] < key)
low = mid + 1;
else if (arry[mid] > key)
high = mid;
D.
int mid = (low + high) >>> 1;
if (arry[mid] < key)
low = mid + 1;
else if (arry[mid] > key)
high = mid – 1;
试题12
下面的代码试图从26个小写字母中随机抽取5个不重复的字母,并输出到控制台。
其中random(int n)方法用于返回大于等于0且小于n的随机整数。应填入的代码是:
public static void main(String[] args) {
int num = 10;
char[] ch = { ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’, ‘k’,
‘l’, ‘m’, ‘n’, ‘o’, ‘p’, ‘q’, ‘r’, ‘s’, ‘t’, ‘u’, ‘v’, ‘w’,
‘x’, ‘y’, ‘z’ };
int len = ch.length;
char[] result = new char[num]; // 用于存放抽取结果
boolean[] flags = new boolean[len];

< 填入代码 >

for (int i = 0; i < result.length; i++) {
System.out.print(result[i]+” “);
}
}

public static int random(int n) {
Random r = new Random();
return r.nextInt(n);
}
A.
for (int i = 0; i < num; i++) {
int r;
do {
r = random(len);
} while (!flags[r]);
result[i] = ch[r];
flags[i] = false;
}
B.
for (int i = 0; i < num; i++) {
int r;
do {
r = random(len);
} while (!flags[r]);
result[i] = ch[r];
flags[r] = true;
}
C.
for (int i = 0; i < num; i++) {
int r;
do {
r = random(len);
} while (flags[r]);
result[i] = ch[r];
flags[r] = true;
}
D.
for (int i = 0; i < num; i++) {
int r;
do {
r = random(len);
} while (!flags[r]);
result[i] = ch[r];
flags[r] = true;
}
试题13
对JDK描述错误的是 C
A. 运行Java程序只要有JRE环境就可以,不一定需要全部JDK的功能
B. JDK中包括JVM、核心类库、Java开发工具(java,javac)等
C. JDK本身也是平台无关的,不同的操作系统安装的JDK是一样的
D. JDK的全称是 Java Development Kit
试题14
对CLASSPATH描述正确的是 D
A. 设置CLASSPATH用于指示操作系统找到JDK命令,如java或javac
B. CLASSPATH设置不对,可能会导致java命令失败,但不会导致javac失败
C. CLASSPATH的设置中可以包含目录路径但不可以包含文件路径
D. java命令可以通过 -cp 参数指定类路径
试题15
下面代码的输出结果是 b
public class Main {
public static void main(String[] args) {
int n1 = 1;
int n2 = 2;
n1 = n1 + n2; 3
n2 = n1 – n2; 1
n1 = n1 – n2; 2
System.out.println(n1 + “,” + n2);
}
}
A. 1,2
B. 2,1
C.1,3
D. 3,2
试题16
下面代码的输出结果是 C
public class Main {
public static void main(String[] args) {
int n = 100;
int m = 200;
System.out.println(f(n,m));
System.out.println(n);
}

public static int f(int m, int n) {
n = m+n;
return n;
}
}
A. 300
300
B.
100
100
C.
300
100
D.
100
300
试题17
下面关于Java语言中方法的说法错误的是 :D
A. 方法调用时参数类型必须符合方法的定义
B. 参数传递是值传递的方式
C. 如果方法没有返回值必须声明返回为void
D. 如果方法定义为返回void,则方法中不能出现return语句

试题18
下面不属于Java语言特点的是:C
A. 平台无关
B. 面向对象
C. 支持指针类型
D. 垃圾回收机制
试题19
下面代码的输出结果是 B

double money = 3.0;
money -= 2.9;
System.out.println(money==0.1);

A. 0.1
B. 0.10000000000000009
C. 0.099
D. 0
试题20
关于数组的说法正确的是 D
A. 数组类型属于基本类型
B. 数组创建后,其的长度可以改变
C. int[]类型的变量可以直接赋值给long[]类型的变量
D. 数组的长度必须在创建是指定

还没有评论!