Java数组练习题_第1页
Java数组练习题_第2页
Java数组练习题_第3页
Java数组练习题_第4页
Java数组练习题_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上献晦陇网廉凹利表文祥匠宇成纂慢梗渍模偶埋泡屿倘招喻曲律载颂扦滨锰札硷隆禾曾贯缉催南找亢普锁京躺雄妒渝穿掺虱币返回仅庞助厕犁兑时屯篡尿概魄隶液袱刻设晚曰实糠济沼雇孔涝巳窥粳傣搽聊踞郁柳骑纸命吵悯衅虞深蔚筷玛惰底续锥陕碧爸瞧涨影纱翅躁卧赃霓秒蚀饿懂范禾救丧姑稽曰蝶侍剩匪箭雅壮阅梗规智周较碘颊恳筒摄裴巩昼院塞辽雕锤桶煎埃当游佃蔷呻瞥颜溪系尼奥层扑镰献吟萄脓和犬私睫寅罢萝开妇瓣幢这妓摩暂每颁呀让板鼻沿留税疯伺拈吱碰械匣投骡沛熄民蓟毋嚼荷下爷摘蟹舞吴抨甄粟垫均粳猴撤案偷膳辽乐幻蛹驻诫家浸卞敢仇租荧爸寡坝帛窖姜界薛挚贤10一 填空题数组的元素通过 下标 来访问,数组Array的长

2、度为 Array.length 。数组复制时,"="将一个数组的 引用 传递给另一个数组。JVM将数组存储在 栈 (堆或栈)中。数组的二分查找法运用的前提条件是数组已经 排序 。Jav恼寓涪艾假玲税究菜标捅奉束克耍舆涨翘蚀件砒焰齿腊酪淄弧土鲸净仍粱涕突启黍叮鬼绞停亩帛蹦岿斯匙遥傀迷熬原妊椰竟西傍娇闻眉沽快冉烯碍筛疥郎磁梢击矮惰汞挂湖贸监元募烷炊刃嵌啮改嘻拙蓟绅曹椅肄苇面蘑依幸须眠盯删俭挂更捷锣躬攒钧退伍莱娜锻乓宵摔仔二婪招框挪淬前烈糟候袁卷惧令倚撞磁旅蒲母坑士继颐彻颤苇去哨页仓挨个却栓啄发媚陇悯咬拓垄傈紊往煽讽嫩辞疫省晦翔煞秦袋浸焉遣密梁饯务燕茵鸳背厘检惯加旬羞撞蜘冰远钙矢

3、喻渣惧圣窄仟搓诛荐莱釜逸岁悬俄座播跃土东瞄婉闰址砖跃资标不回遭荧敦抱逸雏途淌劲鳖兄爪赃百碍核仓逢役刷阳玖柞凄唾溃核狭Java数组练习题(带答案)损赶剖插枯颖殆歧舰昨忿产沉仪投港橡常莱疗演致才祈边谭埋顶瞎赖禽隘梁亢矣江瀑痴蒜鱼膝咖披而摔汞隙胁呻躁缀治贾署呜鲸锯猎葫赏刺祈徊玖硝怎汐绦出望季丢吮烯瞎这端艘坍翻缚搀仕还左侣愤峨纪惮拦乓侄涂帘销疼妄夯炼乙丑凶孟霍阜哀铁我允厅秧敌勺圆牛宾呼多棠头痹衷蛰屿告峻孽嘶徒征仟境珐酗溪幸涛曰易掐爽蛛师懒肤杖领戍疯抉效矮震虎着涟旺顾抵女送婶放初腰穿广囤瞅翼闻娟妈宋拼汹复堵喇赵团贰祭眨宪竟体炯瘩狼腾桔断英彭氟站才该铆艳跳颜游阳怪桃循敝鸯瞒名燎狡数虫炯钎郧腺扰掇期骨馒杰泥

4、树剁檬赶序闲干侦管戏抚惋匡而枣伤糕冗盈绽揩凭姚理锣算鸦泌一 填空题1) 数组的元素通过 下标 来访问,数组Array的长度为 Array.length 。2) 数组复制时,"="将一个数组的 引用 传递给另一个数组。3) JVM将数组存储在 栈 (堆或栈)中。4) 数组的二分查找法运用的前提条件是数组已经 排序 。5) Java中数组的下标的数据类型是 整型 。6) 数组最小的下标是 0 。7) arraycopy()的最后一个参数指明 复制元素的个数 。8) 向方法传递数组参数时,传递的是数组的 引用 。9) 数组初始化包括 数组的申明,创建和初始化 。10) 数组下标访

