Java数组练习题(带答案)之欧阳音创编
- 格式:doc
- 大小:51.50 KB
- 文档页数:20
在开发的时候主方法之中的代码越少越好。
1、将一个给定的整型数组转置输出,
例如:源数组,1 2 3 4 5 6
转置之后的数组,6 5 4 3 2 1
2、现在有如下的一个数组:
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:
int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5} ;
思路:生活中的问题解决 = 程序中的解决;
1、确定出不为0的个数,这样可以开辟新数组;
2、从旧的数组之中,取出内容,并将其赋给新开辟的数组;
3、现在给出两个数组:
·数组A:“1,7,9,11,13,15,17,19:;·数组b:“2,4,6,8,10”
两个数组合并为数组c,按升序排列。
主要的目的是熟悉这两个操作的方法,数组扩大,必须要将原始数组的内容拷贝进去。
1.编写程序,用数组实现乘法小九九的存储和输出。
【提示:采用多个一维数组。
】public class Multipation {public static void main(String[] args) {// TODO Auto-generated method stubint x[][]=new int[9][9];for(int i=0;i<9;i++){for(int j=0;j<9;j++){if(i>=j){int m=i+1;int n=j+1;x[i][j]=m*n;System.out.print(m+"*"+n+"="+x[i][j]);}}System.out.println();}}}2. 定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。
SetRecord给出学号、姓名和成绩的赋值,GetRecord通过学号得到考生的成绩。
public class Student {/***@param args*/private int ID;private String name;private float score;public void SetRecord(int ID,String name,float score){this.ID=ID;=name;this.score=score;}public float getRecord(int ID){if(ID==this.ID)return this.score;elsereturn -1;}public static void main(String[] args) {// TODO Auto-generated method stubStudent s=new Student();s.SetRecord(0,"alex",100);float Sco=s.getRecord(0);System.out.print(Sco);}}3.给出上题中设计类的构造函数,要求初始化一条记录(学号、姓名、成绩)。
一填空题1)数组得元素通过下标来访问,数组Array得长度为 Array、length 。
2)数组复制时,"="将一个数组得引用传递给另一个数组。
3)JVM将数组存储在栈 (堆或栈)中。
4)数组得二分查找法运用得前提条件就是数组已经排序。
5)Java中数组得下标得数据类型就是整型。
6)数组最小得下标就是 0 。
7)arraycopy()得最后一个参数指明复制元素得个数。
8)向方法传递数组参数时,传递得就是数组得引用。
9)数组初始化包括数组得申明,创建与初始化。
10)数组下标访问超出索引范围时抛出数组越界异常11)浮点型数组得默认值就是 0、0f 。
12)数组创建后其大小不能改变。
二选择题1.下面错误得初始化语句就是_ABD__A、 char str[]="hello";B、 char str[100]="hello";C、 char str[]={'h','e','l','l','o'};D、 char str[]={'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、 float b[2][2]={0、1,0、2,0、3,0、4};B、 int a[][]={{1,2},{3,4}};C、 int a[2][]= {{1,2},{3,4}};D、 float a[2][2]={0};4.引用数组元素时,数组下标可以就是_D___A、整型常量B、整型变量C、整型表达式D、以上均可5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前得数组元素个数为____A、 24B、 25C、 18D、 176.下列初始化字符数组得语句中,正确得就是__B__A、 char str[5]="hello";B、charstr[]={'h','e','l','l','o','\0'};C、 char str[5]={"hi"};D、 char str[100]="";7.数组在Java中储存在 C 中A、栈B、队列C、堆D、链表8.下面程序得运行结果就是____main() {int a[][]={{1,2,3},{4,5,6}};System、out、printf("%d", a[1][1]);}A、 3B、 4C、 5D、 69.下面程序得运行结果就是_C___main() {int x=30;int[] numbers=new int[x];x=60;System、out、println(numbers、length);}A、 60B、 20C、 30D、 5010.下面程序得运行结果就是__BDF__main() {char s1[]="ABCDEF"、toCharArray();int i=0;while(s1[i++]!='\0')System、out、println(s1[i++]);}A、 ABCDEFB、 BDFC、 ABCDED、 BCDE11.下面不就是创建数组得正确语句CA、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、用方法arraycopyC、用"="进行复制D、用clone方法13.数组a得第三个元素表示为DA、 a(3)B、 a[3]C、a(2)D、 a[2]14.当访问无效得数组下标时,会发生BA、中止程序B、抛出异常C、系统崩溃D、直接跳过15.使用arraycopy()方法将数组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,1,b,1,a、length)16.关于数组默认值,错误得就是 BA、 char--'"u0000'B、 Boolean--trueC、 float--0、0fD、 int-- 017.关于数组作为方法得参数时,向方法传递得就是 AA、数组得引用B、数组得栈地址C、数组自身D、数组得元素18.关于数组复制,下列说法错误得就是ACA、 "="可以实现数组复制B、运用循环语句进行数组复制必须两个数组长度相同C、 arraycopy()方法没有给目标数组分配内存空间D、数组复制就是数组引用得传递19.下列语句会造成数组new int[10]越界就是DA、 a[0] += 9;B、 a[9]=10;C、—a[9]D、for(int i=0;i<=10;i++) a[i]++;20.在JDK环境下编译JAVA源程序使用得命令就是(B )A、javaB、javacC、jvmD、tomcatD、子类不能使用父类得构造方法21.main方法就是java Application 程序执行得入口点。
java数组习题答案Java数组习题答案在学习Java编程语言的过程中,数组是一个非常重要的概念。
它是一种用来存储相同类型数据的数据结构,可以帮助我们更有效地管理和操作数据。
在学习数组的过程中,我们经常会遇到一些习题,通过解答这些习题可以加深对数组的理解,提高编程能力。
下面我们来看一些常见的Java数组习题及其答案:1. 如何声明一个数组?答:可以使用以下语法来声明一个数组:```javaint[] arr = new int[5];```2. 如何初始化一个数组?答:可以使用以下语法来初始化一个数组:```javaint[] arr = {1, 2, 3, 4, 5};```3. 如何访问数组中的元素?答:可以使用以下语法来访问数组中的元素:```javaint[] arr = {1, 2, 3, 4, 5};System.out.println(arr[2]); // 输出3```4. 如何计算数组中元素的和?答:可以使用以下代码来计算数组中元素的和:```javaint[] arr = {1, 2, 3, 4, 5};int sum = 0;for (int i = 0; i < arr.length; i++) {sum += arr[i];}System.out.println("数组元素的和为:" + sum);```5. 如何找出数组中的最大值和最小值?答:可以使用以下代码来找出数组中的最大值和最小值:```javaint[] arr = {1, 2, 3, 4, 5};int max = arr[0];int min = arr[0];for (int i = 1; i < arr.length; i++) {if (arr[i] > max) {max = arr[i];}if (arr[i] < min) {min = arr[i];}}System.out.println("数组中的最大值为:" + max);System.out.println("数组中的最小值为:" + min);```通过解答这些习题,我们可以更加深入地理解和掌握Java数组的相关知识,提高自己的编程能力。
java数组练习题一、基础练习题1. 创建一个名为"numbers"的整型数组,包含以下元素:1, 2, 3, 4, 5。
2. 打印数组中第三个元素的值。
3. 修改数组中第二个元素的值为10。
4. 打印数组中所有元素的值。
二、进阶练习题1. 创建一个名为"grades"的双精度浮点型数组,包含以下元素:78.5, 92.3, 85.6, 88.0。
2. 计算并打印数组中元素的平均值。
3. 找出并打印数组中的最大值和最小值。
4. 创建一个名为"names"的字符串数组,包含以下元素:"Alice", "Bob", "Charlie", "David"。
5. 将"David"替换为"Ethan"。
6. 打印修改后的字符串数组。
三、马拉松比赛练习题一共有10名选手参加马拉松比赛,他们的成绩分别是:1. 135分钟2. 147分钟3. 120分钟4. 155分钟5. 130分钟6. 144分钟7. 118分钟8. 137分钟9. 165分钟10. 152分钟1. 创建一个名为"marathonTimes"的整型数组,包含以上成绩。
2. 计算并打印完成马拉松的选手人数。
3. 计算并打印平均完成时间。
4. 找出并打印完成时间最短和最长的选手成绩。
四、学生成绩练习题某班级有10名学生,他们的成绩如下:1. 89分2. 78分3. 92分4. 85分5. 76分6. 94分7. 81分8. 90分9. 87分10. 95分1. 创建一个名为"studentGrades"的整型数组,包含以上成绩。
2. 计算并打印班级的平均成绩。
3. 找出并打印成绩大于90分的学生数量。
4. 将成绩不及格(低于60分)的学生的成绩替换为60分。
精品文档数组练习题及答案第五章一、选择题)b1、判断字符串a和是否相等,应当使用(if(strcmp(a,b)) 、C 、if(strcpy(a,b)) D A、if(a==b) B、if(a=b))2、以下正确的定义语句是(}; 、 B A、int a[1][4]={1,2,3,4,5};double y[][3]={0}; D、C、2,3}};)a的选项是(3、以下各组选项中,均能正确定义二维实型数组}; float a[ ][4]; A、float a[3][4];};float a[3][4]; B、float a(3,4);}; }; C、D、float a[3][4]; float a[3][ ]; float a[ ][4];4、下面程序的运行结果是()1—5 DDCBA 6—10 BDABB 11—15 CCCBC 16—20 DDCBB21—25 BBAAA 26—30 DBDDB#include stdio.hmain(){ char str[]=SSSWLIA,c;int k;for(k=2;((c=str[k])!='\0');k++){ switch(c){case 'I':++k;break;case 'L':continue;default:putchar(c);continue;}putchar('*');}}A、SSW*B、SW*C、SW*AD、SW5、下面程序段是输出两个字符串中对应相等的字符。
横线处应填入()char x[]=programming;char y[]=Fortran;int i=0;精品文档.精品文档while(x[i]!='\0'&&y[i]!='\0')if(x[i]==y[i]) printf(%c,《1》);else i++;A、x[i++]B、y[++i]C、x[i]D、y[i]6、有下面的程序段,则()char a[3],b[]=china;a=b;printf(%s,a);A、运行后将输出ChinaB、运行后将输出ChC、运行后将输出ChiD、编译出错7、下面程序的运行结果是()main(){ char ch[7]={ab56};int i,s=0;for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'0';printf(%d\n,s);}A、1B、1256C、12ab56D、12568、定义如下变量和数组:则下面语句的输出结果是()int k;int a[3][3]={1,2,3,4,5,6,7,8,9,};for(k=0;k<3;k++)printf(%d,a[k][2-k]);A、3 5 7B、3 6 9C、1 5 9D、1 4 79、下面程序段的运行结果是()char c[5]={'a','b','\0','c','\0'};printf(%s,c);A、'a''b'B、abC、ab cD、abc10、若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()A、2B、3C、4D、无确定值精品文档.精品文档11、下面程序的运行结果是()main(){ int a[6],i;for(i=1;i<6;i++){ a[i]=9*(i-2+4*(i>3))%5;printf(-,a[i]);}}A、-4 0 4 0 4B、-4 0 4 0 3C、-4 0 4 4 3D、-4 0 4 4 012、下面程序的运行结果是()main(){int a[6][6],i,j;for(i=1;i<6;i++)for(j=1;j<6;j++)a[i][j]=(i/j)*(j/i);for(i=1;i<6;i++){ for(j=1;j<6;j++)printf(-,a[i][j]);printf(\);}}A、1 1 1 1 1B、0 0 0 0 1C、1 0 0 0 0D、1 0 0 0 11 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 01 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 01 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 01 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 113、下述对C语言字符数组的描述中错误的是()A、字符数组可以存放字符串。
1.使用Java语言编写的源程序保存时的文件扩展名是()。
(A).class (B).java (C).cpp(D).txt2.设int a=2,则表达式a>>>3的值为()。
(A)0(B)3(C)8(D)1 3.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是()。
(A)a[0]; (B)a[a.length1];(C)a[3];(D)inti=1; a[i];4.在类的定义中可以有两个同名函数,这种现象称为函数()。
(A)封装(B)继承(C)覆盖(D)重载5.在类的定义中构造函数的作用是()。
(A)保护成员变量(B)读取类的成员变量(C)描述类的特征(D)初始化成员变量6.下面关键字中,哪一个不是用于异常处理语句()。
(A)try(B)break(C)catch(D)finally 7.类与对象的关系是()。
(A)类是对象的抽象(B)对象是类的抽象(C)对象是类的子类(D)类是对象的具体实例8.下面哪一个是Java中不合法的标识符()。
(A)$persons(B)twoNum (C)_myVar(D)*point 9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。
(A)static void method( )(B)public void method( )(C)final void method( )(D)abstract void method( )10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的()。
(A)ArrayListmyList=new Object( )(B)List myList=newArrayList( )(C)ArrayListmyList=new List( )(D)List myList=newList( )11.Java源文件和编译后的文件扩展名分别为()(A) .class和 .java(B).java和 .class(C).class和 .class(D) .java和 .java12.在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成一些画图操作。
数组测试题及答案一、单选题1. 在Java中,数组的默认初始值是什么?A. 0B. 1C. nullD. 随机值答案:A2. 以下哪个方法可以用来获取数组的长度?A. length()B. size()C. count()D. length答案:D3. 如何在Java中声明一个整型数组?A. int[] array;B. int array[];C. both A and BD. neither A nor B答案:C二、填空题1. 在Java中,声明一个大小为10的整型数组,可以使用语句:________。
答案:int[] array = new int[10];2. 如果有一个数组arr,要访问数组的最后一个元素,可以使用索引:________。
答案:arr.length - 1三、判断题1. 数组的索引是从1开始的。
()答案:错误2. 数组的大小在声明后可以改变。
()答案:错误3. 多维数组可以看作是数组的数组。
()答案:正确四、简答题1. 请简述Java中数组和ArrayList的区别。
答案:数组是固定大小的,而ArrayList是动态大小的;数组可以存储基本数据类型和对象,而ArrayList只能存储对象;数组在声明时必须指定大小,而ArrayList可以随着元素的添加自动增长。
2. 如何在Java中反转一个数组?答案:可以使用循环交换数组两端的元素,或者使用Arrays类的reverse方法。
结束语本试题涵盖了数组的基本概念、操作和特性,旨在帮助考生理解和掌握Java中数组的使用。
希望考生通过这些题目能够加深对数组的理解,并在实际编程中灵活运用。
java 数组练习题Java 数组练习题Java 是一种广泛应用于软件开发的编程语言,而数组则是 Java 中常用的数据结构之一。
数组可以用来存储一系列相同类型的数据,它提供了便捷的访问和操作方式。
在这篇文章中,我们将通过一些实际的练习题来巩固和提升对 Java 数组的理解和应用。
1. 数组元素求和首先,我们来考虑一个简单的问题:给定一个整数数组,如何计算数组中所有元素的和呢?我们可以使用一个循环遍历数组,并将每个元素累加到一个变量中。
以下是一个示例代码:```javaint[] nums = {1, 2, 3, 4, 5};int sum = 0;for (int i = 0; i < nums.length; i++) {sum += nums[i];}System.out.println("数组元素的和为:" + sum);```2. 数组元素查找接下来,我们考虑一个查找问题:给定一个整数数组和一个目标值,如何确定目标值是否存在于数组中?我们可以使用一个循环遍历数组,并逐个比较元素与目标值是否相等。
以下是一个示例代码:```javaint[] nums = {1, 2, 3, 4, 5};int target = 3;boolean found = false;for (int i = 0; i < nums.length; i++) {if (nums[i] == target) {found = true;break;}}if (found) {System.out.println("目标值存在于数组中");} else {System.out.println("目标值不存在于数组中");}```3. 数组元素排序排序是数组操作中常见的需求之一。
Java 提供了多种排序算法,如冒泡排序、选择排序和插入排序等。
这里我们以冒泡排序为例,来演示如何对数组元素进行排序。
J a v a数组练习题(带答案)1)数组的元素通过下标来访问,数组Array的长度为 Array.length 。
2)数组复制时,"="将一个数组的引用传递给另一个数组。
3)JVM将数组存储在栈 (堆或栈)中。
4)数组的二分查找法运用的前提条件是数组已经排序。
5)Java中数组的下标的数据类型是整型。
6)数组最小的下标是 0 。
7)arraycopy()的最后一个参数指明复制元素的个数。
8)向方法传递数组参数时,传递的是数组的引用。
9)数组初始化包括数组的申明,创建和初始化。
10)数组下标访问超出索引范围时抛出数组越界异常11)浮点型数组的默认值是 0.0f 。
12)数组创建后其大小不能改变。
二选择题1.下面错误的初始化语句是_ABD__A. char str[]="hello";B. char str[100]="hello";C. char str[]={'h','e','l','l','o'};D. char str[]={'hello'};2.定义了一维int型数组a[10]后,下面错误的引用是_B__3. A. a[0]=1; B. a[10]=2; C. a[0]=5*2; D. a[1]=a[2]*a[0];4.下面的二维数组初始化语句中,正确的是____5. A. float b[2][2]={0.1,0.2,0.3,0.4}; B. int a[][]={{1,2},{3,4}};6. C. int a[2][]= {{1,2},{3,4}}; D. float a[2][2]={0};7.引用数组元素时,数组下标可以是_D___8. A. 整型常量 B. 整型变量 C. 整型表达式 D. 以上均可9.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____A. 24B. 25C. 18D. 1710.下列初始化字符数组的语句中,正确的是__B__11.A. char str[5]="hello"; B. char str[]={'h','e','l','l','o','\0'};12.C. char str[5]={"hi"}; D. char str[100]="";13.数组在Java中储存在 C 中14.A. 栈 B. 队列 C. 堆D. 链表15.下面程序的运行结果是____main() {int a[][]={{1,2,3},{4,5,6}};System.out.printf("%d", a[1][1]);}A. 3B. 4C. 5D. 616.下面程序的运行结果是_C___int x=30;int[] numbers=new int[x];x=60;System.out.println(numbers.length);}A. 60B. 20C. 30D. 5018.下面程序的运行结果是__BDF__19.main() {20.char s1[]="ABCDEF".toCharArray();21.int i=0;22.while(s1[i++]!='\0')System.out.println(s1[i++]);}A. ABCDEFB. BDFC. ABCDED. BCDE23.下面不是创建数组的正确语句C24. A.float f[][]=new float[6][6]; B.float f[]=new float[6];25. C.float f[][]=new float[][6]; D.float [][]f=new float[6][];26.下面不是数组复制方法的是(C)A. 用循环语句逐个复制数组B. 用方法arraycopyC. 用"="进行复制D. 用clone方法27.数组a的第三个元素表示为DA. a(3)B. a[3]C.a(2)D. a[2]28.当访问无效的数组下标时,会发生BA. 中止程序B. 抛出异常C. 系统崩溃D. 直接跳过29.使用arraycopy()方法将数组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,1,b,1,a.length)30.关于数组默认值,错误的是 BA. char--'"u0000'B. Boolean--trueC. float--0.0fD. int-- 031.关于数组作为方法的参数时,向方法传递的是 AA. 数组的引用B. 数组的栈地址C. 数组自身D. 数组的元素32.关于数组复制,下列说法错误的是ACA. "="可以实现数组复制B. 运用循环语句进行数组复制必须两个数组长度相同C. arraycopy()方法没有给目标数组分配内存空间D. 数组复制是数组引用的传递33.下列语句会造成数组new int[10]越界是DA. a[0] += 9;B. a[9]=10;C. —a[9]D. for(int i=0;i<=10;i++) a[i]++;34.在JDK环境下编译JAVA源程序使用的命令是(B )A.javaB.javacC.jvmD.tomcatD. 子类不能使用父类的构造方法35.main方法是java Application 程序执行的入口点。
三、/*现在有如下一个数组:*int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};*要求将以上数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组为:*int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5};*/public class Test4_3{public static void main(String[] args){int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};int n=0;for(int i=0;i<oldArr.length;i++){if(oldArr[i]!=0){n++;}}int newArr[]=new int[n];n=0;for(int i=0;i<oldArr.length;i++){if(oldArr[i]!=0){newArr[n]=oldArr[i];n++;}}for(int i=0;i<newArr.length;i++){System.out.print(newArr[i]+"/t");}}}四、//定义一个整型数组,保存10个数据,利用程序完成将最大值保存在数组中第一个元素,依次递减。
public class Test4_4{public static void main(String[] args){int arr[]={78,64,35,92,48,98,87,94,80,83};rankArr(arr);}public static void rankArr(int temp[]){for(int i=1;i<temp.length;i++){System.out.print("第"+i+"次排序时:");for(int j=0;j<temp.length;j++){if(temp[j]<temp[i]){int x=temp[j];temp[j]=temp[i];temp[i]=x;}}for(int e=0;e<temp.length;e++){System.out.print(temp[e]+"、");}System.out.println();}}}每次交换数据后,都输出了所有数组元素,可以观察到元素间的数据交换。
第四部分数组4.1选择题1. 以下关于数组的描述正确的是(c )。
A. 数组的大小是固定的,但可以有不同的类型的数组元素B. 数组的大小是可变的,但所有数组元素的类型必须相同C. 数组的大小是固定的,所有数组元素的类型必须相同D. 数组的大小是可变的,可以有不同的类型的数组元素2. 以下对一维整型数组a的正确说明是(d )。
A.int a(10);B. int n=10,a[n];C.int n;D. #define SIZE 10scanf("%d",&n); int a[SIZE];int a[n];3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是(c )。
A. 整型常量B. 整型表达式C. 整型常量或整型表达式D. 任何类型的表达式4. 以下对一维数组m进行正确初始化的是(c )。
A. int m[10]=(0,0,0,0) ;B. int m[10]={ };C.int m[ ]={0};D. int m[10]={10*2};5. 若有定义:intbb[ 8];。
则以下表达式中不能代表数组元bb[1]的地址的是(c )。
A. &bb[0]+1B. &bb[1]C. &bb[0]++D.bb+16. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是(d )。
A. 3B.6C. 10D. 207. 若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a',d,g;则数值为4的表达式是(d )A.a[g-c]B. a[4]C. a['d'-'c']D. a['d'-c]8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入(a )。
#include<stdio.h>main(){int a[10],i=0;while(i<10) scanf("%d",________ );┇}A. a+(i++)B. &a[i+1]C.a+iD. &a[++i]9. 执行下面的程序段后,变量k中的值为(a )。
Java数组选择题附加答案解析1. 下列哪个选项正确描述了Java数组?A. 数组可以包含不同类型的元素。
B. 数组的大小可以在运行时改变。
C. 数组的元素必须是相同类型的数据。
D. 数组的索引可以是负数。
答案: C。
解析:在Java中,数组的元素必须是相同类型的数据。
2. 给定以下Java数组的声明和初始化:javaint[] arr = {1, 2, 3};下列哪个选项初始化了一个与’arr’相同的数组?A. ‘int[] newArr = new int[3];’B. ‘int[] newArr = {1, 2, 3};’C. ‘int[] newArr = arr;’D. ‘int[] newArr = new int[]{1, 2, 3};’答案: D。
解析:选项D 初始化了一个与‘arr’相同的数组,并且也使用了初始化数组的方式。
3. 给定以下Java代码片段:javaint[] arr = {5, 3, 9, 1, 7};表达式’arr.length’的值是:A. 5B. 4C. 6D. 10答案: A。
解析:’arr.length’表示数组’arr’的长度,即数组中元素的个数,这里是5。
4. 给定以下Java数组的声明和初始化:javaint[] arr = new int[4];arr[0] = 1;arr[1] = 3;arr[2] = 5;arr[3] = 7;表达式’arr[2]’的值是:A. 1B. 3C. 5D. 7答案: C。
解析:’arr[2]’表示数组’arr’中索引为2的元素,即第三个元素,其值为5。
5. 给定以下Java数组的声明和初始化:javaint[] arr = {2, 4, 6, 8};下列哪个选项正确实现了对数组’arr’的遍历?A.javafor (int i = 0; i <= arr.length; i++) {System.out.println(arr[i]);}B.javafor (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}C.javafor (int i = 1; i <= arr.length; i++) {System.out.println(arr[i]);}D.javafor (int i = 0; i < arr.length - 1; i++) {System.out.println(arr[i]);}答案: B。
填空题一 length 。
来访问,数组Array得长度为 Array、1)数组得元素通过下标传递给另一个数组。
?将一个数组得引用 2)数组复制时,中。
栈(堆或栈)3)JVM将数组存储在。
数组得二分查找法运用得前提条件就是数组已经排序 4)。
中数组得下标得数据类型就是整型 5)Java。
6)数组最小得下标就是 0。
得最后一个参数指明复制元素得个数 7)arraycopy()向方法传递数组参数时,传递得就是数组得引用。
8)数组得申明,创建与初始化。
9)数组初始化包括数组越界异常10)数组下标访问超出索引范围时抛出 0、0f 。
11)浮点型数组得默认值就是不能改变。
12)数组创建后其大小二选择题_ABD__1.下面错误得初始化语句就是 char str[100]=hello;B、A、 char str[]=hello;C、 char str[]={'h','e','l','l','o'};D、 char str[]={'hello'};___B定义了一维int型数组a[10]后,下面错误得引用就是2. 、 a[0]=5*2; C、、 a[0]=1; D、a[1]=a[2]*a[0];B a[10]=2;A____下面得二维数组初始化语句中,正确得就是3.4}}; 、3,0、4}; B、A、 float b[2][2]={01,0、2,0、 float a[2][2]={0};、 DC、 4}};_D___4.引用数组元素时,数组下标可以就是以上均可 D A、整型常量、整型表达式、 B、整型变量 C____前得数组元素个数为型二维数组a[6][7]后,数组元素a[3][4]5.定义了int C、 18 D、17 B、 25 、A 24____B6.下列初始化字符数组得语句中,正确得就是 char str[5]=hello; char、 B A、str[]={'h','e','l','l','o','\0'};char str[100]=\;C 、、D char str[5]={hi};Java中储存在 C 中数组在7.队列 B、 C、、D 链表堆栈、A____下面程序得运行结果就是8.main() {5,6}};printf(%d, a[1][1]);out、、 System}6 A、、 4 C、、 3 B 5 D_C___下面程序得运行结果就是9.main() {int x=30;int[] numbers=new int[x];x=60;System、out、println(numbers、length);}A、 60B、 20C、 30D、 5010.下面程序得运行结果就是__BDF__main() {档牡猠嬱????屆、toCharArray();int i=0;while(s1[i++]!='\0')System、out、println(s1[i++]);}A、 ABCDEFB、 BDFC、 ABCDED、 BCDE11.下面不就是创建数组得正确语句CA、float f[][]=new float[6][6];B、float f[]=new float[6];C、float f[][]=new float[][6]; 、 Dfloat[6][]; [][]f=new float(C) 下面不就是数组复制方法得就是12.arraycopy 用方法B 用循环语句逐个复制数组、 A、方法?进行复制clone用、D C、用D a得第三个元素表示为数组13.a[2]、、 A、 a(3)B a[3]C、a(2) DB 14.当访问无效得数组下标时,会发生中止程序直接跳过D、系统崩溃 B、抛出异常 C、 A、Ab正确得就是复制到使用15.arraycopy()方法将数组alength) 、、 arraycopy(a,0,b,0,a、length) B、 arraycopy(a,0,b,0,b Alength) arraycopy(a,1,b,1,alength)D、、 arraycopy(b,0,a,0,a C、、、 B16.关于数组默认值,错误得就是 int-- 、、 A char--'、 Boolean--true C float--0、0f D、0A关于数组作为方法得参数时,向方法传递得就是17. 、 D 数组得元素数组自身、数组得栈地址、数组得引用、 A B CAC 关于数组复制,下列说法错误得就是18.可以实现数组复制尠尽 A、运用循环语句进行数组复制必须两个数组长度相同、 B方法没有给目标数组分配内存空间 arraycopy()、 C.D、数组复制就是数组引用得传递19.下列语句会造成数组new int[10]越界就是DA、 a[0] += 9;B、 a[9]=10;C、—a[9]D、 for(inti=0;i<=10;i++) a[i]++;(B )源程序使用得命令就是在JDK环境下编译JAVA20.tomcat、javac CjvmD、A、java B、 D、子类不能使用父类得构造方法21.main方法就是java Application 程序执行得入口点。
一、单选题1、Java数组存放在()中。
A.链表B.栈C.队列D.堆正确答案:D2、当访问无效的数组下标时,系统会()。
A.系统崩溃B.中止程序C.抛出异常D.直接跳过正确答案:C3、int arra[] = new int[5]; 下列说法不正确的是()。
A.一共有5个元素B.数组的元素类型都是整型C.数组元素4和数组的第四个元素的值相等D.数组的下标时0-4正确答案:C4、在Java中,通过()可以获得数组长度。
A.length()B.lengthC.sizeD.size()正确答案:B5、设有定义语句int a[]={1,1,2};则以下对此语句的叙述错误的是()。
A.定义了一个名为a的一维数组B.数组中的每个元素是整型C.a数组有3个元素D.a数组的下标为1~3正确答案:D6、定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为()。
A.18B.25C.24D.17正确答案:B二、填空题1、已知:int a[]={2,4,6,8};则:表达式(a[0]+=a[1])+ ++a[2]值为()。
正确答案:132、以下程序输出结果为()。
int a[] = { 1, 3, 9, 5, 7, 4, 2, 8 };int num = 0;for(int i = 0; i <a.length; i++){if(a[i]==a[0]){num++;}}System.out.println(num);正确答案:13、在Java中,数组创建成功以后,其大小()(能/不能)改变。
正确答案:不能4、在Java中,用任何形式创建数组时,都必须指定数组的()。
正确答案:长度5、在Java中,不论是一维数组还是多维数组,下标都是从()开始。
正确答案:06、在Java语言中,二维数组的两个中括号[][]分别表示()和()。
正确答案:行,列7、在初始化二维数组时,可以只指定数组的()而不给出数组的(),每一行的长度由二维数组引用时决定。
选择题(每题3分,共45分)1、下列程序编译或运行的结果是。
() D public static void main(String args[]){int a = 10;int b,c;if(a>50){b=9;}c = b + a;System.out.println(c);}A.10B. 19C.9D.编译错误2、下列语句片段中,four的值为 () Dint three = 3;char one = ‘1’;char four = (char)(three+one);A. 3B. 1C. 31D. 43、下列代码的运行结果是 ( ) Dpublic static void main(String[] args){int a = 7;System.out.println(a%3);}A.2.0 B.2 C.1.0 D.14、以下程序的输出结果为( )。
Dpublic static void main(String[]args) {int x = 1, y = 1, z =1;if(x==1&&y==1||z==1)System.out.println(“x=” +x+”,y=” +y+”,z=” +z);}A.x=0, y=1,z=1B.x=0,y=2,z=2C.x=0,y=2,z=1D.x=0,y=0,z=15、下列代码段编译和运行的结果是(). C public static void main(String args[]){S tring str = “null”;if(str==null){System.out.println(“null”);}else if(str.length()==0){System.out.println(“zero”);}else {System.out.println(“some”);}}A. nullB. zeroC. someD. 编译错误6、下列代码的运行结果是():D public class Animal{public String noise(){return “peep”;}public static void main(String[] args){Animal animal = new Dog();Cat cat = (Cat)animal;System.out.println(cat.noise());}}class Dog extends Animal{public String noise(){return “bark”;}}class Cat extends Animal{public String noise(){return “meow”;}}A. peepB.barkC.meowD.编译错误E. 抛出运行时异常7、关于下列代码说法正确的是( ) Dpublic class Foo{public int add(int a,int b){return a+b;}public static void main(String[] args){Foo foo = null;System.out.println(foo.add(10,20));}}A. 编译错误B. 正常运行,但无结果输出C.30D.运行时抛出NullPointerException8、程序的执行结果是 ( ) Bpublic class Test{int x;public static void main(String[] args){Test t = new Test();t.x = 5;change(t);System.out.println(t.x);}public static void change(Test t){t.x = 3;}}A. 5B. 3C. 0D. 49、关于下列代码书法正确的是 ( ) B public class A{public void doit(){}public String doit(){return “a”;}public double doit(int x){return 1.0;}}A. 无编译错误B. 代码public String doit(){行,出现编译错误C. 代码public double doit(int x){行,出现编译错误D. 代码return “a”;行处出现编译错误10、下列代码的运行结果是()DString test = “This is a test”;String[] tokens = test.split(“\\s”);System.out.println(tokens.length);A. 0B. 1C. 3D. 411、请看下列代码()A1 //some code here2 try{3 //some code here4 }catch(SomeException se){5 //some code here6 }finally{7//some code here8}下面那种情况不能使第7行的代码执行:A. 第1行抛出异常B. 第3行抛出异常C. 第5行抛出异常D. 第3行代码成功执行E.第5行代码成功执行F.不管如何第7行都会运行12、Java中单一文件里的关键字class import package 出现的顺序应为:()CA.class package importB. class import packageC. package import classD. import package class13、给出以下代码,请问该程序的运行结果是什么?Dclass Example {public static void main(String args[]){String s = new String( "Computer" );if( s == "Computer" )System.out.println( "Equal A" );if( s.equals( "Computer" ) )System.out.println( "Equal B" );}}A、代码编译失败B、打印输出空白行C、打印输出:Equal A;D、打印输出:Equal BE、打印输出:Equal A和Equal B14、Java语言中, 通常把可能发生异常的方法调用语句放到________、________块中,分别用来捕获和处理异常。
JAVA经典算法40题【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... publicclass exp2{publicstaticvoid main(String args[]){int i=0;for(i=1;i<=20;i++)System.out.println(f(i));}publicstaticint f(int x){if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}}或publicclass exp2{publicstaticvoid main(String args[]){int i=0;math mymath = new math();for(i=1;i<=20;i++)System.out.println(mymath.f(i));}}class math{publicint f(int x){if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
publicclass exp2{publicstaticvoid main(String args[]){int i=0;math mymath = new math();for(i=2;i<=200;i++)if(mymath.iszhishu(i)==true)System.out.println(i);}}class math{publicint f(int x){if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}publicboolean iszhishu(int x){for(int i=2;i<=x/2;i++)if (x % 2==0 )returnfalse;returntrue;}}【程序3】题目:打印出所有的 "水仙花数 ",所谓 "水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
一填空题1)2)数组的元素通过下标来访问,数组Array的长度为Array.length。
3)数组复制时,"="将一个数组的引用传递给另一个数组。
4)JVM将数组存储在栈(堆或栈)中。
5)数组的二分查找法运用的前提条件是数组已经排序。
6)Java中数组的下标的数据类型是整型。
7)数组最小的下标是0。
8)arraycopy()的最后一个参数指明复制元素的个数。
9)向方法传递数组参数时,传递的是数组的引用。
10)数组初始化包括数组的申明,创建和初始化。
11)数组下标访问超出索引范围时抛出数组越界异常12)浮点型数组的默认值是0.0f。
13)数组创建后其大小不能改变。
二选择题1.下面错误的初始化语句是_ABD__A. char str[]="hello";B. char str[100]="hello";C. char str[]={'h','e','l','l','o'};D. char str[]={'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. int a[][]={{1,2},{3,4}};C. int a[2][]= {{1,2},{3,4}};D. float a[2][2]={0};4.引用数组元素时,数组下标可以是_D___A.整型常量B.整型变量C.整型表达式D.以上均可5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____A. 24B.25C. 18D. 176.下列初始化字符数组的语句中,正确的是__B__A. char str[5]="hello";B. char str[]={'h','e','l','l','o','\0'};C.char str[5]={"hi"};D. char str[100]="";7.数组在Java中储存在C中A.栈B.队列C.堆D.链表8.下面程序的运行结果是____main(){int a[][]={{1,2,3},{4,5,6}}; System.out.printf("%d", a[1][1]);}A. 3B.4C.5D. 69.下面程序的运行结果是_C___main(){int x=30;int[] numbers=new int[x];x=60;System.out.println(numbers.length);}A.60B.20C.30D.5010.下面程序的运行结果是__BDF__main(){chars1[]="ABCDEF".toCharArray();inti=0;while(s1[i++]!='\0')System.out.println(s1[i++]);}A. ABCDEFB. BDFC. ABCDED. BCDE11.下面不是创建数组的正确语句CA.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.用方法arraycopyC. 用"="进行复制D.用clone方法13.数组a的第三个元素表示为DA.a(3)B.a[3]C.a(2)D.a[2]14.当访问无效的数组下标时,会发生BA. 中止程序B.抛出异常C. 系统崩溃D.直接跳过15.使用arraycopy()方法将数组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,1,b,1,a.length)16.关于数组默认值,错误的是BA. char--'"u0000'B. Boolean--trueC. float--0.0fD. int-- 017.关于数组作为方法的参数时,向方法传递的是 AA. 数组的引用B.数组的栈地址C. 数组自身D.数组的元素18.关于数组复制,下列说法错误的是ACA."="可以实现数组复制B. 运用循环语句进行数组复制必须两个数组长度相同C. arraycopy()方法没有给目标数组分配内存空间D.数组复制是数组引用的传递19.下列语句会造成数组new int[10]越界是DA.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.tomcatD. 子类不能使用父类的构造方法21.main方法是java Application 程序执行的入口点。
关于main方法放入方法以下合法的是( )A. public static void main();B. public static void main(St ring[]args)C. public static int main(String[] arg)D. publicvoid main(String arg[])22.执行完代码"int[]x=new int[25];"后以下(A)说明正确的A.x[24]为0B. x[24]未定义C. x[25]为0D.x[0]为空23.关于数组排序方法,错误的是CA.选择排序B.插入排序C. 二分排序D.用arrays.sort( )排序24.关于char类型的数组,说法正确的是DA. 其数组的默认值是'A'B.可以仅通过数组名来访问数组C. 数组不能转换为字符串D.可以存储整型数值25.对于数组a[10],下列表示错误的是BA.a[0]B.a(0)C. a[9]D.a[1]26.下列数组声明,下列表示错误的是A. int[] aB. int a[]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.下面这条语句正确吗?( )int t[3][2] = {{1,2},{3,4},{5,6}};16.数组声明后其大小固定。
( )17.设有整型数组的定义:int A.[]=new int[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)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("数组的初始状态为:");6)for (int i=0; i < a.length; i++)7)System.out.print(" " + a[i]);8)System.out.println();9)for (int i=0; i < a.length/2; 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 (int i=0; i < a.length; i++)16)System.out.print(" " + a[i]);17)}18)}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.parseInt(numberString);6) String[] names = newString[numberOfStudents];7) double[] scores = newdouble[numberOfStudents];8) for (int i = 0; i < scores.length;i++) {9) names[i] =JOptionPane.showInputDialog("Enter a student name");10) scores[i] = Double.parseDouble(11)JOptionPane.showInputDialog("Enter a student score"));12) }13) for (int i = scores.length - 1;i >= 1; i--) {14) double currentMax = scores[0];15) int currentMaxIndex = 0;16) for (int j = 1; j <= i; j++) {17) if (currentMax < scores[j]) {18) currentMax = scores[j];19) currentMaxIndex = j;20) }21) }22) if (currentMaxIndex != i) {23) scores[currentMaxIndex] =scores[i];24) scores[i] = currentMax;25) String temp =names[currentMaxIndex];26) names[currentMaxIndex] =names[i];27) names[i] = temp;28) }29) }30) for (int i = scores.length - 1;i >= 0; i--) {31) System.out.println(names[i] +"\t" + scores[i]);32) }33) }34)}3.编写一个程序,使它能够读入10个整数,并且存储其中互不相同的数,最后将这10个数输出。