搜档网
当前位置:搜档网 › Java二维数组的几种定义法

Java二维数组的几种定义法

Java二维数组的几种定义法
Java二维数组的几种定义法

java定义二维数组的几种写法

//定义二维数组写法1

class numthree

{

public static void main(String[] args)

{

float[][] numthree; //定义一个float类型的2维数组

numthree=new float[5][5]; //为它分配5行5列的空间大小

numthree[0][0]=1.1f; //通过下标索引去访问1行1列=1.1 numthree[1][0]=1.2f; // 2行1列=1.2 numthree[2][0]=1.3f; // 3行1列=1.3 numthree[3][0]=1.4f; // 4行1列=1.4 numthree[4][0]=1.5f; // 5行1列=1.5 System.out.println(numthree[0][0]); //打印换行输出喽

System.out.println(numthree[1][0]);

System.out.println(numthree[2][0]);

System.out.println(numthree[3][0]);

System.out.println(numthree[4][0]);

}

}

//定义二维数组写法2 定义的同时分配空间大小

class numfour

{

public static void main(String[] args)

{

short[][] numfour=new short[5][8]; //定义一个short类型的数组同时为它分配5行8列的空间大小

numfour[0][7]=10;

numfour[1][6]=20;

numfour[2][5]=30;

numfour[3][4]=40;

numfour[4][3]=50;

System.out.println(numfour[0][7]);

System.out.println(numfour[1][6]);

System.out.println(numfour[2][5]);

System.out.println(numfour[3][4]);

System.out.println(numfour[4][3]);

}

}

//定义二维数组写法3 不规则数组

class numfive

{

public static void main(String[] args)

{

long[][] numfive=new long[5][]; //定义一个long类型的不规则数组numfive[0]=new long[5]; //为第1行分配5列

numfive[1]=new long[6]; //为第2行分配6列

numfive[2]=new long[7]; //为第3行分配7列

numfive[3]=new long[8]; //为第4行分配8列

numfive[4]=new long[9]; //为第5行分配9列

numfive[0][4]=10000000000L; //1行5列=10000000000

numfive[1][5]=20000000000L; //2行6列=20000000000

numfive[2][6]=30000000000L; //3行7列=30000000000

numfive[3][7]=40000000000L; //4行8列=40000000000

numfive[4][8]=50000000000L; //5行9列=50000000000

System.out.println(numfive[0][4]); //打印换行输出喽

System.out.println(numfive[1][5]);

System.out.println(numfive[2][6]);

System.out.println(numfive[3][7]);

System.out.println(numfive[4][8]);

System.out.println(numfive[4][7]); //打印输出一个没有定义数组元素的数组java 会自动将他初始化值为0

}

}

//定义2维数组写法4 定义的同时赋初始值

class numsix

{

public static void main(String[] args)

{

double[][] numsix={{1.111D,2.222D,3.333D},{4.444D,5.555D,6.666D}};//定义double型的数组分配3行3列的空间同时赋值

System.out.println(numsix[0][0]); //打印换行输出1行1列=1.111

System.out.println(numsix[1][1]); //打印换行输出2行2列=5.555

}

}

//定义2维数组写法5 定义不规则的2维数组同时赋初始值

class numseven

{

public static void main(String[] args)

{

int[][] numseven=new int[][]{{10,20,30},{40,50},{60}}; //没什么好说的如果你在看不懂那就别学了!

System.out.println(numseven[0][2]);

System.out.println(numseven[1][1]);

System.out.println(numseven[0][0]);

}

}

//定义2维数组写法6 定义不规则的2维数组同时赋初始值;

class numeight

{

public static void main(String[] args)

{

int[][]

numeight={{100,200,300,400},{500,600,700,800},{900,1000,1100,1200,1300}}; System.out.println(numeight[0][2]);

System.out.println(numeight[1][2]);

System.out.println(numeight[2][1]);

}

}

二维数组定义以及动态分配空间(精)

