《2022年Java数组练习题教学内容 .pdf》由会员分享,可在线阅读,更多相关《2022年Java数组练习题教学内容 .pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、此文档来源于网络,如有侵权请联系网站删除只供学习交流用一 填空题1)数组的元素通过下标来访问,数组Array 的长度为Array.length 。2)数组复制时,=将一个数组的引用传递给另一个数组。3)JVM 将数组存储在栈(堆或栈 )中。4)数组的二分查找法运用的前提条件是数组已经排序。5)Java中数组的下标的数据类型是整型。6)数组最小的下标是0 。7)arraycopy()的最后一个参数指明复制元素的个数。8)向方法传递数组参数时,传递的是数组的引用。9)数组初始化包括数组的申明,创建和初始化。10)数组下标访问超出索引范围时抛出数组越界异常11)浮点型数组的默认值是0.0f 。12)
2、数组创建后其大小不能改变。二 选择题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. 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;
3、 4.引用数组元素时,数组下标可以是_D_ A. 整型常量B. 整型变量C. 整型表达式D. 以上均可5.定义了 int 型二维数组a67 后,数组元素a34 前的数组元素个数为_ A. 24 B. 25 C. 18 D. 17 6.下列初始化字符数组的语句中,正确的是_B_ A. char str5=hello; B. char str=h,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.
4、out.printf(%d, a11); A. 3 B. 4 C. 5 D. 6 9.下面程序的运行结果是_C_ main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - 此文档来源于网络,如有侵权请联系网站删除只供学习交流用int x=30; int numbers=new intx; x=60; System.out.println(numbers.length); A. 60 B. 20 C. 30 D. 50 10
5、. 下面程序的运行结果是_BDF_ main() char s1=ABCDEF.toCharArray(); int i=0; while(s1i+!=0) System.out.println(s1i+); A. ABCDEF B. BDF C. ABCDE D. BCDE 11. 下面 不是创建数组的正确语句C A.float f=new float66; B.float f=new float6; C.float f=new float6; D.float f=new float6; 12. 下面不是数组复制方法的是(C) A. 用循环语句逐个复制数组B. 用方法 arraycopy C
6、. 用 =进行复制D. 用 clone 方法13. 数组 a 的第三个元素表示为D A. a(3) B. a3 C.a(2) D. a2 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.
7、 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. 下列语句会造成数组new int10 越界是 D A. a0 += 9; B. a9=10; C. a9 D. for(int i=0;i=10;i+) ai+;
8、名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 此文档来源于网络,如有侵权请联系网站删除只供学习交流用20. 在 JDK环境下编译JAVA源程序使用的命令是(B ) A.java B.javac C.jvm D.tomcat D. 子类不能使用父类的构造方法21. main 方法是 java Application 程序执行的入口点。 关于 main 方法放入方法以下合法的是( ) A. public static void
9、main(); B. public static void main(Stringargs) C. public static int main(String 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. 关于 char 类型的数组,说法正确的是D A. 其数组的默认值是A B. 可以仅
10、通过数组名来访问数组C. 数组不能转换为字符串D. 可以存储整型数值25. 对于数组a10,下列表示错误的是B A. a0 B. a(0) C. a9 D. a1 26. 下列数组声明,下列表示错误的是A. int a B. int a C. int a D. inta 三、是非题1.下标用于指出数组中某个元素位置的数字。( ) 2.把数组中元素按某种顺序排列的过程叫做查找。( ) 3.确定数组中是否含有某个关键字的过程叫做排序。( ) 4.一个数组可以存放许多不同类型的数值。( ) 5.数组的下标通常是float 型。 ( ) 6.数组的某个元素被传递给一个方法并被该方法修改,当被调用方法执
11、行完毕时,这个元素中含有修改过的数值。( ) 7.数组可以声明为任何数据类型。( ) 8.数组由具有一名字和相同类型的一组连续内存单元构成。( ) 9.在数组声明中可以用等号及一个逗号分隔的初始值表初始化数组元素,该数组大小只能由用户来决定。 ( ) 10.将一个数组传递给一个方法,必须加在数组名后加方括号。( ) 11.Java语言中的数组元素下标总是从0 开始,下标可以是整数或整型表达式。( ) 12.下面这条语句正确吗?( ) double myList; myList = 1.9, 2.9, 3.5, 4.6; 14. 数组中有length() 这个方法,如array.length()
12、表示数组 array 中元素的个数 ( ) 15.下面这条语句正确吗?( ) int t32 = 1,2,3,4,5,6; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 此文档来源于网络,如有侵权请联系网站删除只供学习交流用16.数组声明后其大小固定。( ) 17.设有整型数组的定义:int A.=new int8; ,则 a.length 的值为 7。( ) 18. 数组一旦创建,其大小不能再改变。( ) 19.用任何方式
13、创建数组时,都必须指定数组的长度。( ) 20.声明数组时,要指定数组长度,以便为数组分配内存。( ) 四、简答题1. 如何声明和创建一个一维数组?2. 如何访问数组的元素?3.数组下标的类型是什么?最小的下标是什么?一维数组a 的第三个元素如何表示?4.数组越界访问会发生什么错误?怎样避免该错误?5.给方法传递数组参数与传递基本数据类型变量的值有何不同?6.复制数组有哪些方法?8.声明数组变量会为数组分配内存空间吗?为什么?五、程序题1.有一个整数数组,其中存放着序列1,3,5,7,9,11,13,15,17,19。请将该序列倒序存放并输出。1)public class Test 2)pub
14、lic 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(数组的初始状态为 :); 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)Sys
15、tem.out.println(数组逆序存放后的状态为 :); 17)for (int i=0; i a.length; i+) 18)System.out.print( + ai); 19) 20) 2.编写一个程序,提示用户输入学生数量姓名和他们的成绩,并按照成绩的降序来打印学生的姓名。1)public class exercise16 2)public static void main(String args) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10
16、页 - - - - - - - - - 此文档来源于网络,如有侵权请联系网站删除只供学习交流用3)String numberString = 4)JOptionPane.showInputDialog(Enter the number of students); 5)int numberOfStudents = Integer.parseInt(numberString); 6)7)String names = new StringnumberOfStudents; 8)double scores = new doublenumberOfStudents; 9)10)for (int i =
17、0; i = 1; i-) 17)double currentMax = scores0; 18)int currentMaxIndex = 0; 19)20)for (int j = 1; j = i; j+) 21)if (currentMax = 0; i-) 37)System.out.println(namesi + t + scoresi); 38) 39) 40) 3.编写一个程序,使它能够读入10 个整数,并且存储其中互不相同的数,最后将这10 个数输出。1)import javax.swing.JOptionPane; 2)3)public class exercise5 名
18、师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 10 页 - - - - - - - - - 此文档来源于网络,如有侵权请联系网站删除只供学习交流用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 = JOptionPane 12).showIn
19、putDialog(Enter a number: ); 13)14)int number = Integer.parseInt(numberString); 15)16)if (isNotHave(arrayInt, number) 17)arrayInti = number; 18)i+; 19)j+; 20) 21)else 22) 23)do 24)numberString = JOptionPane 25).showInputDialog(This number is exit,enter a another number: ); 26)number = Integer.parseI
20、nt(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 arrayInt is 41)+ output, output arr
21、ayInt, JOptionPane.INFORMATION_MESSAGE); 42) 43)44)public static boolean isNotHave(int arrayInt, int n) 45)for (int i = 0; i j; i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 10 页 - - - - - - - - - 此文档来源于网络,如有侵权请联系网站删除只供学习交流用46)if (arrayInti = n) 47)return
22、false; 48) 49)return true; 50) 51) 4.先对数组 1,3, 9,5,6,7, 1,5,4,8进行排序,然后二分查找法找出数组中的元素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 low) mid = (mid = (
23、low + high) / 2) ? 22)(mid + 1) : (low + high) / 2); 23)if (key = 0); 15)16)double average = (sum - scorescount) / (count - 1); 17)18)int numOfAbove = 0; 19)int numOfBelow = 0; 20)for (int i = 0; i = average) 22)numOfAbove+; 23)else 24)numOfBelow+; 25)26)System.out.println(Average is + average); 27)
24、System.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(String args) 3)int n
25、umbers = new int100; 4)int counts = new int10; 5)6)int k; 7)for (int i = 0; i 100; i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 10 页 - - - - - - - - - 此文档来源于网络,如有侵权请联系网站删除只供学习交流用8) 9)numbersi = (int)(Math.random() * 10); 10)countsnumbersi+; 11) 12)13)Syst
26、em.out.println(the 100 numbers is :); 14)for(int i = 1; i = numbers.length; i+) 15) 16)if (i % 10 != 0) 17)System.out.print(numbersi-1 + ); 18)else 19)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.
27、print(countsi-1 + ); 25) 26) 7. 求平均值和方差。利用mean(int 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.ou
28、t.print(输入数组元素 :); 10)int 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 sum = 0.0; 名师资料总结 - - -
29、精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 10 页 - - - - - - - - - 此文档来源于网络,如有侵权请联系网站删除只供学习交流用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 =
30、 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 args) 3)int list = 1, 2, 4
31、, 5, 10, 100, 2, -22; 4)5)System.out.println(The min is + minIndex(list); 6) 7)8)public static int minIndex(int list) 9)int min = list0; 10)int minIndex = 0; 11)12)for (int i = 1; i listi) 14)min = listi; 15)minIndex = i; 16) 17)18)return minIndex; 19) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 10 页 - - - - - - - - -