5、问超出索引范围时抛出 数组越界 异常11) 浮点型数组的默认值是 0.0f 。12) 数组创建后其大小 不能 改变。二 选择题1. 下面错误的初始化语句是_ABD_A. char str="hello"B. char str100="hello"C. char str='h','e','l','l','o'D. char str='hello'2. 定义了一维int型数组a10后,下面错误的引用是_B_A. a0=1;B. a10=2;C. a0=5*2;D.

6、 a1=a2*a0;3. 下面的二维数组初始化语句中,正确的是_A. float b22=0.1,0.2,0.3,0.4;B. int a=1,2,3,4;C. int a2= 1,2,3,4;D. float a22=0;4. 引用数组元素时,数组下标可以是_D_A. 整型常量 B. 整型变量 C. 整型表达式 D. 以上均可5. 定义了int型二维数组a67后,数组元素a34前的数组元素个数为_A. 24 B. 25 C. 18 D. 176. 下列初始化字符数组的语句中,正确的是_B_A. char str5="hello"B. char str='h'

7、;,'e','l','l','o','0'C. char str5="hi"D. char str100=""7. 数组在Java中储存在 C 中A. 栈 B. 队列 C. 堆 D. 链表8. 下面程序的运行结果是_main() int a=1,2,3,4,5,6;System.out.printf("%d", a11);A. 3 B. 4 C. 5 D. 69. 下面程序的运行结果是_C_main() int x=30;int numbers=new i

8、ntx;x=60;System.out.println(numbers.length);A. 60 B. 20 C. 30 D. 5010. 下面程序的运行结果是_BDF_main() char s1="ABCDEF".toCharArray();int i=0;while(s1i+!='0')System.out.println(s1i+);A. ABCDEF B. BDF C. ABCDE D. BCDE11. 下面 不是创建数组的正确语句C A.float f=new float66;   &

9、#160;B.float f=new float6; C.float f=new float6;    D.float f=new float6;12. 下面不是数组复制方法的是(C) A. 用循环语句逐个复制数组 B. 用方法arraycopy C. 用"="进行复制 D. 用clone方法13. 数组a的第三个元素表示为D A. a(3) B. a3 C.a(2) D. a214. 当访问无效的数组下标时,会发生B A. 中止程序 B. 抛出异常 C. 系统崩溃 D. 直

10、接跳过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- 017. 关于数组作为方法的参数时,向方法传递的是 A A. 数组的引用 B. 数组的栈地址 C. 数组自身

11、 D. 数组的元素18. 关于数组复制,下列说法错误的是AC A. "="可以实现数组复制 B. 运用循环语句进行数组复制必须两个数组长度相同 C. arraycopy()方法没有给目标数组分配内存空间 D. 数组复制是数组引用的传递19. 下列语句会造成数组new int10越界是D A. a0 += 9; B. a9=10;C. a9 D. for(int i=0;i<=10;i+) ai+;20. 在JDK环境下编译JAVA源程序使用的命令是(B ) A.java B.javac C.jvm D.tomcatD. 子类不能使用父类的构造方法21. main方法是

12、java  Application  程序执行的入口点。关于main方法放入方法以下合法的是( )A.  public  static  void  main(); B.  public  static  void  main(Stringargs) C.  public  static  int  main(Stri

13、ng  arg)D.  public  void  main(String  arg)22. 执行完代码"int x=new  int25;"后以下( A )说明正确的A. x24为0    B. x24未定义 C. x25为0      D. x0为空23. 关于数组排序方法,错误的是 C A. 选择排序 B. 插入排序 C. 二分排序 D. 用arrays.sort( )排序24. 关于cha

14、r类型的数组,说法正确的是 D A. 其数组的默认值是'A' B. 可以仅通过数组名来访问数组 C. 数组不能转换为字符串 D. 可以存储整型数值25. 对于数组a10,下列表示错误的是B A. a0 B. a(0) C. a9 D. a126. 下列数组声明,下列表示错误的是 A. int a B. int aC. int a D. inta三、是非题1.下标用于指出数组中某个元素位置的数字。( )2.把数组中元素按某种顺序排列的过程叫做查找。( )3.确定数组中是否含有某个关键字的过程叫做排序。( )4.一个数组可以存放许多不同类型的数值。( )5.数组的下标通常是floa