二维数组定义以及动态分配空间(转) 下面三种定义形式怎么理解?怎么动态分配空间? (1)、int **Ptr; (2)、int *Ptr[ 5 ]; 我更喜欢写成int* Prt[5]; (3)、int ( *Ptr )[ 5 ]; 此文引自网上,出处不详,但是觉得非常好。略改了一点。 多维数组一向很难,一般都采用一维数组,但是一旦要用到还真是头疼。 闲话少说,这里我就以三个二维数组的比较来展开讨论: (1)、int **Ptr; (2)、int *Ptr[ 5 ]; 我更喜欢写成int* Prt[5]; (3)、int ( *Ptr )[ 5 ]; 以上三例都是整数的二维数组,都可以用形如Ptr[ 1 ][ 1 ] 的 方式访问其内容;但它们的差别却是很大的。下面我从四个方面对它们 进行讨论: 一、内容: 它们本身都是指针,它们的最终内容都是整数。注意我这里说 的是最终内容,而不是中间内容,比如你写Ptr[ 0 ],对于三者来说, 其内容都是一个整数指针,即int *;Ptr[ 1 ][ 1 ] 这样的形式才 是其最终内容。 二、意义: (1)、int **Ptr 表示指向"一群"指向整数的指针的指针。 (2)、int *Ptr[ 5 ] 表示指向5 个指向整数的指针的指针,或者说Ptr有5个指向"一群"整数的指针,Ptr是这5个指针构成的数组的地址 (3)、int ( *Ptr )[ 5 ] 表示指向"一群"指向5 个整数数组的指针的指针。 三、所占空间: (1)、int **Ptr 和(3)、int ( *Ptr )[ 5 ] 一样,在32位平台里,都是4字节,即一个指针。 但(2)、int *Ptr[ 5 ] 不同,它是5 个指针,它占5 * 4 = 20 个字节的内存空间。 四、用法: (1)、int **Ptr 因为是指针的指针,需要两次内存分配才能使用其最终内容。首 先,Ptr = ( int ** )new int *[ 5 ];这样分配好了以后,它和(2)的 意义相同了;然后要分别对 5 个指针进行内存分配,例如: Ptr[ 0 ] = new int[ 20 ]; 它表示为第0 个指针分配20 个整数,分配好以后,Ptr[ 0 ] 为指 向20 个整数的数组。这时可以使用下标用法Ptr[ 0 ][ 0 ] 到 Ptr[ 0 ][ 19 ] 了。 如果没有第一次内存分配,该Ptr 是个"野"指针,是不能使用 的,如果没有第二次内存分配,则Ptr[ 0 ] 等也是个"野"指针,也 是不能用的。当然,用它指向某个已经定义的地址则是允许的,那是另外 的用法(类似于"借鸡生蛋"的做法),这里不作讨论(下同)。 例子:

二维数组的定义和引用

二维数组的定义和引用 1.1二维数组的定义 前面介绍的数组只有一个下标,称为一维数组,其数组元素也称为单下标变量。在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以标识它在数组中的位置,所以也称为多下标变量。本节只介绍二维数组,多维数组可由二维数组类推而得到。 二维数组定义的一般形式是: 类型说明符数组名[常量表达式1][常量表达式2] 其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度。 例如: int a[3][4]; 说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有3×4个,即: a[0][0],a[0][1],a[0][2],a[0][3] a[1][0],a[1][1],a[1][2],a[1][3] a[2][0],a[2][1],a[2][2],a[2][3] 二维数组在概念上是二维的,即是说其下标在两个方向上变化,下标变量在数组中的位置也处于一个平面之中,而不是象一维数组只是一个向量。但是,实际的硬件存储器却是连续编址的,也就是说存储器单元是按一维线性排列的。如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列,即放完一行之后顺次放入第二行。另一种是按列排列,即放完一列之后再顺次放入第二列。在C语言中,二维数组是按行排列的。 即: 先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中有四个元素也是依次存放。由于数组a说明为int类型,该类型占四个字节的内存空间,所以每个元素均占有四个字节)。

