Java数组练习题带答案.docx
- 文档编号:28385135
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:22
- 大小:25.64KB
Java数组练习题带答案.docx
《Java数组练习题带答案.docx》由会员分享,可在线阅读,更多相关《Java数组练习题带答案.docx(22页珍藏版)》请在冰豆网上搜索。
Java数组练习题带答案
一
填空题
1)
数组的元素通过
下标
来访问,数组
Array的长度为
Array.length
。
2)
数组复制时,"="将一个数组的
引用
传递给另一个数组。
3)
JVM将数组存储在
栈
(堆或栈)中。
4)
数组的二分查找法运用的前提条件是数组已经
排序
。
5)
Java中数组的下标的数据类型是
整型
。
6)
数组最小的下标是
0
。
7)
arraycopy()的最后一个参数指明
复制元素的个数
。
8)
向方法传递数组参数时,传递的是数组的
引用
。
9)
数组初始化包括
数组的申明,创建和初始化
。
10)
数组下标访问超出索引范围时抛出
数组越界
异常
11)
浮点型数组的默认值是
0.0f
。
12)
数组创建后其大小
不能
改变。
二
选择题
1.下面错误的初始化语句是_ABD__
A.charstr[]="hello";B.charstr[100]="hello";
C.charstr[]={'h','e','l','l','o'};D.charstr[]={'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.
下面的二维数组初始化语句中,正确的是
____
A.floatb[2][2]={0.1,0.2,0.3,0.4};
B.inta[][]={{1,2},{3,4}};
C.inta[2][]={{1,2},{3,4}};
D.floata[2][2]={0};
4.
引用数组元素时,数组下标可以是
_D___
A.整型常量
B.整型变量
C.整型表达式
D.以上均可
5.
定义了int型二维数组a[6][7]后,数组元素
a[3][4]前的数组元素个数为____
A.24
B.25
C.18
D.17
6.下列初始化字符数组的语句中,正确的是__B__
A.charstr[5]="hello";B.charstr[]={'h','e','l','l','o','\0'};
C.charstr[5]={"hi"};D.charstr[100]="";
7.数组在Java中储存在C中
A.栈B.队列C.堆D.链表
8.下面程序的运行结果是____
main(){
inta[][]={{1,2,3},{4,5,6}};System.out.printf("%d",a[1][1]);
}
A.3B.4C.5D.6
9.下面程序的运行结果是_C___
main(){
1
intx=30;
int[]numbers=newint[x];
x=60;
System.out.println(numbers.length);
}
A.60B.20C.30D.50
10.下面程序的运行结果是__BDF__main(){
chars1[]="ABCDEF".toCharArray();inti=0;
while(s1[i++]!
='\0')
System.out.println(s1[i++]);
}
A.ABCDEFB.BDFC.ABCDED.BCDE
11.下面不是创建数组的正确语句C
A.floatf[][]=newfloat[6][6];B.floatf[]=newfloat[6];
C.floatf[][]=newfloat[][6];D.float[][]f=newfloat[6][];
12.下面不是数组复制方法的是(C)
A.用循环语句逐个复制数组B.用方法arraycopy
C.用"="进行复制D.用clone方法
13.数组a的第三个元素表示为D
A.a(3)B.a[3]C.a
(2)D.a[2]
14.当访问无效的数组下标时,会发生B
A.中止程序B.抛出异常C.系统崩溃D.直接跳过
15.使用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)
16.
关于数组默认值,错误的是B
A.char--'"u0000'
B.Boolean--true
C.float--0.0f
D.int--0
17.
关于数组作为方法的参数时,向方法传递的是
A
A.数组的引用
B.数组的栈地址
C.数组自身
D.数组的元素
18.
关于数组复制,下列说法错误的是
AC
A."="可以实现数组复制
B.运用循环语句进行数组复制必须两个数组长度相同
C.arraycopy()方法没有给目标数组分配内存空间
D.数组复制是数组引用的传递
19.下列语句会造成数组newint[10]越界是D
A.a[0]+=9;B.a[9]=10;C.—a[9]D.for(inti=0;i<=10;i++)a[i]++;
2
20.在JDK环境下编译JAVA源程序使用的命令是(B)
A.javaB.javacC.jvmD.tomcat
D.子类不能使用父类的构造方法
21.main方法是javaApplication程序执行的入口点。
关于main方法放入方法以下合法的是
()
A.publicstaticvoidmain();
B.publicstaticvoidmain(String[]args)
C.publicstaticintmain(String[]arg)D.publicvoidmain(Stringarg[])
22.
执行完代码"int[]x=new
int[25];"
后以下(A)说明正确的
A.x[24]为0
B.x[24]未定义
C.x[25]为0
D.x[0]为空
23.
关于数组排序方法,错误的是
C
A.选择排序
B.插入排序
C.二分排序
D.用arrays.sort()排序
24.
关于char类型的数组,说法正确的是
D
A.其数组的默认值是'A'
B.可以仅通过数组名来访问数组
C.数组不能转换为字符串
D.可以存储整型数值
25.对于数组a[10],下列表示错误的是B
A.a[0]B.a(0)C.a[9]D.a[1]
26.下列数组声明,下列表示错误的是
A.int[]aB.inta[]C.int[][]aD.int[]a[]
三、是非题
1.下标用于指出数组中某个元素位置的数字。
()
2.把数组中元素按某种顺序排列的过程叫做查找。
()
3.确定数组中是否含有某个关键字的过程叫做排序。
()
4.一个数组可以存放许多不同类型的数值。
()
5.数组的下标通常是float型。
()
6.数组的某个元素被传递给一个方法并被该方法修改,当被调用方法执行完毕时,这个元素
中含有修改过的数值。
()
7.数组可以声明为任何数据类型。
()
8.数组由具有一名字和相同类型的一组连续内存单元构成。
()
9.在数组声明中可以用等号及一个逗号分隔的初始值表初始化数组元素,该数组大小只能由
用户来决定。
()
10.将一个数组传递给一个方法,必须加在数组名后加方括号。
()
11.Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。
()
12.下面这条语句正确吗?
()
double[]myList;
myList={1.9,2.9,3.5,4.6};
14.数组中有length()这个方法,如array.length()表示数组array中元素的个数()
15.下面这条语句正确吗?
()
intt[3][2]={{1,2},{3,4},{5,6}};
3
16.
数组声明后其大小固定。
()
17.
设有整型数组的定义:
intA.[]=newint[8];
,则a.length的值为7。
()
18.
数组一旦创建,其大小不能再改变。
(
)
19.用任何方式创建数组时,都必须指定数组的长度。
()
20.声明数组时,要指定数组长度,以便为数组分配内存。
()
四、简答题
1.如何声明和创建一个一维数组?
2.如何访问数组的元素?
3.数组下标的类型是什么?
最小的下标是什么?
一维数组a的第三个元素如何表示?
4.数组越界访问会发生什么错误?
怎样避免该错误?
5.给方法传递数组参数与传递基本数据类型变量的值有何不同?
6.复制数组有哪些方法?
8.声明数组变量会为数组分配内存空间吗?
为什么?
五、程序题
1.有一个整数数组,其中存放着序列1,3,5,7,9,11,13,15,17,19。
请将该序列倒
序存放并输出。
1)publicclassTest{
2)publicstaticvoidmain(String[]args){
3)
inta[]={1,3,5,7,9,11,13,15,17,19};
4)
intt;
5)
System.out.println("数组的初始状态为:
");
6)
for(inti=0;i 7) System.out.print(""+a[i]); 8) System.out.println(); 9) 10) for(inti=0;i 11) t=a[i]; 12) a[i]=a[a.length-i-1]; 13) a[a.length-i-1]=t; 14) } 15) 16) System.out.println("数组逆序存放后的状态为: "); 17) for(inti=0;i 18) System.out.print(""+a[i]); 19)} 20)} 2.编写一个程序,提示用户输入学生数量姓名和他们的成绩,并按照成绩的降序来打印学 生的姓名。 1)publicclassexercise16{ 2)publicstaticvoidmain(String[]args){ 4 3)StringnumberString= 4)JOptionPane.showInputDialog("Enterthenumberofstudents"); 5)intnumberOfStudents=Integer.parseInt(numberString); 6) 7)String[]names=newString[numberOfStudents]; 8)double[]scores=newdouble[numberOfStudents]; 9) 10)for(inti=0;i 11) names[i]=JOptionPane.showInputDialog("Enterastudentname"); 12) scores[i]=Double.parseDouble( 13) JOptionPane.showInputDialog("Enterastudentscore")); 14)} 15) 16)for(inti=scores.length-1;i>=1;i--){ 17) doublecurrentMax=scores[0]; 18) intcurrentMaxIndex=0; 19) 20) for(intj=1;j<=i;j++){ 21) if(currentMax 22) currentMax=scores[j]; 23) currentMaxIndex=j; 24) } 25) } 26) 27) if(currentMaxIndex! =i){ 28) scores[currentMaxIndex]=scores[i]; 29) scores[i]=currentMax; 30) Stringtemp=names[currentMaxIndex]; 31) names[currentMaxIndex]=names[i]; 32) names[i]=temp; 33) } 34)} 35) 36)for(inti=scores.length-1;i>=0;i--){ 37)System.out.println(names[i]+"\t"+scores[i]); 38)} 39)} 40)} 3.编写一个程序,使它能够读入10个整数,并且存储其中互不相同的数,最后将这10个数 输出。 1)importjavax.swing.JOptionPane; 2) 3)publicclassexercise5{ 5 4)privatestaticintj=0; 5) 6)publicstaticvoidmain(String[]args){ 7) int[]arrayInt=newint[10]; 8) inti=0; 9) 10) do{ 11) StringnumberString=JOptionPane 12) .showInputDialog("Enteranumber: "); 13) 14) intnumber=Integer.parseInt(numberString); 15) 16) if(isNotHave(arrayInt,number)){ 17) arrayInt[i]=number; 18) i++; 19) j++; 20) } 21) else 22) { 23) do{ 24) numberString=JOptionPane 25) .showInputDialog("Thisnumberis exit,entera anothernumber: "); 26) number=Integer.parseInt(numberString); 27) }while(! isNotHave(arrayInt,number)); 28) 29) arrayInt[i]=number; 30) i++; 31) j++; 32) } 33) }while(i 34) 35) Stringoutput=""; 36) for(intk: arrayInt){ 37) output+=k+""; 38) } 39) 40) JOptionPane.showMessageDialog(null,"TheelementsofarrayIntis" 41) + output, "output arrayInt", JOptionPane.INFORMATION_MESSAGE); 42)} 43) 44)publicstaticbooleanisNotHave(int[]arrayInt,intn){ 45)for(inti=0;i 6 46) if(arrayInt[i]==n) 47) returnfalse; 48) } 49) returntrue; 50)} 51)} 4.先对数组{1,3,9,5,6,7,1,5,4,8}进行排序,然后二分查找法找出数组中的元素 8,标出其排序后其下标的位置。 1)publicclassTest{ 2)publicstaticvoidmain(String[]args){ 3) intnumbers[]={1,3,9,5,6,7,1,5,4,8}; 4) java.util.Arrays.sort(numbers); 5) 6) System.out.println("排序后的数组为: "); 7) for(inti=0;i 8) System.out.print(""+numbers[i]); 9) System.out.println(); 10) 11) intn=binarySearch(numbers,8); 12) System.out.println("数字8的位置为: "+n); 13) 14)} 15) 16)publicstaticintbinarySearch(int[]list,intkey){ 17) intlow=0; 18) inthigh=list.length-1; 19) intmid=0; 20) 21) while(high>low){mid=(mid==(low+high)/2)? 22) (mid+1): ((low+high)/2); 23) if(key 24) high=mid-1; 25) elseif(key==list[mid]) 26) returnmid; 27) else 28) low=mid-1; 29) } 30) return-low-1; 31)} 32)} 5.编写一个程序,读入数目确定的考试分数,并且判断有多少个分数高于或等于平均分,有 7 多少个分数低于平均分。 输入一个负数标志输入结束,假设最高分为100。 1)importjavax.swing.JOptionPane; 2) 3)publicclassTest{ 4)publicstaticvoidmain(String[]args){ 5)double[]scores=newdouble[100]; 6)doublesum=0; 7)intcount=0; 8) 9)do{ 10) StringscoreString= 11) JOptionPane.showInputDialog(null,"Enteranewscore"); 12) scores[count]=Double.parseDouble(scoreString); 13) sum+=scores[count]; 14)}while(scores[count++]>=0); 15) 16)doubleaverage=(sum-scores[count])/(count-1); 17) 18)intnumOfAbove=0; 19)intnumOfBelow=0; 20)for(inti=0;i 21) if(scores[i]>=average) 22) numOfAbove++; 23) else 24) numOfBelow++; 25) 26)System.out.println("Averageis"+average); 27)System.out.println("Numberofscoresaboveorequaltotheaverage" 28)+numOfAbove); 29)System.out.println("Numberofscoresbelowtheaverage" 30)+numOfBelow); 31) 32)System.exit(0); 33)} 34)} 6.编写一个程序,生成0-9之间的100个随机整数并且显示每一个数的个数。 1)publicclassexercise7{ 2)publicstaticvoidmain(String[]args){ 3) int[]numbers=newint[100]; 4) int[]counts=newint[10]; 5) 6) intk; 7) for(inti=0;i<100;i++) 8 8) { 9) numbers[i]=(int)(Math.random()*10); 10) counts[numbers[i]]++; 11) } 12) 13) System.out.println("the
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 数组 练习题 答案