一、问答题
1. 如何声明和创建一个一维数组?
Int i[]=new int[3]
2. 如何访问数组的元素?
Int a[]=new int a[3]
for (int x=0;x<a.length;x++){
System.out.print(i[x]);
}
System.out.println();
3.数组下标的类型是什么?最小的下标是什么?一维数组a的第三个元素如何表示?
整型 最小下标为0;a[3]
4.怎样获取一维数组的长度,怎样获取二维数组中一维数组的个数。
5.数组越界访问会发生什么错误?怎样避免该错误?
Array Index Out Of Bounds Exception数组越界异常 应明确数组的范围大小避免出现数组下标大于实际存储数量-1
二、选择题
1.下面正确的初始化语句是
c
A. char str[]=”hello”; B. char str[100]=”hello”;
C. char str[]={‘h’,’e’,’l’,’l’,’o’}; D. char str[]={‘hello’};
2.定义了一维int型数组a[10]后,下面错误的引用是
B
A. a[0]=1; B. a[10]=2; C. a[0]=5*2; D. a[1]=a[2]*a[0];
3.下面的二维数组初始化语句中,正确的是
D
A. float b[2][2]={0.1,0.2,0.3,0.4}; B. int a[][]={
{1,2},{3,4}};
C. int a[2][]= {
{1,2},{3,4}}; D. float a[2][2]={0};
4.引用数组元素时,数组下标可以是
D
A. 整型常量 B. 整型变量 C. 整型表达式 D. 以上均可
5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为
B
A. 24 B. 25 C. 18 D. 17
6.下列初始化字符数组的语句中,正确的是
B
A. char str[5]=”hello”; B. char str[]={‘h’,’e’,’l’,’l’,’o’,’\0′};
C. char str[5]={“hi”}; D. char str[100]=””;
7.数组在Java中储存在( )中C
A. 栈 B. 队列 C. 堆 D. 链表
8.下面( )不是创建数组的正确语句
C
A.float f[][]=new float[6][6]; B.float f[]=new float[6];
C.float f[][]=new float[][6]; D.float [][]f=new float[6][];
9.下面不是数组复制方法的是
C
A. 用循环语句逐个复制数组 B. 用方法arraycopy
C. 用”=”进行复制 D. 用clone方法
10.数组a的第三个元素表示为
D
A. a(3) B. a[3] C.a(2) D. a[2]
11.当访问无效的数组下标时,会发生
B
A. 中止程序 B. 抛出异常 C. 系统崩溃 D. 直接跳过
12.使用arraycopy()方法将数组a复制到b正确的是
A
A. arraycopy(a,0,b,0,a.length) B. arraycopy(a,0,b,0,b.length)
C.arraycopy(b,0,a,0,a.length) D. arraycopy(a,1,b,1,a.length)
13.关于数组默认值,错误的是
B
A. char–‘”u0000’ B. Boolean–true C. float–0.0f D. int– 0
14.关于数组作为方法的参数时,向方法传递的是
A
A. 数组的引用 B. 数组的栈地址 C. 数组自身 D. 数组的元素
15.关于数组复制,下列说法错误的两项是
AC
A. “=”可以实现数组复制
B. 运用循环语句进行数组复制必须两个数组长度相同
C. arraycopy()方法没有给目标数组分配内存空间
D. 数组复制是数组引用的传递
16.下列语句会造成数组new int[10]越界是
D
A. a[0] += 9; B. a[9]=10; C. —a[9]
D. for(int i=0;i<=10;i++) a[i]++;
17.关于数组排序方法,错误的是
C
A. 选择排序 B. 插入排序 C. 二分排序 D. 用arrays.sort( )排序
18.关于char类型的数组,说法正确的是
D
A. 其数组的默认值是’A’ B. 可以仅通过数组名来访问数组
C. 数组不能转换为字符串 D. 可以存储整型数值
19.对于数组a[10],下列表示错误的是
B
A. a[0] B. a(0) C. a[9] D. a[1]
20.下列数组声明,下列表示错误的是
D
A. int[] a B. int a[] C. int[][] a D. int[]a[]
21.对于int a[] = new int[3];下列哪个叙述是错误的?
B
A. a.length的值是3。
B. a[1]的值是1。
C. a[0]的值是0。
D. a[a.length-1]的值等于a[2]的值。
22.下列代码的执行结果是
A
public class Beirun{
public static void main(String args[]){
System.out.println(5/2);
}
}
A. 2.5 B. 2.0 C. 2.50 D. 2
23. 下列代码的执行结果是
B
public class Beirun{
public static void main(String args[]){
System.out.println(100%3);
System.out.println(100%3.0);
}
}
A. 1和1 B. 1和1.0 C. 1.0和1 D. 1.0和1.0
三、阅读程序
1.上机调试下列程序,注意System.out.print()和System.out.println()的区别。
2.下列程序标注的【代码1】,【代码2】的输出结果是什么?
public class E {
public static void main (String args[ ]){
long[] a = {1,2,3,4};
long[] b = {100,200,300,400,500};
b = a;
System.out.println(“数组b的长度:”+b.length); //【代码1】
System.out.println(“b[0]=”+b[0]); //【代码2】
}
}
输出结果为:数组b的长度:4
B[0]=1
3.下列程序标注的【代码1】,【代码2】的输出结果是什么?
public class E {
public static void main(String args[]) {
int [] a={10,20,30,40},b[]={
{1,2},{4,5,6,7}};
b[0] = a;
b[0][1] = b[1][3];
System.out.println(b[0][3]); //【代码1】
System.out.println(a[1]); //【代码2】
}
}
输出结果为
; 40 7
4.下面程序的运行结果是
main() {
int a[][]={
{1,2,3},{4,5,6}};
System.out.printf(“%d”, a[1][1]);
}
输出结果为
: 5
5.下面程序的运行结果是
main() {
int x=30;
int[] numbers=new int[x];
x=60;
System.out.println(numbers.length);
}
输出结果为:
30
6.下面程序的运行结果是
main() {
char s1[]=”ABCDEF”.toCharArray();
int i=0;
while(s1[i++]!=’\0′)
System.out.println(s1[i++]);
}