1.2二维数组元素的引用 二维数组的元素也称为双下标变量,其表示的形式为:数组名[下标][下标] 其中下标应为整型常量或整型表达式。 例如: a[3][4] 表示a数组三行四列的元素。 下标变量和数组说明在形式中有些相似,但这两者具有完全不同的含义。数组说明的方括号中给出的是某一维的长度,即可取下标的最大值;而数组元素中的下标是该元素在数组中的位置标识。前者只能是常量,后者可以是常量,变量或表达式。【例1】一个学习小组有5个人,每个人有三门课的考试成绩。 再设一个一维数组v[3]存放所求得各分科平均成绩,设变量average 为全组各科总平均成绩。编程如下: void main() { int i,j,s=0,average,v[3],a[5][3]; printf("input score\n"); for(i=0;i<3;i++) { for(j=0;j<5;j++) { scanf("%d",&a[j][i]); s=s+a[j][i];} v[i]=s/5; s=0;

C语言程序设计复习题 (2)

C\C++程序设计复习题 一、选择题 1、一个C语言程序总是从( C )开始执行 A) 书写顺序的第一个函数 B) 书写顺序的第一条执行语句 C) 主函数main() D) 不确定 2、以下能正确定义二维数组的是( C ) A.int a[][3]; B.int a[][3]=2{2*3}; C.int a[][3]={}; D.int a[2][3]={{1},{2},{3,4}}; 3、设int x=3,y=4,z=5,则下列表达式中的值为0的是( D ) A) …x?&&?y?B) x||y+z&&y-z C) x<=y D) !((x

A)5 B) 6 D) 7 D 9 9、若有定义,char *p=”computer”; 则语句printf(“%c”,*(p+2))运行结果是( B ) A) 随机值B) m C)o D) omputer 10、有以下程序( D ) main() { int i=0,x=0; for (;;) { if(i==3||i==5) continue; if (i==6) break; i++; s+=i; }; printf("%d\n",s); } 程序运行后的输出结果是 A.10 B.13 C.21 D.程序进入死循环 11、以下定义语句中正确的是( C ) A.char a='A'b='B'; B.float a=b=10.0; C.int a=10,*b=&a; D.float *a,b=&a; 12、设有int x=11;则表达式(x++*l/3)的值为( B )。 (A)3 (B)4 (C)11 (D)12 13、在说明一个结构体变量时系统分配给它的存储空间是( D ) A)该结构体中第一个成员变量所需存储空间B) 该结构体中最后一个成员变量所需存储空间 C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和

java数组之二维数组

数组的元素也可以是数组,每个数组的一个元素都是由一个一维数组构成,被称为二维数组。同样,多维数组可以看作是数组的数组,即N维数组的每一个元素就是一个N-1维数组。如:三维数组中的每一个元素都是一个二维数组。多维数组的定义即初始化与二维数组的基本类似,因此本节主要讲述二维数组。 1 、二维数组的声明 二维数组声明的一般格式如下: 数据类型数组名[][]; 或者格式如下: 数据类型[][] 数组名; 其中数据类型与一维数组的相同,它既可以是基本数据类型,也可以是复合数据类型,数组名可以是任意合法的变量名。下面是数组声明举例。 char ch[][]; double[][] d; String[][] str; 与一维数组的声明相同,二维数组也不需要规定其中任意一维的长度,下面的声明都是不合法的。 char ch[4][]; double[][5] d; String[6][7] str; 2、二维数组的初始化 二维数组的初始化也分为直接初始化和动态初始化两种方式。直接初始化必须在声明时开始,如下 ··124面的例子所示。 int array[][] = {{1,2},{2,4},{4,8}}; 二维数组的动态初始化又可分为两种方式:一种是直接规定每一维的长度,并分配所需的内存空间,另一种是从高维开始,分别为每一维规定长度并分配内存空间。

直接为每一维分配内存的格式如下: 变量名= new 数据类型[二维长度][一维长度]; 其中二维长度和一维长度都是大于0的整数,如下所示。 int array[][]; array = new int[3][5]; array是一个二维数组,二维长度为3,array[0]、array[1]、array[2]都是一维数组,长度都是5。分别分配内存格式如下: 变量名= new 数据类型[二维长度][]; 变量名[0] = new 数据类型[一维长度0]; 变量名[1] = new 数据类型[一维长度1]; 变量名[2] = new 数据类型[一维长度2]; ... 变量名[二维长度-1] = new 数据类型[一维长度n]; 下面是一个二维数组初始化的实例。 Int array[][]; //声明int类型二维数组array A = new int[3][]; //为二维分配内存空间 A[0] = new int[5]; //为A[0]的一维分配内存空间 A[1] = new int[5]; //为A[1]的一维分配内存空间 A[2] = new int[5]; //为A[2]的一维分配内存空间 3、二维数组的空间模型

JAVA一维数组二维数组运用的例子

