Java数组练习题带答案.docx

上传人:b****5 文档编号:6375625 上传时间:2023-01-05 格式:DOCX 页数:12 大小:20.77KB
下载 相关 举报
Java数组练习题带答案.docx_第1页
第1页 / 共12页
Java数组练习题带答案.docx_第2页
第2页 / 共12页
Java数组练习题带答案.docx_第3页
第3页 / 共12页
Java数组练习题带答案.docx_第4页
第4页 / 共12页
Java数组练习题带答案.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

Java数组练习题带答案.docx

《Java数组练习题带答案.docx》由会员分享,可在线阅读,更多相关《Java数组练习题带答案.docx(12页珍藏版)》请在冰豆网上搜索。

Java数组练习题带答案.docx

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.24B.25C.18D.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(){

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.float f[][]=new float[6][6];    B.float f[]=new float[6];

C.float f[][]=new float[][6];    D.float [][]f=new float[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--trueC.float--0.0fD.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]++;

20.在JDK环境下编译JAVA源程序使用的命令是(B)

A.javaB.javacC.jvmD.tomcat

D.子类不能使用父类的构造方法

21.main方法是java  Application  程序执行的入口点。

关于main方法放入方法以下合法的是()

A.  public  static  void  main();B.  public  static  void  main(String[]args)

C.  public  static  int  main(String[]  arg)D.  public  void  main(String  arg[])

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}};

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)for(inti=0;i

10)t=a[i];

11)a[i]=a[a.length-i-1];

12)a[a.length-i-1]=t;

13)}

14)System.out.println("数组逆序存放后的状态为:

");

15)for(inti=0;i

16)System.out.print(""+a[i]);

17)}

18)}

2.编写一个程序,提示用户输入学生数量和他们的成绩,并按照成绩的降序来打印学生的。

1)publicclassexercise16{

2)publicstaticvoidmain(String[]args){

3)StringnumberString=

4)JOptionPane.showInputDialog("Enterthenumberofstudents");

5)intnumberOfStudents=Integer.parseInt(numberString);

6)String[]names=newString[numberOfStudents];

7)double[]scores=newdouble[numberOfStudents];

8)for(inti=0;i

9)names[i]=JOptionPane.showInputDialog("Enterastudentname");

10)scores[i]=Double.parseDouble(

11)JOptionPane.showInputDialog("Enterastudentscore"));

12)}

13)for(inti=scores.length-1;i>=1;i--){

14)doublecurrentMax=scores[0];

15)intcurrentMaxIndex=0;

16)for(intj=1;j<=i;j++){

17)if(currentMax

18)currentMax=scores[j];

19)currentMaxIndex=j;

20)}

21)}

22)if(currentMaxIndex!

=i){

23)scores[currentMaxIndex]=scores[i];

24)scores[i]=currentMax;

25)Stringtemp=names[currentMaxIndex];

26)names[currentMaxIndex]=names[i];

27)names[i]=temp;

28)}

29)}

30)for(inti=scores.length-1;i>=0;i--){

31)System.out.println(names[i]+"\t"+scores[i]);

32)}

33)}

34)}

3.编写一个程序,使它能够读入10个整数,并且存储其中互不一样的数,最后将这10个数输出。

1)importjavax.swing.JOptionPane;

2)publicclassexercise5{

3)privatestaticintj=0;

4)publicstaticvoidmain(String[]args){

5)int[]arrayInt=newint[10];

6)inti=0;

7)do{

8)StringnumberString=JOptionPane

9).showInputDialog("Enteranumber:

");

10)intnumber=Integer.parseInt(numberString);

11)if(isNotHave(arrayInt,number)){

12)arrayInt[i]=number;

13)i++;

14)j++;

15)}

16)else

17){

18)do{

19)numberString=JOptionPane

20).showInputDialog("Thisnumberisexit,enteraanothernumber:

");

21)number=Integer.parseInt(numberString);

22)}while(!

isNotHave(arrayInt,number));

