admin 管理员组文章数量: 887021
2024年1月11日发(作者:霹雳布袋戏2021年最新)
填空题
1) 数组的元素通过下标 来访问,数组Array的长度为o
2) 数组复制时,将一个数组的 引用 传递给另一个数组。
3) 没有显式引用变量的数组称为匿名数组。
4) JVM将数组存储在堆 (堆或栈)中。
5) 数组的二分杳找法运用的前提条件是数组已经排序。
6) 矩阵或表格一般用 _维数组表示。
7) 如果把二维数组看成一维数组,那么数组的元素是一维 数组。
8) Java中数组的下标的数据类型是整型。
9) 不用下标变量就可以访问数组的方法是 foreach循环。
10) 数组最小的下标是0。
11) array copy()的最后一个参数指明复制元素的个数。
12) 向方法传递数组参数时,传递的是数组的引用。
13) 线性杳找法的平均查找长度为n*(n-l)/2。
14) 数组初始化包括数组声明、创建和初始化。
15) 数组下标访问超出索引范围时抛出arraylndexOutOfBoundsException异常
16) 浮点型数组的默认值是他。
17) 对象型数组的默认值是皿1。
18) 对象类型的数组虽然被默认初始化,但是并没有调用其构造函数。
19) 二维数组的行的长度可以不同。
20) 数组创建后其大小不能改变。 选择题
1•下面错误的初始化语句是_P_
A) char str[]="hello";
B) char str[100]=nhello";
C) char str[]={h,e,T,T,d};
D) char str[]={hello'};
2. 定义了一维int型数组a[10]后,下面错误的引用是 —
A) a[0]=l;
B) a[10]=2;
C) a[0]=5*2;
D) a[l]=a[2]*a[0];
3. 下面的二维数组初始化语句中,错误的是—__
A) float b⑵[2]={0.1,0.2,0.3,0.4);
B) inta[][2] ={{1,2},{3,4}};
C) inta[2][]={{l,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. 下列初始化字符数组的语句中,错误的是_C—
A) char str[5]="hello";
B) char str[]={'h','e',T,T,'o','0'};
C) charstr[5]={"hi"};
D) char str[ 100]="";
7. 数组在Java中储存在C中
A)栈 B)队列 C)堆 D)链表
8. 下面程序的运行结果是__C__
main()
{
int x=30;
Int[] numbers=new int[x];
X=60;
n();
}
A) 60 B) 20 C) 30 D) 50
9. 下面不是创建数组的正确语句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][];
10. 下面不是数组复制方法的是(C)
A用循环语句逐个复制数组 B用方法arraycopy
C用进行复制 D用clone方法
11. 数组a的第三个元素表示D
Aa(3) B a[3]
Ca⑵ D a[2]
12. 当访问无效的数组下标时,会发生B
A中止程序 B抛出异常
C系统崩溃 D直接跳过
13. 使用arraycopy()方法将数组a复制到b正确的是A
A arraycopy(a,0,b,0,) B arraycopy(a,0,b,0,)
C arraycopy(b,0,a,0,) D arraycopy(a,l ,b,l ,)
14•关于数组默认值,错误的是B • ' 「
Achar—T"u0000' B Boolean—true
Cfloat— D int— 0
15. 关于数组作为方法的参数时,向方法传递的是A
A数组的引用 B数组的栈地址
C数组自身 D数组的元素
16. 关于数组复制,下列说法错误的是C
A 可以实现数组复制
B运用循环语句进行数组复制必须两个数组长度相同
C arraycopy()方法没有给目标数组分配内存空间
D数组复制是数组引用的传递
17. 下列语句会造成数组new int[10]越界是D
Aa[0]+=9; B a[9]=10;
C—a[9] D for(int i=0;i<=10;i++) a[i]++;
18. main方法是java Application程序执行的入口点。关于main方法放入方法以 下合法的是B
A public
void main();
static
B
public static
void
C
public
main( String []
static public void main(String arg[])
D
如定义对arg s) int
象 StringBuffer ch = new StringBuffer( "
19.
Shanghai ")则 ch. length()=( B )
A. 7 B. 8 C . 9 D. 2 3
Bx[24]未定义 C x[25]为 0 D。x[0]为空
B可以仅通过数组名来访问数组
D可以存储整型数值
下列表示错误的是B
B a(0)
Da[l]
下列表示错误的是D
B int a[]
20. 执行完代码“int[]x=new int[25];^^后以下(A)说明正确的
A.x[24]为 0
21. 关于char类型的数组,说法正确的是B
A其数组的默认值是,A
C数组不能转换为字符串
22. 对于数组a[10],Aa[0]
Ca[9]
23. 下列数组声A int[] a
Cint[][] a
明,
Dint[]a[]
是非题
1•下标用于指出数组中某个元素位置的数字。(F )
2. 把数组中元素按某种顺序排列的过程叫做查找。(T )
3. 确定数组中是否含有某个关键字的过程叫做排序。(F )
4. 一个数组可以存放许多不同类型的数值。(F )
5. 数组的下标通常是float型(F )
6. 数组的某个元素被传递给一个方法并被该方法修改,当被调用方法执行完毕 时,这个元素中含有修改过的数值。(F )
7. 数组可以声明为任何数据类型。(T )
&数组由具有一名字和相同类型的一组连续内存单元构成。(T )
9. 在数组声明中可以用等号及一个逗号分隔的初始值表初始化数组元素,该数组 大小只能由用户来决定。(F )
10. 将一个数组传递给一个方法,必须加在数组名后加方括号。(F )
11. Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。
(T )
12. 下面这条语句正确吗? ( F )
double, ] myList;
myList = {1.9, 2.9, 3.5, 4.6};
13. Java中数组的元素可以是简单数据类型的量,也可以是某一类的对象。(T)
14. 数组中有length()这个方法,如()表示数组array中元素的个数
(F )
15. 下面这条语句正确吗?( F )
intt[3][2] = {{l,2},{3,4},{5,6}};
16. 数组声明后其大小固定。(F)
17. 设有整型数组的定义:inta[]=newint⑻;,贝'J 的值为7。(F)
数组一旦创建,其大小不能再改变。(T )
19•用任何方式创建数组时,都必须指定数组的长度。(F )
20.声明数组时,要指定数组长度,以便为数组分配内存。(F )
简答题
1. 如何声明和创建一个一维数组?
答:声明数组:数据类型[]数组名或 数据类型数组名[] 创建数组:数据类型[]数组名=new数据类型[数组长度]
2. 如何访问数组的元素?
答:数组的元素通过下标来访问,数组的下标是基于0的,它们从0开始到 arrayObj
ect .lenth-1 结束。
3. 数组下标的类型是什么?最小的下标是什么? 一维数组a的第三个元素如何表
示?
答:数组下标的类型是整型,最小的下标是0,数组a的第三个元素表示为a[2]。
4. 数组越界访问会发生什么错误?怎样避免该错误?
答:越界访问数组会发生编译错误,它引出一个运行错误
ArraylndexOutOfBoundsException□为避免错误的发生,在使用时应确保下标不 超过数组长度减1.
5. 给方法传递数组参数与传递基本数据类型变量的值有何不同? 答:对于基本数据类型参数,传递的是实参的值;
对于数组类型的参数,参数值是数组的引用,给方法传递的是这个引用。
6. 复制数组有哪些方法?
答:复制数组有3种方法:
(1) 用循环语句分别复制数组的每一个元素;
(2) 使用System类中的静态方法arraycopy;
(3) 使用clone方法复制数组。
7. 数组创建后,其元素被赋予的默认值有哪些?
答:数值型基本数据类型默认值为
0, char 型为'u0000', boolean 为 false。
&如何声明和创建一个二维数组?
答:声明数组:数据类型[][]数组名
创建数组:数组名=new数据类型[元素个数][元素个数]
9. 声明数组变量会为数组分配内存空间吗?为什么?
答:不会。数组变量不是基本数据类型变量,数组变量包含一个数组的引用,不 同于声明基本类型变量,声明数组变量并不给数组分配任何空间。
10. —个二维数组的行可以有不同的长度吗?如果可以,试创建一个此类型的数 组。
答:可以。
创建的数组如下:
int[][] triangleArray = new int[5][] triangleArray[O] = new int[5];
triangleArray[l] = new int[4];
triangleArray[2] = new int[3];
triangle Array [3] = new int[2];
triangleArray[4] = new int[l];
程序题
1•有一个整数数组,其中存放着序列1, 3, 5, 7, 9, 11, 13, 15, 17, 19。请 将该序列倒序存放并输出。
程序代码:
1) public class Test {
2) public static void main(String[] args) {
3) int a[] = {1,3,5,7,9,11,13,15,17,19};
4) int t;
5)
n(”数组的初始状态为:”);
6)
7)
8)
9)
10)
11)
⑵
for (int i=0; i < ; i++)
(n " + a[i]);
nO;
for (int i=0; i < /2; i++) {
t = a[i];
a[i] = a[-i-l];
a[-i-l]=t;
}
⑸
⑹ System, out. printlnC数组逆序存放后的状态1为:”)
for (int i=0; i < ; i++)
7)
(" " + a[i]);
8)
}
⑼
2
}
0)
2. 编写一个程序,提示用户输入学生数量、姓名和他们的成绩,并按照成绩的降
序来打印学生的姓名。
程序代码:
1) import nPane;
2)
2) public class exercise 16 {
3) public static void main(String[ ] args) {
4)
5)
6)
8)
7)
8)
String numberString =
putDialog("Enter the number of students");
int numberOfStudents = nt(numberString);
String[] names = new String[numberOfStudents];
doublet] scores = new double[numberOfStudents];
H)
12) for (int i = 0; i < ; i++) {
13) names[i] = putDialog(nEnter a student name");
14) scores[i] = seDouble(
15) putDialog("Enter a student score*'));
16) }
18) for (int i = ・ 1; i >= 1; i—) {
19) double currentMax = scores[0];
20) int currentMaxIndex = 0;
22) for (intj= l;j<= i;j卄){
23) if (currentMax < scores[j]) {
24) currentMax = scores[j];
25) currentMaxIndex = j;
26) }
27) }
29) if (currentMaxIndex != i) {
30) scoresfcurrentMaxIndex] = scores[i];
31) scores[i] = currentMax;
32) String temp = names[currentMaxIndex];
33) names [currentMaxIndex] = names[i];
34) names [i] = temp;
35) }
36) }
38) for (int i = - 1; i >= 0; i—) {
39) System, n(names[i] + "t" + scores[i]);
40) }
41) }
42) }
8. 编写一个程序,生成0-9之间的100个随机整数并且显示每一个数的个数。序代码:
1) public class exercise7 {
2) public static void main(String[] args) {
3) int[] numbers = new int[100];
4) int[] counts = new int[10];
5)
5) int k;
6) for (int i = 0; i < 100; i++)
7) {
8) numbers[i] = (int)(() * 10);
9) counts[numbers[i]]++;
程
10) }
⑵
13)
n("the 100 numbers is for(int i = 1; i <= ; i++) {
if(i% 10 !=0)
⑸
(numbers[i-l] + ” "); else
16)
System. n(numbers[i-l]);
17)
}
18)
⑼
n("the counts of each number is for(int i = 1 ; i <= ;
20)
i++)
21)
(counts[i-1] + " ”);
22)
23)
24)
26) }
编写一个程序,求出整数数组中最小元素的下标。如果这样的元素个数大253.
)
于1,
则返回下标最小的数的下标。
程序代码:
1public class Minlndex {
)
2public static void main(String[] args) {
)
3int[] list = {1,2,4, 5, 10, 100, 2, -22};
)
4
)
n("The min is ” + minlndex(list))
)
6}
)
7
)
8public static int minlndex(intn list) {
)
9int min = list[O];
)
1int minlndex = 0;
01
1⑵
for (int i = 1; i < ; i++)
if (min > list[i]) {
⑶
1min = list[i];
4⑸
minlndex = i;
1}
61
71return minlndex;
8}
⑼
4.
现在有如下的一个数组:
int oldArr[]={ 1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成 的新数组为:
int newArr[]={ 1,3,4,5,6,6,5,4,7,6,7,5};
思路:生活中的问题解决=程序中的解决;
1、确定出不为0的个数,这样可以开辟新数组;
2、从旧的数组之中,取出内容,并将其赋给新开辟的数组; public class MyDemo
{
public static void main(String args[]){
int oldArr [] = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int newArr [] = newint[count(oldArr)] ; // 新数组
fun(oldArr,newArr);
print(newArr);
}
public static void fun(int src[],int data[]){
int foot = 0 ; //控制新数组的脚标,data
for(int x = 0 ; x < ; x++){
if(src[x] !=0){ data[foot++] = src[x];
}
}
}
public static int count(int tempi ]){
int num = 0 ;
for(int x = 0 ; x < ; x++){
if(temp[x] != 0){ num ++ ;
}
}
return num ;
}
public static void print(int temp[]){
for(int x = 0 ; x< ; x++){ (temp[x] + ”、”);
}
}
}
5.现在给出两个数组:
•数组 A: 7, 9, 11, 13, 15, 17, 19:;
•数组 b: “2, 4, 6, 8, 10” 两个数组合并为数组c,按升序排列。
public class MyDemo {
public static void main(String args[]){
int datal [] = new int[] {1,7,9,11,13,17,19};
int data2 [] = new int[] {2,4,6,8,10};
int newArr [] = concat(datal ,data2);
. Arrays. sort(newArr); print(newArr);
}
public static int[] concat(int srcl[],int src2[]){
int len = + ; // 新数组的大小
int arr|] = new int[len] ; // 新数组
opy(srcl,0,arr,0,); // 拷贝第一个数组
opy(src2,0,arr,,src2.1ength) ; // 拷贝第二个数组
return arr;
}
public static void print(int temp[]){ for(int x = 0 ; x< ; x++){
//统计个数
(temp[x] + ”、"); }
}
}
版权声明:本文标题:Java 数组练习答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1704980335h468398.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论