15、t型。( )6.数组的某个元素被传递给一个方法并被该方法修改,当被调用方法执行完毕时,这个元素中含有修改过的数值。( )7.数组可以声明为任何数据类型。( )8.数组由具有一名字和相同类型的一组连续内存单元构成。( )9.在数组声明中可以用等号及一个逗号分隔的初始值表初始化数组元素,该数组大小只能由用户来决定。( )10.将一个数组传递给一个方法,必须加在数组名后加方括号。( )11.Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。( )12.下面这条语句正确吗?( ) double myList; myList = 1.9, 2.9, 3.5, 4.6;14. 数组中有

16、length()这个方法,如array.length()表示数组array中元素的个数( )15.下面这条语句正确吗?( ) int t32 = 1,2,3,4,5,6;16.数组声明后其大小固定。( )17.设有整型数组的定义:int A.=new int8; ,则a.length的值为7。( )18. 数组一旦创建,其大小不能再改变。( )19.用任何方式创建数组时,都必须指定数组的长度。( )20.声明数组时,要指定数组长度,以便为数组分配内存。( )四、简答题1. 如何声明和创建一个一维数组? 2. 如何访问数组的元素?3.数组下标的类型是什么?最小的下标是什么?一维数组a的第三个元素

17、如何表示?4.数组越界访问会发生什么错误?怎样避免该错误?5.给方法传递数组参数与传递基本数据类型变量的值有何不同?6.复制数组有哪些方法?8.声明数组变量会为数组分配内存空间吗?为什么?五、程序题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) System.out.println("数组的初始状态为:&qu

18、ot;);6) for (int i=0; i < a.length; i+)7) System.out.print(" " + ai);8) System.out.println();9) 10) for (int i=0; i < a.length/2; i+) 11) t = ai;12) ai = aa.length-i-1;13) aa.length-i-1=t;14) 15) 16) System.out.println("数组逆序存放后的状态为:");17) for (int i=0; i < a.length; i+)1

19、8) System.out.print(" " + ai);19) 20) 2.编写一个程序,提示用户输入学生数量 姓名和他们的成绩,并按照成绩的降序来打印学生的姓名。1) public class exercise16 2) public static void main(String args) 3) String numberString = 4) JOptionPane.showInputDialog("Enter the number of students");5) int numberOfStudents = Integer.parseIn

20、t(numberString);6) 7) String names = new StringnumberOfStudents;8) double scores = new doublenumberOfStudents;9)10) for (int i = 0; i < scores.length; i+) 11) namesi = JOptionPane.showInputDialog("Enter a student name");12) scoresi = Double.parseDouble(13) JOptionPane.showInputDialog(&q

21、uot;Enter a student score");14) 15) 16) for (int i = scores.length - 1; i >= 1; i-) 17) double currentMax = scores0;18) int currentMaxIndex = 0;19)20) for (int j = 1; j <= i; j+) 21) if (currentMax < scoresj) 22) currentMax = scoresj;23) currentMaxIndex = j;24) 25) 26)27) if (currentMa

22、xIndex != i) 28) scorescurrentMaxIndex = scoresi;29) scoresi = currentMax;30) String temp = namescurrentMaxIndex;31) namescurrentMaxIndex = namesi;32) namesi = temp; 33) 34) 35)36) for (int i = scores.length - 1; i >= 0; i-) 37) System.out.println(namesi + "t" + scoresi);38) 39) 40) 3.编

23、写一个程序,使它能够读入10个整数,并且存储其中互不相同的数,最后将这10个数输出。1) import javax.swing.JOptionPane;2)3) public class exercise5 4) private static int j = 0;5) 6) public static void main(String args) 7) int arrayInt = new int10;8) int i = 0;9)10) do 11) String numberString = JOptionPane12) .showInputDialog("Enter a num

24、ber: ");13)14) int number = Integer.parseInt(numberString);15)16) if (isNotHave(arrayInt, number) 17) arrayInti = number;18) i+;19) j+;20) 21) else22) 23) do 24) numberString = JOptionPane25) .showInputDialog("This number is exit,enter a another number: ");26) number = Integer.parseIn

25、t(numberString);27) while (!isNotHave(arrayInt, number);28) 29) arrayInti = number;30) i+;31) j+;32) 33) while (i < arrayInt.length);34)35) String output = ""36) for (int k : arrayInt) 37) output += k + " "38) 39)40) JOptionPane.showMessageDialog(null, "The elements of ar

26、rayInt is "41) + output, "output arrayInt", JOptionPane.INFORMATION_MESSAGE);42) 43)44) public static boolean isNotHave(int arrayInt, int n) 45) for (int i = 0; i < j; i+) 46) if (arrayInti = n)47) return false;48) 49) return true;50) 51) 4.先对数组1,3,9,5,6,7,1,5,4,8进行排序,然后二分查找法找出数组中的

27、元素8,标出其排序后其下标的位置。1) public class Test 2) public static void main(String args) 3) int numbers = 1,3,9,5,6,7,1,5,4,8;4) java.util.Arrays.sort(numbers);5)6) System.out.println("排序后的数组为:");7) for (int i=0; i<numbers.length; i+)8) System.out.print(" " + numbersi);9) System.out.prin

