文档库 最新最全的文档下载
当前位置:文档库 › Java数组练习题(带答案)

Java数组练习题(带答案)

Java数组练习题(带答案)
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. 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. 24

B. 25

C. 18

D. 17

6.下列初始化字符数组的语句中,正确的是__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. 3

B. 4

C. 5

D. 6

9.下面程序的运行结果是_C___

main() {

int x=30;

int[] numbers=new int[x];

x=60;

System.out.println(numbers.length);

}

A. 60

B. 20

C. 30

D. 50

10.下面程序的运行结果是__BDF__

main() {

char s1[]="ABCDEF".toCharArray();

int i=0;

while(s1[i++]!='\0')

System.out.println(s1[i++]);

}

A. ABCDEF

B. BDF

C. ABCDE

D. 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--true

C. float--0.0f

D. int-- 0

17.关于数组作为方法的参数时,向方法传递的是A

A. 数组的引用

B. 数组的栈地址

C. 数组自身

D. 数组的元素

18.关于数组复制,下列说法错误的是AC

A. "="可以实现数组复制

B. 运用循环语句进行数组复制必须两个数组长度相同

C. arraycopy()方法没有给目标数组分配内存空间

D. 数组复制是数组引用的传递

19.下列语句会造成数组new int[10]越界是D

A. 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.java

B.javac

C.jvm

D.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[] a

B. int a[]

C. int[][] a

D. 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)

10)for (int i=0; i < a.length/2; i++) {

11)t = a[i];

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

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

14)}

15)

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

17)for (int i=0; i < a.length; i++)

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

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.parseInt(numberString);

6)

7)String[] names = new String[numberOfStudents];

8)double[] scores = new double[numberOfStudents];

9)

10)for (int i = 0; i < scores.length; i++) {

11)names[i] = JOptionPane.showInputDialog("Enter a student name");

12)scores[i] = Double.parseDouble(

13)JOptionPane.showInputDialog("Enter a student score"));

14)}

15)

16)for (int i = scores.length - 1; i >= 1; i--) {

17)double currentMax = scores[0];

18)int currentMaxIndex = 0;

19)

20)for (int j = 1; j <= i; j++) {

21)if (currentMax < scores[j]) {

22)currentMax = scores[j];

23)currentMaxIndex = j;

24)}

25)}

26)

27)if (currentMaxIndex != i) {

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

29)scores[i] = currentMax;

30)String temp = names[currentMaxIndex];

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

32)names[i] = temp;

33)}

34)}

35)

36)for (int i = scores.length - 1; i >= 0; i--) {

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

38)}

39)}

40)}

3.编写一个程序,使它能够读入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 int[10];

8)int i = 0;

9)

10)do {

11)String numberString = JOptionPane

12).showInputDialog("Enter a number: ");

13)

14)int number = Integer.parseInt(numberString);

15)

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

17)arrayInt[i] = 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.parseInt(numberString);

27)} while (!isNotHave(arrayInt, number));

28)

29)arrayInt[i] = 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 arrayInt",

https://www.wendangku.net/doc/404500171.html,RMATION_MESSAGE);

42)}

43)

44)public static boolean isNotHave(int[] arrayInt, int n) {

45)for (int i = 0; i < j; i++) {

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

47)return 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

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

9)System.out.println();

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) : ((low + high) / 2);

23)if (key < list[mid])

24)high = mid - 1;

25)else if (key == list[mid])

26)return mid;

27)else

28)low = mid - 1;

29)}

30)return -low - 1;

31)}

32)}

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

多少个分数低于平均分。输入一个负数标志输入结束,假设最高分为100。

1)import javax.swing.JOptionPane;

2)

3)public class Test {

4)public static void main(String[] args) {

5)double[] scores = new double[100];

6)double sum = 0;

7)int count = 0;

8)

9)do {

10)String scoreString =

11)JOptionPane.showInputDialog(null, "Enter a new score");

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

13)sum += scores[count];

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

15)

16)double average = (sum - scores[count]) / (count - 1);

17)