23)arrayInt[i]=number;

24)i++;

25)j++;

26)}

27)}while(i

28)Stringoutput=";

29)for(intk:

arrayInt){

30)output+=k+"";

31)}

32)JOptionPane.showMessageDialog(null,"TheelementsofarrayIntis"

33)+output,"outputarrayInt",JOptionPane.INFORMATION_MESSAGE);

34)}

35)publicstaticbooleanisNotHave(int[]arrayInt,intn){

36)for(inti=0;i

37)if(arrayInt[i]==n)

38)returnfalse;

39)}

40)returntrue;

41)}

42)}

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)System.out.println("排序后的数组为:

");

6)for(inti=0;i

7)System.out.print(""+numbers[i]);

8)System.out.println();

9)intn=binarySearch(numbers,8);

10)System.out.println("数字8的位置为:

"+n);

11)}

12)publicstaticintbinarySearch(int[]list,intkey){

13)intlow=0;

14)inthigh=list.length-1;

15)intmid=0;

16)while(high>low){mid=(mid==(low+high)/2)"

17)(mid+1):

((low+high)/2);

18)if(key

19)high=mid-1;

20)elseif(key==list[mid])

21)returnmid;

22)else

23)low=mid-1;

24)}

25)return-low-1;

26)}

27)}

5.编写一个程序,读入数目确定的考试分数,并且判断有多少个分数高于或等于平均分,有多少个分数低于平均分。

输入一个负数标志输入完毕,假设最高分为100。

1)importjavax.swing.JOptionPane;

2)publicclassTest{

3)publicstaticvoidmain(String[]args){

4)double[]scores=newdouble[100];

5)doublesum=0;

6)intcount=0;

7)do{

8)StringscoreString=

9)JOptionPane.showInputDialog(null,"Enteranewscore");

10)scores[count]=Double.parseDouble(scoreString);

11)sum+=scores[count];

12)}while(scores[count++]>=0);

13)doubleaverage=(sum-scores[count])/(count-1);

14)intnumOfAbove=0;

15)intnumOfBelow=0;

16)for(inti=0;i

17)if(scores[i]>=average)

18)numOfAbove++;

19)else

20)numOfBelow++;

21)System.out.println("Averageis"+average);

22)System.out.println("Numberofscoresaboveorequaltotheaverage"

23)+numOfAbove);

24)System.out.println("Numberofscoresbelowtheaverage"

25)+numOfBelow);

26)System.exit(0);

27)}

28)}

6.编写一个程序,生成0-9之间的100个随机整数并且显示每一个数的个数。

1)publicclassexercise7{

2)publicstaticvoidmain(String[]args){

3)int[]numbers=newint[100];

4)int[]counts=newint[10];

5)intk;

6)for(inti=0;i<100;i++)

7){

8)numbers[i]=(int)(Math.random()*10);

9)counts[numbers[i]]++;

10)}

11)System.out.println("the100numbersis:

");

12)for(inti=1;i<=numbers.length;i++)

13){

14)if(i%10!

=0)

15)System.out.print(numbers[i-1]+"");

16)else

17)System.out.println(numbers[i-1]);

18)}

19)System.out.println("thecountsofeachnumberis:

");

20)for(inti=1;i<=counts.length;i++)

21)System.out.print(counts[i-1]+"");

22)}

23)}

7.求平均值和方差。

利用mean(int[]numbers)求平均值,利用deviation(int[]numbers)求标准差。

1)importjava.util.Scanner;

2)publicclassMeanDeviation{

3)publicstaticvoidmain(String[]args){

4)Scannerin=newScanner(System.in);

5)System.out.print("输入数组的长度:

");

6)intn=in.nextInt();

7)System.out.print("输入数组元素:

");

8)int[]array=newint[n];

9)for(inti=0;i

10){

11)array[i]=in.nextInt();

12)}

13)System.out.print("Themeanis:

"+mean(array)+"\n"

14)+"Thedeviatio

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1