题目:定义一个一维数组存储10个学生名字;定义一个二维数组存储这10个学生的6门课(C程序设计、物理、英语、高数、体育、政治)的成绩; 程序应具有下列功能: (1)按名字查询某位同学成绩 (2)查询某个科目不及格的人数,及学生名单 代码如下: import java.util.*; public class Test{ public static void main(String[]args){ Scanner input=new Scanner(System.in); String[]name={"a","b","c","d","e","f","g","h","i","l"};//存储学生的名字 int[][] grade={{50,60,70,80,90,10},{40,90,80,60,40,70},{60,80,70,60,40,90},{50,60,70,80,90,10}, {60,80,70,60,40,90},{60,70,80,90,70,70},{60,80,70,60,40,90},{60,80,70,60,40,90},{70, 80,90,70,70,70},{60,80,70,60,40,90}};//存储学生各科成绩 System.out.println("输入要查询成绩的学生名字:"); String chioce=input.nextLine(); for(int i=0;i<10;i++) { if(name[i].equals(chioce)) {System.out.println("学生:"+name[i]+"的成绩如下:"); System.out.println("C程序设计:"+grade[i][0]+"物理:"+grade[i][1]+"英 语:"+grade[i][2]+"高数:"+grade[i][3]+"体育:"+grade[i][4]+"政治:"+grade[i][5]+"\n"); break;} } System.out.println("******************************************************");

给定一个二维数组a[6][6],分别定义函数求出该数组最大元素和其下标,最小元素和其下标,每行元素之和以及主

#include int main (void) { int hang,lie,i,j,a[6][6]; double sum; printf("enter 36 integers:"); for(i=0;i<6;i++) for(j=0;j<6;j++) scanf("%d",&a[i][j]); for(i=0;i<6;i++) for(j=0;j<6;j++) printf("%4d",a[i][j]); printf("\n"); hang=lie=0; sum=0; for(i=0;i<6;i++) for(j=0;j<6;j++) if(a[i][j]>a[hang][lie]){ hang=i; lie=j; } printf("max=a[%d][%d]=%d\n",hang,lie,a[hang][lie]); for(i=0;i<6;i++) for(j=0;j<6;j++) if(a[i][j]

printf("这行元素之和为%lf\n",sum); for(i=0;i<6;i++) for(j=0;j<6;j++) if(i=j){ sum=sum+a[i][j]; } printf("对角线元素之和为%lf\n",sum); for(i=0;i<6;i++) for(j=0;j<6;j++) if(i+j==5){ sum=sum+a[i][j]; } printf("副对角线之和为%lf\n",sum); return 0; } }

数组c习题答案解析

习题 4 一、单项选择题 1. 若有说明int a[3][4];则a数组元素的非法引用是【】 A. a[0][2*1] B. a[1][3] C. a[4-2][0] D. a[0][4] 【答案】D 【解析】数组下标从0开始,a[0][4]的列下标越界。 2. 在C++语言中,引用数组元素时,其数组下标的数据类型允许是【】 A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 【答案】C 3. 以下不正确的定义语句是【】 A. double x[5]={2.0,4.0,6.0,8.0,10.0}; B. int y[5]={0,1,3,5,7,9}; C. char c1[]={′1′,′2′,′3′,′4′,′5′}; D. char c2[]={′\x10′,′\xa′,′\x8′}; 【答案】B 【解析】初始值的个数大于数组的大小,系统会出现编译错误。 4. 对以下说明语句的正确理解是【】 int a[10]={6,7,8,9,10}; A. 将5个初值依次赋给a[1]至a[5] B. 将5个初值依次赋给a[0]至a[4] C. 将5个初值依次赋给a[6]至a[10] D. 因为数组长度与初值的个数不相同,所以此语句不正确 【答案】B 5. 若有说明:int a[ ][4]={0,0};则下面不正确的叙述是【】 A. 数组a的每个元素都可得到初值0 B. 二维数组a的第一维大小为1 C. 当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小 D. 只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值 【答案】D 【解析】二维数组初始化时,行大小可以省略,被省略的大小根据初值的个数系统来确定,本题中,有2个初值说明是1行4列,所以第一维为1。元素a[0][0]和a[0][1]赋初值为0 ,其余元素初值系统默认为0。 6. 以下能对二维数组c进行正确的初始化的语句是【】 A. int c[3][]={{3},{3},{4}}; B. int c[][3]={{3},{3},{4}}; C. int c[3][2]={{3},{3},{4},{5}};

关于java用二维数组编杨辉三角(具体到步骤)