18)int numOfAbove = 0;

19)int numOfBelow = 0;

20)for (int i = 0; i < count - 1; i++)

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

22)numOfAbove++;

23)else

24)numOfBelow++;

25)

26)System.out.println("Average is " + average);

27)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[] numbers = new int[100];

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

5)

6)int k;

7)for (int i = 0; i < 100; i++)

8){

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

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

11)}

12)

13)System.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(numbers[i-1] + " ");

18)else

19)System.out.println(numbers[i-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(counts[i-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.out.print("输入数组元素:");

10)int[] array = new int[n];

11)for (int i = 0; i < array.length; i++)

12){

13)array[i] = 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;

23)for(int i = 0; i < numbers.length; i++)

24){

25)sum += numbers[i];

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(numbers[i] - 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, 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 = list[0];

10)int minIndex = 0;

11)

12)for (int i = 1; i < list.length; i++)

13)if (min > list[i]) {

14)min = list[i];

15)minIndex = i;

16)}

17)

18)return minIndex;

19)}

数组练习题及答案

第五章数组练习题及答案 一、选择题 1、判断字符串a和b是否相等,应当使用() A、if(a==b) B、if(a=b) C、if(strcpy(a,b)) D、if(strcmp(a,b)) 2、以下正确的定义语句是() A、int a[1][4]={1,2,3,4,5}; B、float x[3][]={{1},{2},{3}}; C、long b[2][3]={{1},{1,2},{1,2,3}}; D、double y[][3]={0}; 3、以下各组选项中,均能正确定义二维实型数组a的选项是() A、float a[3][4]; float a[ ][4]; float a[3][ ]={{1},{0}}; B、float a(3,4); float a[3][4]; float a[ ][ ]={{0},{0}}; C、float a[3][4]; static float a[ ][4]={{0},{0}}; auto float a[ ][4]={{0},{0},{0}}; D、float a[3][4]; float a[3][ ]; float a[ ][4]; 4、下面程序的运行结果是() 1—5 DDCBA 6—10 BDABB 11—15 CCCBC 16—20 DDCBB 21—25 BBAAA 26—30 DBDDB #include "stdio.h" main() { 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*A D、SW 5、下面程序段是输出两个字符串中对应相等的字符。横线处应填入() char x[]="programming"; char y[]="Fortran"; int i=0;

C语言练习题集(带答案解析)

