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

下载本文档

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

文档简介

1、填空题1) 数组的元素通过下标来访问,数组Array的长度为Array.lengtho2) 数组复制时,将一个数组的引用 传递给另一个数组。3) 没有显式引用变量的数组称为匿名数组。4) JVM将数组存储在也(堆或栈)中。5) 数组的二分杳找法运用的前提条件是数组已经排序6) 矩阵或表格一般用_维数组表示。7) 如果把二维数组看成一维数组,那么数组的元素是一维_数组。8) Java中数组的下标的数据类型是整型。9) 不用下标变量就可以访问数组的方法是foreach循环。10) 数组最小的下标是0。11) array copy()的最后一个参数指明复制元素的个数。12) 向方法传递数组参数时,传

2、递的是数组的引用。13) 线性杳找法的平均查找长度为n*(n-l)/2。14) 数组初始化包括数组声明、创建和初始化。15) 数组下标访问超出索引范围时抛出arraylndexOutOfBoundsException异常16) 浮点型数组的默认值是他。17) 对象型数组的默认值是皿1。18) 对象类型的数组虽然被默认初始化,但是并没有调用其构造函数。19) 二维数组的行的长度可以不同。20) 数组创建后其大小不能改变。选择题1?下面错误的初始化语句是_P_A) char str="hello"B) char str100= nhello"C) char str=h

3、,e,T,T,d;D) char str=hello';2. 定义了一维int型数组a10后,下面错误的引用是一A)a0=l;B)a10=2;C)a0=5*2;D)al=a2*a0;3. 下面的二维数组初始化语句中,错误的是一 _A) float b 2=0.1,0.2,0.3,0.4);B) in ta2 =1,2,3,4;C) in ta2=l,2,3,4;D) float a22=0;4. 引用数组元素时,数组下标可以是_D_A) 整型常量B)整型变量C)整型表达式D)以上均可5. 定义了 int型二维数组a67后,数组元素a34前的数组元素个数为_B.A) 24 B) 25 C

4、) 18 D) 176. 下列初始化字符数组的语句中,错误的是_CA) char str5="hello"B) char str='h','e',T,T,'o','0'C) charstr5="hi"D) char str 100=""7. 数组在 Java 中储存在 C 中A)栈B)队列C)堆D)链表8. 下面程序的运行结果是 _C_ main()int x=30;Int numbers=new intx;X=60;System.out.println(numbers.

5、length); A) 60 B) 20 C) 30 D) 509. 下面不是创建数组的正确语句 CA) float f=new float66; B) float f=new float6;C) float f=new float6; D) float f=new float6;B 用方法 arraycopyD用clone方法10. 下面不是数组复制方法的是 (C) A 用循环语句逐个复制数组 C 用进行复制11. 数组 a 的第三个元素表示 DAa(3)B a3Ca(2)D a212. 当访问无效的数组下标时,会发生 B A 中止程序B 抛出异常C 系统崩溃D 直接跳过13. 使用arra

6、ycopy()方法将数组a复制到b正确的是AA 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,l ,b,l ,a.length)14?关于数组默认值,错误的是B?'Acha r T"u0000'B BooleantrueCfloat O.OfD int 015. 关于数组作为方法的参数时,向方法传递的是 A A 数组的引用B数组的栈地址C 数组自身D 数组的元素16. 关于数组复制,下列说法错误的是 CA 可以实现数组