import javax.swing.JOptionPane; // import是引入的意思,javax.swing是sun为我们提 供的一个包,包中有一个类叫JoptionPane。 JOptionPane 是有助于方便地弹出要求用户提供值或向 其发出通知的标准对话框。它是用来编写图形用户界 面的一个类。 合起来讲就是:导入包javax.swing中JOptionPane这个 类,这样在你的这个文件中就能使用这个类了。 public class YH //public 是公开访问接口class是指这个java程序建立的类 YH是该程序的自定义命名。 { public static void main(String args[]) //公开访问的,static静态的,void无返回值的,main ()是方法执行入口,()里面为方法名。 { String row; // String 类型的传递是引用传递。也即是地址传递。 传的是row的地址。 int row1; //定义整型变量row1 row=JOptionPane.showInputDialog("输入行数:"); //将图形界面显示的“输入行数”获取 到的值,赋值给row row1=Integer.parseInt(row); // Integer.parseint(row)就是把整形对象Integer转换成 基本数据类型int(整数)。即把row转换为int型,方便接 下来为二维数组赋值。 int ss[][]=new int[row1][row1]; //用row1的赋值构建二维数组。 int i,j; //定义整型的i和j。其中i代表行,j代表列。 ss[0][0]=1; //为二维数组附上初值 ss[1][0]=1; ss[1][1]=1; //同上 for(i=2;i

C语言习题九数组的定义和使用

习题九数组的定义和使用 1. 有以下程序 void f (int b[]) { int i; for(i=2;i<6;i++) b[i]* =2;} main() { int a[10]={1,2,3,4,5,6,7,8,9,10},i; f(a); for(i=0;i<10;i++) printf("%d,",a[i]);} 程序运行后的输出结果是______。 A、1,2,3,4,5,6,7,8,9,10, B、1,2,6,8,10,12,7,8,9,10, C、1,2,3,4,10,12,14,16,9,10, D、1,2,6,8,10,12,14,16,9,10, 解析:本题在调用函数时,实参是&a[0]的地址,即把a[0]的地址传给形参,由条件i=2且i<6得出函数将对a[2]开始的4个元素(3,4,5,6)进行乘以2操作,结果分别为:a[2]=6,a[3]=8,a[4]=10,a[5]=12。a[0]、a[1]、a[6]、a[7]、a[8]、a[9]的值并没有发生变化,所以最后的输出结果为:1,2,6,8,10,12,7,8,9,10,。故本题答案选B。 2. 有以下程序 main() { int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t; for(i=0;i<4;i++) for(j=0;j<3;j++) for(k=j+1;k<4;k++) if(a[j][i]>a[k][i]) {t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;} /*按列排序*/ for(i=0;i<4;i++) printf("%d,",a[i][i]); } 程序运行后的输出结果是______。 A、1,6,5,7, B、8,7,3,1, C、4,7,5,2, D、1,6,2,1, 解析:本题首先定义了一个4行4列的二维数组a,并用了三层循环来进行按列由小到大排序操作。外层循环变量i表示数组的列,第二层循环变量j表示数组的行,第三层循环用于求第i列第j行的最小值,其中通过if语句对相关数值进行比较和交换。然后再通过for语句对排序数组对角线上的值进行输出,即输出a[0][0]、a[1][1]、a[2][2]、a[3][3]。故本题答案选A。 3. 有以下程序 main() { int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf("%d ",t[2-i][i]); } 程序执行后的输出结果是______。 A、7 5 3 B、3 5 7 C、3 6 9 D、7 5 1 解析:本题考查的是二维数组的应用。将初始值放在一对大括号内,按数组元素排列的顺序对各元素赋值,二维数组中行下标可以省略,但列下标必须要指定,由此题可以看出数组t是一个三行三列的二维数组,执行for循环语句t[2-i][i]分别为t[2][0],t[1][1],t[0][2],得出输出结果为3 5 7。故本题答案为B。

全国计算机2级 C语言 试题

第2套全真模拟试卷 一、选择题 (1)下列选项中不属于算法的特性的是 A)确定性B)可行性C)有输出D)无穷性 (2)下列叙述中正确的是 A)线性表是线性结构B)栈与队列是非线性结构 C)线性链表是非线性结构D)二叉树是线性结构 (3)设有下列二叉树: 对此二叉树中序遍历的结果为 A)ABCDEF B)DAECF C)BDAECF D)DBEFCA (4)结构化程序设计主要强调的是 A)程序的规模B)程序的易读性 C)程序的执行效率D)程序的可移植性 (5)在面向对象设计中,对象有很多基本特点,其中“从外面看只能看到对象的外部特性,而对象的内部对外是不可见的”这一性质指的是对象的 A)分类性B)标识唯一性C)多态性D)封装性 (6)用黑盒技术测试用例的方法之一为 A)因果图B)逻辑覆盖C)循环覆盖D)基本路径测试 (7)在进行单元测试时,常用的方法是 A)采用白盒测试,辅之以黑盒测试B)采用黑盒测试,辅之以白盒测试 C)只使用白盒测试D)只使用黑盒测试 (8)下面四个选项中,不属于数据库管理系统提供的数据语言的是 A)数据定义语言B)数据查询语言 C)数据操纵语言D)数据控制语言 (9)在关系数据库模型中,通常可以把()称为属性,其值称为属性值。 A)记录B)基本表C)模式D)字段 (10)实体联系模型中实体与实体之间的联系不可能是 A)一对一B)多对多C)一对多D)一对零 (11)用C语言编写的代码程序 A)可立即执行B)是一个源程序