精品文档 1. ( A )是构成C 语言程序的基本单位。 A 、函数 B 、过程 C 、子程序 D 、子例程 2. C 语言程序从 ____ C ________ 开始执行。 A ) 程序中第一条可执行语句 B )程序中第一个函数 C )程序中的main 函数 D )包含文件中的第一个函数 3、以下说法中正确的是( C )。 A 、 C 语言程序总是从第一个定义的函数开始执行 B 、 在 C 语言程序中,要调用的函数必须在 main ()函数中定义 C 、 C 语言程序总是从 main ()函数开始执行 D 、 C 语言程序中的 main ()函数必须放在程序的开始部分 4. 下列关于C 语言 的说法错误的是( B ) 。 A ) C 程序的工作过程是编辑、编译、连接、运行 B ) C 语言不区分大小写。 C ) C 程序的三种基本结构是顺序、选择、循环 D ) C 程序从main 函数开始执行 5. 下列正确的标识符是(C )。 A. -a1 B.a[i] C.a2_i 6. 下列C 语言用户标识符中合法的是( B )。 A) 3ax B)x C)case D)-e2 E)u nion 7. 下列四组选项中,正确的 C 语言标识符是 (C )。 A ) %x B ) a+b C ) a123 D ) 8、 下列四组字符串中都可以用作 A 、print _3d db8 aBc B C 、str_1 Cpp pow while D 9. C 语言中的简单数据类型包括( A 、整型、实型、逻辑型 C 、整型、字符型、逻辑型 C 语言程序中的标识符的是( A ) 、I\am one_half start$it 3pai 、Pxq My->book line# His.age D )。 B 、整型、实型、逻辑型、字符型 D 、整型、实型、字符型 10. 在C 语言程序中,表达式 5%2的结果是—C_ A)2.5 B)2 C)1 D)3 11. 如果int a=3,b=4 ;则条件表达式"a

最新数据结构练习题 第三章 栈、队列和数组 习题及答案

1 第三章栈、队列和数组 2 一、名词解释: 3 1.栈、栈顶、栈底、栈顶元素、空栈 2.顺序栈 3.链栈 4.递归 5.队列、队尾、4 队头6.顺序队7.循环队8.队满9.链队10.随机存储结构11.特殊矩阵12.稀疏矩5 阵13.对称方阵14.上(下)三角矩阵 6 二、填空题: 7 1.栈修改的原则是_________或称________,因此,栈又称为8 ________线性表。在栈顶进行插入运算,被称为________或________,在 栈顶进行删除运算,被称为________或________。 9 10 2.栈的基本运算至少应包括________、________、________、11 ________、________五种。 12 3.对于顺序栈,若栈顶下标值top=0,此时,如果作退栈运算,则产13 生“________”。 14 4.对于顺序栈而言,在栈满状态下,如果此时在作进栈运算,则会 发生“________”。 15 16 5.一般地,栈和线性表类似有两种实现方法,即________实现和17 ________实现。 6.top=0表示________,此时作退栈运算,则产生“________”; 18 19 top=sqstack_maxsize-1表示________,此时作进栈运算,则产生20 “________”。 7.以下运算实现在顺序栈上的初始化,请在________处用适当的句 21 22 子予以填充。

23 int InitStack(SqStackTp *sq) 24 { ________; 25 return(1);} 26 8.以下运算实现在顺序栈上的进栈,请在________处用适当的语句27 予以填充。 28 Int Push(SqStackTp *sq,DataType x) 29 { if(sp->top==sqstack_maxsize-1}{error(“栈满”);return(0);} 30 else{________________: 31 ________________=x; 32 return(1);} 33 34 } 35 9.以下运算实现在顺序栈上的退栈,请在________________用适当36 句子予以填充。 37 Int Pop(SqStackTp *sq,DataType *x) 38 {if(sp->top==0){error(“下溢”);return(0);} 39 else{*x=________________; 40 ________________; 41 return(1);}

C语言数组练习及答案

C语言数组练习及答案集团文件版本号:(M928-T898-M248-WU2669-I2896-

第四部分数组 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 10 scanf("%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. 若有定义:int bb[ 8];。则以下表达式中不能代表数组元bb[1]的地址的是(c )。 A. &bb[0]+1 B. &bb[1] C. &bb[0]++ D. bb+1 6. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是(d )。 A. 3 B. 6 C. 10 D. 20 7. 若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g;

C语言复习题及答案 第七章 数组

第七章数组 (8学时) 学习目的与要求: 1 、重点掌握一维数组的定义和引用; 2 、基本掌握二维数组的定义和引用; 3 、重点掌握字符型数组的定义与引用; 4 、能正确使用字符串处理函数; 5 、学会使用数组解决实际问题。 重点: 1 、一维数组的定义与引用; 2 、二维数组的定义与引用; 3 、字符数组的定义与引用; 第1讲 知识归纳: 1、一维数组的定义:类型说明符数组名[ 常量表达式] ; (1) (1)数组名后必须用方括弧[ ] ,用其他括弧均错误; (2) 方括弧中的常量表达式表示数组的元素个数; (3) 方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量; 2、一维数组的引用: 数组名[ 下标] //下标从0开始,可以是整型常量或整型表达式; (1) 注意:数组元素引用时,不要超出数组范围; 如int a[10] ; //可以引用的数组元素为a[0]……a[9] , a[10] 不是本数组元素; 3、一维数组的初始化: (1) (1)可以在定义数组后,立刻赋值;如int a [3] = { 1,3, 5} ; 但下面这样是错误的: int a[3] ; a = { 1,3, 5} ; (2) (2)可以给数组的部分元素赋值,不赋值的元素,默认值为int 0, char, …?, float 0.0 ; 如int a [3]= {1,3 } ; //a[0] =1 ; a[1]= 3 ; a[2]= 0 ; (3) 在对数组全部元素赋初值时,可以不指定元素个数; (4) 可以在循环控制下,给数组各元素赋值; 如:int a[10] ; for ( i=0 ; i <10 ;i ++ ) a [ i ] = i ; 基础训练(A) 一、选择题 1、在c语言中,引用数组元素时,其数组下标的数据类型允许是()。 A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 2、要说明一个有10个int元素的数组,应当选择语句()。 A) int a[10]; B) int a(10); C) int a[9] D) int a[11] 3、以下对数组的正确定义是:()。 A) float b[5.0] B) float b[5] C) float b(5) D) float b[] 4、对以下说明语句的正确理解是()。 int a[10]={6,7,8,9,10}; A)将5个初值依次赋给a[1]至a[5]

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. 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. 24 B. 25 C. 18 D. 17 6.下列初始化字符数组的语句中,正确的是__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. 3 B. 4 C. 5 D. 6 9.下面程序的运行结果是_C___ main() {

数据结构练习题 第三章 栈、队列和数组 习题及答案

第三章栈、队列和数组 一、名词解释: 1.栈、栈顶、栈底、栈顶元素、空栈 2.顺序栈 3.链栈 4.递归 5.队列、队尾、队头 6.顺序队 7.循环队 8.队满 9.链队10.随机存储结构11.特殊矩阵12.稀疏矩阵13.对称方阵14.上(下)三角矩阵 二、填空题: 1.栈修改的原则是_________或称________,因此,栈又称为________线性表。在栈顶 进行插入运算,被称为________或________,在栈顶进行删除运算,被称为________或________。 2.栈的基本运算至少应包括________、________、________、________、________五 种。 3.对于顺序栈,若栈顶下标值top=0,此时,如果作退栈运算,则产生“________”。 4.对于顺序栈而言,在栈满状态下,如果此时在作进栈运算,则会发生“________”。 5.一般地,栈和线性表类似有两种实现方法,即________实现和________实现。 6.top=0表示________,此时作退栈运算,则产生“________”;top=sqstack_maxsize-1 表示________,此时作进栈运算,则产生“________”。 7.以下运算实现在顺序栈上的初始化,请在________处用适当的句子予以填充。 int InitStack(SqStackTp *sq) { ________; return(1);} 8.以下运算实现在顺序栈上的进栈,请在________处用适当的语句予以填充。 Int Push(SqStackTp *sq,DataType x) { if(sp->top==sqstack_maxsize-1}{error(“栈满”);return(0);} else{________________: ________________=x; return(1);} } 9.以下运算实现在顺序栈上的退栈,请在________________用适当句子予以填充。 Int Pop(SqStackTp *sq,DataType *x) {if(sp->top==0){error(“下溢”);return(0);} else{*x=________________; ________________; return(1);} } 10. 以下运算实现在顺序栈上判栈空,请在________________处用适当句子予以填充。 Int EmptyStack(SqStackTp *sq) {if(________________) return(1); else return(0); } 11.以下运算实现在顺序栈上取栈顶元素,请在________________处用适当句子予以填充。 Int GetTop(SqStackTp *sq,DataType *x) {if(________________) return(0);

数据结构练习题 第三章 栈、队列和数组 习题及答案备课讲稿

数据结构练习题第三章栈、队列和数组 习题及答案

第三章栈、队列和数组 一、名词解释: 1.栈、栈顶、栈底、栈顶元素、空栈 2.顺序栈 3.链栈 4.递归 5.队列、队尾、队头 6.顺序队 7.循环队 8.队满 9.链队10.随机存储结构11.特殊矩阵12.稀疏矩阵13.对称方阵14.上(下)三角矩阵 二、填空题: 1.栈修改的原则是_________或称________,因此,栈又称为________线性 表。在栈顶进行插入运算,被称为________或________,在栈顶进行删 除运算,被称为________或________。 2.栈的基本运算至少应包括________、________、________、________、 ________五种。 3.对于顺序栈,若栈顶下标值top=0,此时,如果作退栈运算,则产生 “________”。 4.对于顺序栈而言,在栈满状态下,如果此时在作进栈运算,则会发生 “________”。 5.一般地,栈和线性表类似有两种实现方法,即________实现和________ 实现。 6.top=0表示________,此时作退栈运算,则产生“________”; top=sqstack_maxsize-1表示________,此时作进栈运算,则产生 “________”。 7.以下运算实现在顺序栈上的初始化,请在________处用适当的句子予以 填充。

int InitStack(SqStackTp *sq) { ________; return(1);} 8.以下运算实现在顺序栈上的进栈,请在________处用适当的语句予以填 充。 Int Push(SqStackTp *sq,DataType x) { if(sp->top==sqstack_maxsize-1}{error(“栈满”);return(0);} else{________________: ________________=x; return(1);} } 9.以下运算实现在顺序栈上的退栈,请在________________用适当句子予 以填充。 Int Pop(SqStackTp *sq,DataType *x) {if(sp->top==0){error(“下溢”);return(0);} else{*x=________________; ________________; return(1);} } 10. 以下运算实现在顺序栈上判栈空,请在________________处用适当句子予以填充。 Int EmptyStack(SqStackTp *sq) {if(________________) return(1); else return(0); } 11.以下运算实现在顺序栈上取栈顶元素,请在________________处用适当句子予以填充。 Int GetTop(SqStackTp *sq,DataType *x) {if(________________) return(0); else{*x=________________; return(1);} }

练习题-第六章 数组(有答案)

一、填空题 1.在C语言中,二维数组元素在内存中的存放顺序是按行存放。 2.定义了二维数组:int array[4][5],该数组所占的内存空间为___40___字节。 3.假设有整型数组array[100][100],其中第66行,第66列元素array[66][66]在数 组中排列的位置(位置从1开始算起)为6566 。 4.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[2][1]得到的初值是 ____6____。 5.下面的程序段的运行结果是_________。 char x[ ]=“the teacher”; i =0; while(x[++i] != ’\0’) if(x[i-1] = = ‘t’) printf(“%c”,x[i]); 二、单项选择题 1.下面程序( B )(每行程序前面的数字表示行号)。 1 main( ) 2 { float a[10]={0.0}; 3 int i; 4 for(i=0;i<3;i++) scanf(“%d”,&a[i]); 5 for(i=1;i<10;i++) a[0]=a[0]+a[i]; 6 printf(“%f\n”,a[0]); 7 } A)没有错误B)第2行有错误 C)第4行有错误D)第6行有错误 2.下面程序中有错误的行是(D)(每行程序前面的数字表示行号)。 1main( ) 2{ 3int a[3]={1}; 4int i; 5scanf(“%d”,&a); 6for(i=1;i<3;i++) a[0]=a[0]+a[i]; 7printf(“a[0]=%d\n”,a[0]); } A. 3 B. 6 C. 7 D. 5 3.以下不能对二维数组a进行正确初始化的语句是( C )。 A. int a[2][3] = {0}; B. int a[ ][3] = {{1,2},{0}}; C. int a[2][3] = {{1,2},{3,4},{5,6}}; D. int a[ ][3] = {1,2,3,4,5,6};

数组练习题

数组练习题 1. 在C语言中,引用数组元素时,其数组下标的数据类型允许的是(D ) A.整型常量 B.整型表达式 C.整型常量或整型表达式 D.任何类型的表达式 2. 以下对一维整型数组a的正确说法是( A) A . int a[10]; D. int a(10); C. int n;scanf(“%d”,&n);int a[n]; B. int n=10,a[n]; 3. 若有说明: int a[10];则对a数组元素的正确引用是( D) A .a[10] B. a[3.5] C. a(5) D. a[10-10] 4. 在C语言,一维数的定义方式为: 类型说明符数组名(C ); A .[常量表达式] B.[整型表达式] C.[整型常量]或[整型表达式] D.[整型常量] 5.以下能对一维数组a进行正确初始化的语句是(C ) A .int a[10]=(0,0,0,0,0); B.int a[10]={}; C.int a[ ]={0}; D.int a[10]={10*1} 6. 以下对二维数组a正确说明是( C) A. int a[3][ ]; B. float a(3,4); C. double a[1][4]; D. float a(3)(4); 7.若有说明: int a[3][4];则对a数组元素的正确引用是( C) A. a[2][4] B. a[1,3] C. a[1+1][0] D. a(2)(1) 8.若有说明:int a[3][4];则对a数组元素的非法引用是( D) A. a[0][2*1] B. a[1][3] C. a[4-2][0] D. a[0][4] 9. 以下能对二维数组a正确初始化的语句是(B ) A. int a[2][ ]={{1,0,1},{5,2,3}}; B. int a[ ][3]={{1,2,3},{4,5,6}}; C. int a[2][4]={{1,2,3},{4,5},{6}}; D. int a[ ][3]={{1,0,1},{ },{1,1}};

PHP数组练习及答案

1.一维数组是最简单的数组,其定义形式是? $arr = array()或者$arr = []; 2.怎么判断一个变量是否为空,怎么判断一个变量是否存在? empty($str); isset($str); 3.如何获取数组$arr = array(array(‘a’,’b’,’c’));中的值’c’ ? $arr[0][2]; 4.如何定义一个三维数组? $arr = array(array(array()));或者$arr = [[[]]]; 5.怎么才能从数组$multi_array中找出值cat? $multi_array = array( "red","green", 42 => "blue", "yellow" => array("apple",9 => "pear","banana", "orange" => array("dog","cat","iguana")) ); $multi_array*‘yellow’+*‘orange’+*1+; 6.下面数组$arr中,打印$arr[1][1]输出的值是什么? $arr = array( array('jack','boy',23,'18nan'=>array(18000,180,18)), array('rose','girl',18) ); 答案:girl

7.遍历输出数组$arr = array(1=>’ff’,‘aa,’dd,’cc’,’eee’); foreach($arr as $value){ echo $value; } 8.求数组$arr = array(‘qwer,’jkls’,’cc’,’eee’)中元素的个数。答案:count($arr); 9.运行下面代码输出的内容是? $arr=array(5=>1,12=>2); $arr[]=3; $arr["x"]=4; print_r($arr); echo "
"; unset($arr[5]); print_r($arr); echo "
"; unset($arr); print_r($arr); Array( [5] => 1 [12] => 2 [13] => 3 [x] => 4 ) _____________________________________________ Array([12] => 2 [13] => 3 [x] => 4) ______________________________________________ 10.如何取出字符串$str = “abcdefg”;中的值‘f’? 答案:$str[5];

实验5数组 习题及答案

实验5 数组 班级:学号: 姓名:日期: 一、实验目的 (1)掌握一维数组和二维数组的定义、赋值和输入输出方法; (2)掌握字符数组和字符串函数的使用; (3)掌握与数组有关的算法(特别是排序算法)。 二、实验内容 1.阅读下面程序,写出程序运行结果,并且上机进行验证。 (1) #include "stdio.h" void main() { int i,n[4]={0,0,0,0}; for(i=1;i<4;i++) { if (i==3) break; n[i]=n[i-1]+1; } printf("n[i-1]=%d n[i]=%d\n",n[i-1],n[i]); } (2)#include "stdio.h" void main() { char ch[]={'0','1','2','3','4','5','6','7','8','9'}; int i=0,m=2,r,x=42; char b[80]; while(x) { r=x%m; x/=m; b[i++]=ch[r]; } for(--i;i>=0;i--) printf("%c",b[i]);

printf("\n"); } (3)#include "stdio.h" void main() { int a[][3]={9,7,5,3,1,2,4,6,8}; int i,j,s1=0,s2=0; for(i=0;i<3;i++) for(j=0;j<3;j++) { if(i==j) s1=s1+a[i][j]; if(i+j==2) s2=s2+a[i][j]; } printf("s1=%d s2=%d",s1,s2); } (4)#include "stdio.h" void main() { int r[5]={1,2,3,4,5}; int i,j,a[5][5]; for(i=0;i<=4;i++) { for(j=i;j<=4;j++) a[i][j]=r[j-i]; for(j=0;j

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. 24 B. 25 C. 18 D. 17 10.下列初始化字符数组的语句中,正确的是__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. 3 B. 4 C. 5 D. 6 16.下面程序的运行结果是_C___

数组练习题及答案

精品文档数组练习题及答案第五章 一、选择题)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 DDCBB 21—25 BBAAA 26—30 DBDDB #include stdio.h main() { 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*A D、SW 5、下面程序段是输出两个字符串中对应相等的字符。横线处应填入() 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;