7、复制B 运用循环语句进行数组复制必须两个数组长度相同C arraycopy() 方法没有给目标数组分配内存空间D 数组复制是数组引用的传递17. 下列语句会造成数组 new int10 越界是 DAa0+=9;B a9=10;时,Ca9D for (int i=0;i<=10;i+ ) ai+;18. main 方法是 java Application 程序执行的入口点。关于 main 方法放入方法以 下合法的是 BA publicvoid main();staticB publicvoidstaticC publicmain( String static public void mai

8、n ( String arg )D 如定义对19.Shanghai ")arg s) int象 StringBuffer ch = new StringBuffer (则 ch. length() =( B )A. 7B. 8 C . 9 D. 2 320. 执行完代码 “'in tx=new in t25;AA 后以下A )说明正确的A.x24 为 0Bx24 未定义 C x25 为0 D。 x0 为空21. 关于 char 类型的数组,说法正确的是BA 其数组的默认值是 ,AB 可以仅通过数组名来访问数组C 数组不能转换为字符串D 可以存储整型数值22. 对于数组a10,

9、下列表示错误的是 BAa0B a(0)Ca9Dal23. 下列数组声 下列表示错误的是D 明,A int aB int aCint aDinta是非题1?下标用于指出数组中某个元素位置的数字。(F )2. 把数组中元素按某种顺序排列的过程叫做查找。( T )3. 确定数组中是否含有某个关键字的过程叫做排序。( F )4. 一个数组可以存放许多不同类型的数值。( F )5. 数组的下标通常是float型(F )6. 数组的某个元素被传递给一个方法并被该方法修改,当被调用方法执行完毕 这个元素中含有修改过的数值。( F )7. 数组可以声明为任何数据类型。( T )&数组由具有一名字和相同

10、类型的一组连续内存单元构成。(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.length ()表示数组 a

11、rray中元素的个数15. 下面这条语句正确吗 ?( F ) intt32 = l,2,3,4,5,6;16. 数组声明后其大小固定。( F)17. 设有整型数组的定义:inta=newint;,贝'J a.length的值为7。( F) 数组一旦创建,其大小不能再改变。( T )19?用任何方式创建数组时,都必须指定数组的长度。(F )20.声明数组时,要指定数组长度,以便为数组分配内存。( F )简答题1. 如何声明和创建一个一维数组?答:声明数组:数据类型 数组名或 数据类型数组名 创建数组:数据类型 数组名 =new数据类型数组长度2. 如何访问数组的元素? 答:数组的元素通过

12、下标来访问,数组的下标是基于 0 的,它们从 0 开始到 arrayObj ect .lenth-1 结束。3. 数组下标的类型是什么?最小的下标是什么?一维数组a的第三个元素如何表示?答:数组下标的类型是整型,最小的下标是0,数组a的第三个元素表示为 a2。4. 数组越界访问会发生什么错误?怎样避免该错误?答 : 越 界 访 问 数 组 会 发 生 编 译 错 误 , 它 引 出 一 个 运 行 错 误 ArraylndexOutOfBoundsException 为避免错误的发生,在使用时应确保下标不 超过数 组长度减 1.5. 给方法传递数组参数与传递基本数据类型变量的值有何不同?答:对

13、于基本数据类型参数,传递的是实参的值;对于数组类型的参数,参数值是数组的引用,给方法传递的是这个引用。6. 复制数组有哪些方法?答:复制数组有 3 种方法:(1 ) 用循环语句分别复制数组的每一个元素;(2)使用System类中的静态方法 arraycopy ;( 3) 使用 clone 方法复制数组。7. 数组创建后,其元素被赋予的默认值有哪些? 答:数值型基本数据类型默认值为0, char 型为 'u0000', boolean 为 false。&如何声明和创建一个二维数组? 答:声明数组:数据类型 数组名 创建数组:数组名 =new 数据类型 元素个数 元素个数

14、9. 声明数组变量会为数组分配内存空间吗?为什么?答:不会。数组变量不是基本数据类型变量,数组变量包含一个数组的引用,不同于声明基本类型变量,声明数组变量并不给数组分配任何空间。10. 个二维数组的行可以有不同的长度吗?如果可以,试创建一个此类型的数组。答:可以。创建的数组如下:in t tria ngleArray = new in t5 tria ngleArrayO = new in t5;trian gleArrayl = new in t4;trian gleArray2 = new in t3;tria ngle Array 3 = new in t2;trian gleArray

15、4 = new in tl;程序题1?有一个整数数组,其中存放着序列1,3, 5, 7, 9, 11, 13, 15, 17, 19。请 将该序列倒序存放并输出。程序代码:1) public class Test 2)3)4)5)6)7)8)9)10)public static void main( Stri ng args) int a = 1,3,5,7,9,11,13,15,17,19;int t;System.out.println(数组的初始状态为:”);for (i nt i=0; i < a.len gth; i+)System.out.pri nt(n " +

16、ai);System.out.pri ntl nO;for (i nt i=0; i < a.le ngth/2; i+) t = ai;ai = aaen gth-i-l; aaen gth-i-l=t;1 为:7)System, out. printlnC数组逆序存放后的状态) for (i nt i=0; i < a.len gth; i+)System.out.pri nt(" " + ai); 2 0)2.编写一个程序,提示用户输入学生数量、姓名和他们的成绩,并按照成绩的降序来打印学生的姓名。程序代码:1) import javax.sw in g.J