C)经过编译即可执行D)经过编译解释即可执行 (12)以下叙述中正确的是 A)C语言的源程序不必通过编译就可以直接执行 B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C)C源程序经编译形成的二进制代码可以直接运行 D)C语言中的函数不可以单独进行编译 (13)以下定义语句中正确的是 A)char a=′A′b′B′; B)float a=b=10.0; C)int a=10,*b=&a; D)float *a,b=&a; (14)有以下程序: main() { int a; char c=10; float f=100.0; double x; a=f/=c*=(x=6.5); printf(*%d %d %3 %3.1f %3.1f\n",a c, f, x); } 程序运行后的输出结果是 A)1 65 1 6.5 B)1 65 1.5 6.5 C)1 65 1.0 6.5 D)2 65 1.5 6.5 (15)数据库设计的根本目标是要解决 A)数据共享问题B)数据安全问题 C)大量数据存储问题D)简化数据维护 (16)设有定义:float a=2,b=4,h=3;,以下C语言表达式中与代数式1(a+b)h计算结果不相 2 符的是 A)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b) (17)有以下程序 main() { int m=0256,n=256; printf("%o %o\n",m,n); } 程序运行后的输出结果是 A)0256 0400 B)0256 256 C)256 400D)400 400 (18)数据库系统的核心是 A)数据模型B)数据库管理系统C)数据库D)数据库管理员 (19)以下叙述中错误的是 A)用户所定义的标识符允许使用关键字 B)用户所定义的标识符应尽量做到“见名知意” C)用户所定义的标识符必须以字母或下划线开头 D)用户定义的标识符中,大、小写字母代表不同标识 (20)有以下程序: main() {

Java_数组练习题目

一填空题 1)数组的元素通过数组下标来访问,数组Array的长度为元素的个数 (Array.length)。 2)Java中数组的下标的数据类型是整形。 3)不用下标变量就可以访问数组的方法是数组名。 4)数组最小的下标是0 。 5)arraycopy()的最后一个参数指明复制元素的个数。 6)向方法传递数组参数时,传递的是数组的引用。 7)数组初始化包括数组的声明,创建,初始化。 8)数组下标访问超出索引范围时抛出数组越界异常 9)浮点型数组的默认值是0.0f 。 10)对象型数组的默认值是null 。 二选择题 1.下面错误的初始化语句是_A B D__ 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.下面的二维数组初始化语句中,正确的是__B__ 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]前的数组元素个数为__C__ 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. 链表

第五章二维数组的定义和引用

二维数组的定义和引用 注:教案尾页有小结和作业 第5章数组 本书前几章介绍了C语言中几种简单数据类型。在本章中将介绍一种新的构造类型:数组。数组是一种最简单的构造类型,它包含着一组具有同一类型的变量,这些变量在内存中的存储位置是连续的。在解决实际问题时数组有着广泛的应用。本章介绍了C语言中一维数组、二维数组及字符数组的定义、初始化及使用方法等。 5.1 一维数组的定义和引用 一、一维数组的定义 C语言规定:数组必须先定义,后使用。一维数组的格式为: 类型说明符数组名[常量表达式]; 例如:float score[10]; 它表示定义了一个名为score的数组,该数组有10个元素,其存放的数据类型应为实型。 说明:(1)类型说明符用来说明数组元素的类型:int , char , float 或double。 (2)数组名的命名应遵守标识符的命名规则。 (3)数组名后是用方括号括起来的常量表达式。常量表达式表示的是组元素的个数,即数组的长度。在上例中定义了数组score[10],该数组有 10个元素,其下标从0开始。 注意:不要使用score[10], 因为它不是该数组的元素。 (4)常量表达式中可以包括常量和符号常量,不能包含变量,因为C 语言规定数组不能动态定义。 二、一维数组的初始化 数组的初始化是指在定义数组时给数组元素赋初值。一维数组初始化的格式为: 类型说明符数组名[常量表达式]={常量列表}; 例如int a[5]={2,4,6,8,10}; 其作用是在定义数组的同时将常量2、4、6、8、10分别置于数组元素a[0]、a[1]、a[2]、a[3]、a[4]中。 说明:(1)常量列表可以是数值型、字符常量或字符串。 (2)数组元素的初值必须依次放在一对大括号内,各值之间用逗号隔开。 (3)可以只给部分数组元素赋初值。例如: int a[10]={1,2,3,4,5}; (4)在进行数组的初始化时,{ }中值的个数不能超过数组元素的个数。 例如:int a[5]={1,2,3,4,5,6,7,8}; 是一种错误的数组初始化方式。 (5)在给数组所有元素赋初值时,可以不指定数组长度。例如: int a[ ]={1,2,3,4,5}; 则系统会自动定义数组a的长度为5。 (6)定义数组时不进行初始化,则该数组元素的值是不确定的。如果欲将数组所有元素的初值置为0,可以采用如下方式: static int a[10]; 三、一维数组元素的引用 C语言规定数组不能以整体形式参与数据处理,只能逐个引用数组元素。一维数组的引用方式为:

大连理工大学c语言题库2

1. C语言中运算对象必须是整型的运算符是()。 A、= B、%= C、〈= D、/ 2.下列字符序列中,不可用作C语言标识符的是()。 A、b70 B、a_1 C、#ab D、symbol 3.下列程序的输出结果是()。 main() {int a=011; printf("%d\n",++a); } A、11 B、9 C、12 D、10 4.逻辑表达式5>3&&2||8<4-!0的值为:( ) A、3 B、2 C、1 D、0 5.下列选项中,合法的C语言关键字是()。 A、integer B、default C、VAR D、cher 6.下列程序的输出为()。 main() { int y=10; while(y--); printf("y=%d\n",y); } A、y=-1 B、y=0 C、y=1

D、while构成无限循环 7.以下表述中正确的是( ). A、在do-while循环中,while表达式的值不能为"假" B、do-while循环中,while语句不能省略 C、do-while循环中,while(表达式)后面不能加分号 D、除了for循环,其他循环中都不能使用复合语句 8.以下不能正确定义二维数组的选项是()。 A、int a[2][]={{1,2},{3,4}}; B、int a[2][2]={{1},2,3}; C、int a[2][2]={{1},{2}}; D、int a[][2]={1,2,3,4}; 9. int a[10]; 给数组a的所有元素分别赋值为1、2、3、……的语句是()。 A、for(i=1;i<11;i++)a[i]=i; B、for(i=1;i<11;i++)a[0]=1; C、for(i=1;i<11;i++)a[i+1]=i; D、for(i=1;i<11;i++)a[i-1]=i; 10.若有说明: int a[3][4]={0};则下面正确的叙述是()。 A、数组a中每个元素均可得到初值0 B、只有元素a[0][0]可得到初值0 C、数组a中各元素都可得到初值,但其值不一定为0 D、此说明语句不正确 11.以下叙述错误的是(). A、函数调用可以出现在一个表达式中 B、函数调用可以作为一个函数的形参 C、函数调用可以作为一个函数的实参 D、函数允许递归调用 12.以下叙述不正确的是(). A、全局变量可以由系统自动初始化 B、在程序运行期间,全局变量所占存储单元的值永久保留 C、当局部变量与全局变量重名时,全局变量起作用 D、全局变量存放在静态存储区 13.函数的形式参数系统默认存储类型说明是()。 A、static B、extern C、register D、auto 14.设有宏定义#define MAX(x,y) (x)>(y)?(x):(y),则F=4*MAX(2,3)的值为( ). A、3

java数组的概念和作用

1 数组的概念 和其他语言一样,Java也提供数组支持,数组是属于引用类型,即数组是一个 对象。 强调数组的类型是引用类型。 数组的基本概念及作用 数组是相同数据类型元素的集合 数组本身是引用数据类型,即对象。但是数组可以存储基本数据类型,也可以存储引用数据类型。 数组的举例 int [] a = new int []{1,2,3,4,5}; String [] s = new String []{"小熊","小小熊","小小小熊"}; Employee [] e=new Employee[10];(Employee是自定义类) 2 数组的声明 数组的声明的两种方式: 数据类型 [] 数组名字例如:int [] a; 数据类型数组的名字 [] 例如: int a []; 注意: 在Java语言中两种声明方法没有任何区别,但是建议大家用第一种,避免混淆a的数据类型。 数组在声明后还只是一个空指针,不能使用,要想使用必须创建。 数组创建的三种方式:

?//声明数组的同时,根据指定的长度分配内存,但数组中元素值都为默认的初始化值 char[] chAry = new char[10]; ?//声明数组并分配内存,同时将其初始化 ?int[] ary1 = new int[]{1, 2, 3, 4, 5}; ?//与前一种方式相同,仅仅只是语法相对简略 ?int[] ary2 = {1, 2, 3, 4, 5}; 从另一个角度,数组创建可以分为动态和静态两种 动态创建数组(没有为元素赋值,可以结合for循环进行赋值) char[] chAry = new char[10]; 静态创建数组,在创建的时候,即为每个元素赋初值 int[] ary1 = new int[]{1, 2, 3, 4, 5}; 数组的长度 数组的长度:length属性 int [] b1 = new int []{1,2,3,4,5,6,7}; System.out.println(b1.length); 注意:数组的长度是属性,String的长度是length(); 创建数组的时候必须指定数组的长度,而且一经定义则不允许改变。 数组的长度虽然是7,但是在内存中实际给8个位置,另外一个存储7. 数组之间赋值 在C语言中,不可以将数组直接赋值给另一个数组;

java定义二维数组的几种写法

//定义二维数组写法1 class numthree { public static void main(String[] args) { float[][] numthree; //定义一个float类型的2维数组 numthree=new float[5][5]; //为它分配5行5列的空间大小 numthree[0][0]=1.1f; //通过下标索引去访问 1行1列=1.1 numthree[1][0]=1.2f; // 2行1列=1.2 numthree[2][0]=1.3f; // 3行1列=1.3 numthree[3][0]=1.4f; // 4行1列=1.4 numthree[4][0]=1.5f; // 5行1列=1.5 System.out.println(numthree[0][0]); //打印换行输出喽 System.out.println(numthree[1][0]); System.out.println(numthree[2][0]); System.out.println(numthree[3][0]); System.out.println(numthree[4][0]); } } //定义二维数组写法2 定义的同时分配空间大小 class numfour { public static void main(String[] args) { short[][] numfour=new short[5][8]; //定义一个short类型的数组同时为它分配5行8列的空间大小 numfour[0][7]=10; numfour[1][6]=20; numfour[2][5]=30; numfour[3][4]=40; numfour[4][3]=50; System.out.println(numfour[0][7]); System.out.println(numfour[1][6]); System.out.println(numfour[2][5]); System.out.println(numfour[3][4]); System.out.println(numfour[4][3]); } } //定义二维数组写法3 不规则数组 class numfive

C语言-程序设计基础试题五及答案

《程序设计基础》考试试卷五 班级姓名学号____________ 一、选择题(每题1分,共20分) 1.以下叙述中正确的是( ) A. C程序中注释部分可以出现在程序中任意合适的地方 B. 花括号"{"和"}"只能作为函数体的定界符 C. 构成C程序的基本单位是函数,所有函数名都可以由用户命名 D. 分号是C语句之间的分隔符,不是语句的一部分 2.在一个C语言程序中( ) A. main函数必须出现在所有函数之前 B. main函数可以在任何地方出现 C. main函数必须出现在所有函数之后 D. main函数必须出现在固定位置 3.判断下面标识符中哪个是C语言中合法的用户定义标识符( ) A. a-b B. #abd C. typedef D. _max 4.为表示关系X≥Y≥Z,应使用C语言表达式( ) A. (X≥Y)&&(Y≥Z) B. X>=Y>=Z C. (X>=Y)‖(Y>=Z) D. (X>=Y)&&(Y>=Z) 5.设有一分段函数:x=1 a=b 则下列程序段哪个是正确的( ) A. if(ab) D. if (a>=b) if(c= =d) {if (c= =d) if (c= =d) x=2; x=1; x=1; x=1; else else x=2; else x=2;} else x=2; {if(c= =d) x=1;} 6.若有两条语句:static char x[]=”abcde”; static char y[]={‘a’,’b’,’c’,’d’,’e’}; 则下列说法中正确的是( ) A. x数组和y数组长度相同 B. x数组长度大于y数组长度 C. x数组长度小于y数组长度 D. 以上三种说法均错误。 7.返回值为void的函数,其含义是( )

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() {

相关主题