黄文胜版数组练习册习题及讲解

构造数据对象——数组 (黄文胜主编) 一、填空题 1、数组是一级有序的、连续存储的的变量的集合。 2.一维数组是指个数为一的数组。 3.在C语言中,数组元素的下标从开始。 4.定义一个名为pers,能存放10个整型数据的一维数组。 5.有数组定义:double gp [8];该数组长度为,最后一个元素的下标为。 6.若有定义为float array[10]={3.5,4.7,6.8};则数组中数组元素的个数为。array[8]的值为。 7. 若有定义为int fly[]={1,2,3,4,5,6,7};则该数组的长度为,该数组在内存中所占的存储空间为字节。 8. 利用格式转换说明符%s输入字符串时,系统会自动在字符串的末尾加上一个。 9.除了利用格式转换说明符%s来完成字符串的输入及输出外,还可以利用函数来完成字符串的输入,函数来完成字符串的输出。 10.在使用循环处理数组时,循环控制变量一般作为数组的。 二、判断题 1.声明数组时可以用变量、常量、表达式来声明长度。() 2.同一个数组可以存储不同类型的数据。() 3.数组名表示该数组的首地址。() 4.数组是一组同名变量的集合,通过下标访问其中的变量元素。() 5.数组的元素被称为下标变量,格式为数组名[下标]。() 6.定义数组时,初始化列表的数据个数不能超过数组长度。() 7.下标变量有同基本变量相同的操作特性。() 8.字符数组就是字符串。() 9.gets函数可用于输入中间有空格的字符串。() 10.puts函数可以输出整个字符数组的值。() 11.可以用一个字符串常量去初始化一个字符数组。() 12.int ax[10]={ };给数组的每个元素初始化为0值。() 13.char sa[5]=”abcde”;可以正确初始化。() 14.char sa[ ]=”abcde”;有语法错误。() 15.int a[2]={1,2,3},b[3];则b=a;执行后,b具有与a相同的元素值。() 三、选择题 1.以下数组定义正确的是() A.int aa[-1]; B.char 2cc[36]; C.char bb[0xFF]; D.float ff(5); 2.以下数组初始化犯错误的是() A.int wl[5]={1,2,3,4,5}; B.char w2[]={‘a’,’b’,’c’}; C.float w3[10]={1,2,3,4,5}; D.flaot w4[3]={1,2,3,4,5}; 3.若有定义int a[10];则以下数组输入输出语句正确的是()。