17、Opti onPane;2)2) public class exercise 16 3) public static void main( Stri ng args) 4) String nu mberStri ng =5) JOpti onPan e.show In putDialog("E nter the nu mber of stude nts");6) int nu mberOfStude nts = In teger.parse lnt(nu mberStri ng);8)7) Strin g n ames = new Stringnu mberOfStude

18、nts;8) doublet scores = new double nu mberOfStude nts;H)12) for (int i = 0; i < scores.length; i+) 13) namesi = JOptionPane.showInputDialog( nEnter a student name");14) scoresi = Double.par seDouble(15) JOptionPane.showInputDialog("Enter a student score*');16) 18) for (int i = score

19、s.length ? 1; i >= 1; i ) 19) double currentMax = scores0;20) int currentMaxIndex = 0;22) for (intj= l;j<= i;j 卄)23) if (currentMax < scoresj) 24) currentMax = scoresj;25) currentMaxIndex = j;26) 27) 29) if (currentMaxIndex != i) 30) scoresfcurrentMaxIndex = scoresi;31) scoresi = currentMax

20、;32) String temp = namescurrentMaxIndex;33) names currentMaxIndex = namesi;34) names i = temp;35) 36) 38) for (int i = scores.length - 1; i >= 0; i ) 39) System, out.println(namesi + "t" + scoresi);40) 41) 42) 8. 编写一个程序,生成 0-9 之间的 100个随机整数并且显示每一个数的个数。 序代码:1) public class exercise7 2) pu

21、blic static void main(String args) 3) int numbers = new int100;4) int counts = new int10;int k;for (inti = 0; i < 100; i+)numbersi = (int)(Math.random() * 10); countsnumbersi+;10) 13)System.out.pri ntln ("the 100 nu mbers is for(i nt i = 1; i <= nu mbersen gth; i+) 佝17)18)20)21)22)if(i% 1

22、0 !=0)System.out.print(numbersi-l + ” ”); elseSystem. out.pr in tl n(nu mbersi-l);System.out.pr intln ("the counts of each nu mber is for(i nt i = 1 ; i <= counts.len gth; i+)System.out.print(countsi-1 + " ” ;23)24) 26) 253.编写一个程序,求出整数数组中最小元素的下标。如果这样的元素个数大) 于1,则返回下标最小的数的下标。程序代码:1 public

23、 class Minin dex 2 public static void main( Str in g args) 3 int list = 1,2,4, 5, 10, 100, 2, -22;4System.out.println("The min is ” + minlndex(list) 8 public static int minlndex(intn list) 9 int min = listO;1int minln dex = 0;0for (int i = 1; i < list.length; i+)if (min > listi) 11674.min

24、 = listi; mi nln dex = i;return minln dex;现在有如下的一个数组:in t oldArr= 1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5;要求将以上数组中值为 0的项去掉,将不为 0的值存入一个新的数组,生成的新数组为:int n ewArr= 1,3,4,5,6,6,5,4,7,6,7,5;思路:生活中的问题解决=程序中的解决;1、 确定出不为0的个数,这样可以开辟新数组;2、从旧的数组之中,取出内容,并将其赋给新开辟的数组public class MyDemopublic 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 = newintcount(oldArr) ;/ 新数组fun(oldArr,newArr);print(newArr);public static void fun(int src,int data)int foot = 0 ; / 控制新数组的脚标, datafor(int x = 0 ; x < src.length; x+) if(srcx !=0) datafoot+ = srcx; public static int count(int tempi )int

温馨提示

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

评论

0/150

提交评论