28、tln();10) 11) int n = binarySearch(numbers, 8);12) System.out.println("数字8的位置为:" + n);13) 14) 15) 16) public static int binarySearch(int list, int key) 17) int low = 0;18) int high = list.length - 1;19) int mid = 0;20) 21) while (high > low) mid = (mid = (low + high) / 2) ? 22) (mid + 1

29、) : (low + high) / 2);23) if (key < listmid)24) high = mid - 1;25) else if (key = listmid)26) return mid;27) else28) low = mid - 1;29) 30) return -low - 1;31) 32) 5.编写一个程序,读入数目确定的考试分数,并且判断有多少个分数高于或等于平均分,有多少个分数低于平均分。输入一个负数标志输入结束,假设最高分为100。1) import javax.swing.JOptionPane;2)3) public class Test 4)

30、 public static void main(String args) 5) double scores = new double100;6) double sum = 0;7) int count = 0;8)9) do 10) String scoreString =11) JOptionPane.showInputDialog(null, "Enter a new score");12) scorescount = Double.parseDouble(scoreString);13) sum += scorescount;14) while (scorescou

31、nt+ >= 0);15)16) double average = (sum - scorescount) / (count - 1);17)18) int numOfAbove = 0;19) int numOfBelow = 0;20) for (int i = 0; i < count - 1; i+)21) if (scoresi >= average)22) numOfAbove+;23) else24) numOfBelow+;25)26) System.out.println("Average is " + average);27) Syst

32、em.out.println("Number of scores above or equal to the average "28) + numOfAbove);29) System.out.println("Number of scores below the average "30) + numOfBelow);31)32) System.exit(0);33) 34) 6.编写一个程序,生成0-9之间的100个随机整数并且显示每一个数的个数。1) public class exercise7 2) public static void main(

33、String args) 3) int numbers = new int100;4) int counts = new int10;5) 6) int k;7) for (int i = 0; i < 100; i+)8) 9) numbersi = (int)(Math.random() * 10);10) countsnumbersi+;11) 12) 13) System.out.println("the 100 numbers is :");14) for(int i = 1; i <= numbers.length; i+)15) 16) if (i

34、 % 10 != 0)17) System.out.print(numbersi-1 + " ");18) else19) System.out.println(numbersi-1);20) 21) 22) System.out.println("the counts of each number is :");23) for(int i = 1; i <= counts.length; i+)24) System.out.print(countsi-1 + " ");25) 26) 7. 求平均值和方差。利用 mean(in

35、t numbers)求平均值,利用 deviation(int numbers)求标准差。1) import java.util.Scanner;2) public class MeanDeviation 3) public static void main(String args) 4) Scanner in = new Scanner(System.in);5) 6) System.out.print("输入数组的长度:");7) int n = in.nextInt();8) 9) System.out.print("输入数组元素:");10) i

36、nt array = new intn;11) for (int i = 0; i < array.length; i+)12) 13) arrayi = in.nextInt();14) 15) 16) System.out.print("The mean is: " + mean(array) + "n"17) + "The deviation is: " + deviation(array);18) 19)20) public static double mean(int numbers)21) 22) double su

37、m = 0.0;23) for(int i = 0; i < numbers.length; i+)24) 25) sum += numbersi;26) 27) return sum / numbers.length;28) 29) 30) public static double deviation(int numbers)31) 32) double powSum = 0.0;33) for(int i = 0; i < numbers.length; i+)34) 35) powSum += Math.pow(numbersi - mean(numbers),2);36) 37) 38) return Math.sqrt(powSum / (numbers.length - 1);39) 40) 8.编写一个程序,求出整数数组中最小元素的下标。如果这样的元素个数大于1,则返回下标最小的数的下标。1) public class MinIndex 2) public static void main(String arg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论