字符数组与指针练习题参考答案

第七章字符数组与字符串 【题】下面是对s的初始化,其中不正确的是。 A)char s[5]={“abc”};B)char s[5]={‘a’,‘b’,‘c’}; C)char s[5]=“”;D)char s[5]=“abcdef”; 【题】下面程序段的运行结果是。 char c[5]={‘a’,‘b’,‘\0’,‘c’,‘\0’}; printf(“%s”,c); A)‘a’‘b’ B)ab C)ab c 【题】对两个数组a和b进行如下初始化 char a[]=“ABCDEF”; char b[]={‘A’, ‘B’,‘C’,‘D’,‘E’,‘F’}; 则以下叙述正确的是。 A)a与b数组完全相同B)a与b长度相同 C)a和b中都存放字符串D)a数组比b数组长度长 提示:‘\0’是字符串结束的标志 【题】有两个字符数组a、b,则以下正确的输入格式是。 A)gets(a,b); B)scanf(“%s %s”,a,b); C)scanf(“%s %s”,&a,&b);D)gets(“a”),get(“b”); 【题】有字符数组a[80]和b[80],则正确的输出形式是。 A)puts(a,b); B)printf(“%s %s”,a[],b[]); C)putchar(a,b); D)puts(a),puts(b); 【题】下面程序段的运行结果是。 char a[7]=“abcdef”; char b[4]=“ABC”; strcpy(a,b); printf(“%c”,a[5]); A)空格B)\0 C)e D)f 提示:复制后a[0]=‘A’,a[1]=‘B’,a[2]=‘C’,a[3]=‘\0’, a[4]=‘e’,a[5]=‘f’, a[6]=‘\0’,

Java数组练习题(带答案)教学提纲

J a v a 数组练习题 ( 带 答案)

一填空题 1) 数组的元素通过下标来访问,数组Array 的长度为 Array.length 。 2) 数组复制时,"="将一个数组的 引用 传递给另一个数组。 3) JVM 将数组存储在 栈(堆或栈)中。 4) 数组的二分查找法运用的前提条件是数组已经排序 。 5) Java 中数组的下标的数据类型是整型。 6) 数组最小的下标是 0 0 7) arraycopy ()的最后一个参数指明复制元素的个数 。 8) 向方法传递数组参数时,传递的是数组的 引用° 9) 数组初始化包括 数组的申明,创建和初始化 。 10) 数组下标访问超出索引范围时抛出 数组越界 异常 11) 浮点型数组的默认值是 O.Of ° 12) 数组创建后其大小 不能 改变。 二选择题 1. 下面错误的初始化语句是_ABD__ A. char str[]="hello"; B. char str[100]="hello"; C. char str[]={'h','e',T,T,'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. 24 B. 25 C. 18 10. 下列初始化字符数组的语句中,正确的是 __B__ 11. A. char str[5]="hello"; B. char str[]={'h','e',T,T,'o','\0'}; 12. C. char str[5]={"hi"}; D. char str[100]=""; 13. 数组在Java 中储存在丄中 14. A.栈 B.队列 C.堆 D.链表 15. 下面程序的运行结果是 ____ mai n() { int a[][]={{1,2,3},{4,5,6}}; System.out.pri ntf("%d", a[1][1]); } a[3][4]前的数组元素个数为 D. 17

c语言数组练习题及答案

/* 4.16 5*5矩阵中每行的绝对值最大值,与同行对角线交换*/ #include "stdio.h" #include "math.h" void main() { int a[5][5]={{1,2,3,4,-5},{3,5,-2,4,2},{4,1,2,3,-2}, {1,3,-2,4,6},{2,2,0,7,4}} ; int i,k,max,sub,temp; /* i 循环变量,控制行,k 循环变量,控制列,max 当前最大绝对值,sub 当前最大绝对值元素的下标 temp 临时用于交换的变量*/ printf("交换之前,输出\n"); /*交换之前,输出*/ for(i=0;i<=4;i++) { for(k=0;k<=4;k++) printf("%4d",a[i][k]); printf("\n"); } /*交换*/ for(i=0;i<=4;i++) { /*假设第一个元素最大*/

max=fabs(a[i][0]); sub=0; /*寻找绝对值最大的元素记下下标*/ for(k=1;k<=4;k++) { if(fabs(a[i][k])>max) { max=fabs(a[i][k]); sub=k; } } /*交换*/ temp=a[i][i]; a[i][i]=a[i][sub]; a[i][sub]=temp; } /*交换之后,输出*/ printf("交换之后,输出\n"); for(i=0;i<=4;i++) { for(k=0;k<=4;k++) printf("%4d",a[i][k]); printf("\n"); } }

相关文档
相关文档 最新文档