当前位置:文档之家› 数组正确的定义和使用

数组正确的定义和使用

数组正确的定义和使用

在下列数组定义、初始化或赋值语句中,正确的是 C 。

A)int a[8];a[8]=100;B)int x[5]={1,2,3,4,5,6);

C)int X[]={1,2,3,4,5,6);D)int n=8;int score[n];

C# 数组的定义与使用

C# 数组的定义与使用 c#中数组元素可以为任何数据类型,数组下标从0开始,即第一个元素对应的下标为0,以后逐个递增。数组可以一维也可多维。 //包含6个元素的一维整数数组; int[] mf1=new int[6]; //注意初始化数组的范围,或者指定初值; //包含6个元素的一维整数数组,初值1,2,3,4,5,6 int[] mf2=new int[6]{1,2,3,4,5,6}; //一维字符串数组,如果提供了初始值设定项,则还可以省略new 运算符 string[] mf3={"c","c++","c#"}; //一维对象数组 Object[] mf4 = new Object[5] { 26, 27, 28, 29, 30 }; //二维整数数组,初值mf5[0,0]=1,mf5[0,1]=2,mf5[1,0]=3,mf5[1,1]=4 int[,] mf5=new int[,]{{1,2},{3,4}}; //6*6的二维整型数组 int[,] mf6=new mf[6,6]; 下面来看一个一维字符串数组的遍历 using System; public class MikeCat { static void PrintArray(string[] arr) { //打印数组元素,arr.Length 表示数组元素的个数 for(int i=0;i

} public static void Main() { string[] arr={"c","c++","c#"}; //将数组作为一个参数传递 PrintArray(arr); } } 程序结果:arr[0]=c arr[1]=c++ arr[2]=c# 下面来看一个4行2列(4*2)的整型数组的遍历: using System; public class MikeCat { static void PrintArray(int[,] arr) { //通过两次FOR循环遍历二维数组 for(int i=0;i<4;i++)//初始化i作为循环变量,i++实现该变量的自增运算。 //for循环满足条件后执行完循环体一次后执行i++,然后进入下次循环。简单的c语法,这里做简单介绍照顾初学者。(详细可参阅谭浩强先生的c语言程序设计一书) { for(int j=0;j<2;j++) { Console.WriteLine("arr[{0},{1}]={2}",i,j,arr[i,j]);//打印每个二维数组元素 } } } public static void Main() {

C程序设计第9章选择题作业

1. 20901、设有以下说明语句:C struct Stu { int a; float b; }stutype; 则下面的叙述不正确的是。 A) struct是结构体类型的关键字 B) struct Stu是用户定义的结构体类型 C) stutype是用户定义的结构体类型名 D) a和b都是结构体成员名 2. 20902、根据下面的定义,能打印出字母M的语句是。D struct Person { char name[9]; int age; }; struct Person class[10]={ "John", 17,"Paul", 19,"Mary",18,"adam",16}; A) printf("%c\n",class[3]. name); B) printf("%c\n",class [3]. name[l]); C) printf ("% c\n",class [2]. name [1]); D) printf("%c\n",class [2]. name[0]); 3. 20903、若有以下说明和语句:A struct Student { int num; int age; }stu,*p; p=&stu; 则以下对结构体变量stu中成员age的引用方式不正确的是。 A) *p.age B) p->age C) (*p).age D) stu.age 4. 20904、若有以下程序段: struct Student { int num; int age; }; struct Student stu[3]={{101,20},{102,19},{103,20}}; void main () { struct Student * p; p=stu; … } 则以下引用形式不合法的是。D A) (p++)->num B) p++ C)(*p). num D) p=&stu. age

数组练习题

单选: 1.下列数组说明中,正确的是(). A.int array[][4]; B.int array[][]; C.int array[][][5]; D.int array[3][]; 2.下列定义数组的语句中正确的是(). A.#define size 10 char str1[size],str2[size+2]; B.char str[]; C.int num['10']; D.int n=5; int a[n][n+2]; 3.下列定义数组的语句中不正确的是(). A.int a[2][3]={1,2,3,4,5,6}; B.int a[2][3]={{1},{4,5}}; C.int a[][3]={{1},{4}}; D.int a[][]={{1,2,3},{4,5,6}}; 4.若输入ab,程序运行结果为(). main() { char a[2]; scanf("%s",a); printf("%c,%c",a[1],a[2]); } A.a,b B.a, C.b, D.程序出错 5.下列数组说明中,正确的是(). A.char str[]="China"; B.char str[]; str="China"; C.char str1[5],str2[]={"China"}; str1=str2; D.char str1[],str2[];str2={"China"}; strcpy(str1,str2); 6.下列语句中,不正确的是(). A.static char a[2]={1,2}; B.static int a[2]={'1','2'}; C.static char a[2]={'1','2','3'}; D.static char a[2]={'1'}; 7.int a[10];合法的数组元素的最小下标值为(). A.10 B.9 C. 1 D.0 8.char a[10];不能将字符串"abc"存储在数组中的是 (). A.strcpy(a,"abc"); B.a[0]=0;strcat(a,"abc"); C.a="abc"; D.int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; 9.int i,j,a[2][3];按照数组a的元素在内存的排列次序, 不能将数1,2,3,4,5,6存入a数组的是(). A.for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+1; B.for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1; C.for(i=0;i<6;i++)a[i/3][i%3]=i+1; D.for(i=1;i<=6;i++)a[i][i]=i; 10.char str[10]="China";数组元素个数为(). A. 5 B. 6 C.9 D.10 11.若char a[10];已正确定义,以下语句中不能从键盘 上给a数组的所有元素输入值的语句是(). A.gets(a); B.scanf("%s",a); C.for(i=0;i<10;i++)a[i]=getchar(); D.a=getchar(); 12.char a[]="This is a program.";输出前5个字符的语 句是(). A.printf("%.5s",a); B.puts(a); C.printf("%s",a); D.a[5*2]=0;puts(a); 13.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[i-1]=i; C.for(i=1;i<11;i++)a[i+1]=i; D.for(i=1;i<11;i++)a[0]=1; 14.以下程序段的输出结果为(). char c[]="abc"; int i=0; do ; while(c[i++]!='\0'); printf("%d",i-1); A.abc B.ab C. 2 D. 3

数组的定义

一维数组的定义方式 在C语言中使用数组必须先进行定义。 一维数组的定义方式为:类型说明符数组名[常量表达式]; 其中:类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,也称为数组的长度。 例如: int a[10]; 说明整型数组a,有10个元素。 float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。 char ch[20]; 说明字符数组ch,有20个元素。 (数组的定义和对变量的定义是一致的,可以连续在一行定义:float b[10],c[20];) 对于数组类型说明应注意以下几点: 数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。 数组名的书写规则应符合标识符的书写规定。 数组名不能与其它变量名相同。 例如: main() { int a; float a[10]; …… } 是错误的。 方括号中常量表达式表示数组元素的个数,如a[5]表示数组a有5个元素。但是其下标从0开始计算。因此5个元素分别为a[0],a[1],a[2],a[3],a[4]。 不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。 例如:

#define FD 5 main() { int a[3+2],b[7+FD]; …… } 是合法的。但是下述说明方式是错误的。 main() { int n=5; int a[n]; …… } 允许在同一个类型说明中,说明多个数组和多个变量。 例如: int a,b,c,d,k1[10],k2[20]; 注意:1定义数组长度的常量表达式的结果必须是整形常量(包括字符) 2 在执行C99标准的编译系统中,允许对数组进行动态定义,即C99规定了可变长数组的存在。 但是,目前执行C99标准的编译器尚不普遍,在C89中是不允许使用可变长数组的,main和被调用函数中都不可以使用(如VC++6.0) 二维数组的定义 前面介绍的数组只有一个下标,称为一维数组,其数组元素也称为单下标变量。在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多

数组及其应用(详细教案)

提问:给一组数排序,这组数该如何存 放呢? 8 2 9 4 5 6 3 7 1 6 这就是本节课要解决的问题。 ?一个班学生的学习成绩 ?一行文字 ?一个矩阵 这些数据的特点是: 1.具有相同的数据类型 2.使用过程中需要保留原始数据 C语言为这些数据,提供了一种型:数组。所谓数组就是一组具有相数据的有序集合。 提出学习要求: 1 一维数组的定义和应用

2 二维数组的定义和应用 3 字符数组的应用 第七章数组 7.1一维数组及应用 7.1.1一维数组的定义方式 在C语言中使用数组必须先定义、后使用,定义数组也就确定了数组的首地址、数组元素的类型和个数(数组长度)。 一维数组的定义方式为: 类型说明符数组名[常量表达式]; 例如: 1) int a[5]; 说明整型数组a,a是数组名,有5个元素。但

是其下标从0开始计算。因此5个元素分别为a[0],a[1],a[2],a[3],a[4]。注意不能使用数组元素a[5]。 float b[10],c[20]; 说明实型数组b,b是数组名,有10个元素,实型数组c,有20个元素。 char ch[20]; 说明字符数组ch,有20个元素。 对于数组类型说明应注意以下几点:2) 数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。 3) 数组名的书写规则应符合标识符的书写规定。 4) 数组名不能与其它变量名相同。 例如:

main() { int a; /*a为整型变量*/ float a[10]; /* 数组名a与上面的变量名a相同,错误!*/ …… } 是错误的。 5) 不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。 例如: #define FD 5 /* FD是符号常数*/ main() {

数组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中的数组,必须经过声明数组和分配内给数组两个步骤。 一般步骤: 数据类型数组名[]=null; 数组名=new 数据类型[长度]; 也可简化为: 数据类型[] 数组名=null; 数组声明格式中,“数据类型”指的是声明数组元素的数据类型,“数组名”是用来统一这一组相同数据类型的元素的名称,其命名规则和变量命名规则相同,建议用有意义的名字来命名。数组声明后实际上是在栈内存中保存了此数组的名称(实际上是保存了对堆内存的引用地址),接下来就要在堆内存中配置数组所需的内存。“长度”是告诉编译器所声明的数组要存放多少个数据,而关键字new则是命令编译器根据括号里的长度在堆内存中开辟一块堆内存供该数组使用。 【例】 int score[]=null;//null表示引用数据类型的默认值。 score=new int[3]; 内存分配的过程: 过程分析:一个数组开辟了堆内存之后,将在堆内存中存储保存数据,并将堆内存的操作地址给了数组的名称score。因为数组是引用数据类型,所以数组变量score所保存的不是数组的实体,而是数组堆内存的参考地址。 二.数组中元素的表示方法 要访问数组中的元素,必须利用索引来完成。Java中的数组索引编号是从0开始的。以score[10],为例,score[0]代表第一个元素,score[1]是第二个元素、、、score[9]是第十个元素。

C语言练习3(数组)=参考答案

C语言(数组) 一、选择题 1. 设有程序: main() { int i,a[11]; printf("给数组赋值:\n"); for (i=0;i<=10;i++) scanf("%d",( )); ... ... printf("输出数组:\n"); for(i=0;i<=10;i++) printf("%d,",( )); } 则在程序中的两个园括号中分别应填入:C A) &a[i]和&a[i] B) a[i]和&a[i] C) &a[i]和a[i] D) a[i]和a[i] 2. 设已定义:int a[15]; 则数组a占用的内存单元数是( C ). A) 15 B) 16 C) 30 D) 32 3. 阅读程序: main() { int a[2]={0},i,j,k=2; for(i=0;i

4. 阅读程序: f(int b[],int n) { int i,r=1; for(i=0;i<=n;i++) r=r*b[i]; return r; } main() { int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf("%d\n",x); } 以上程序的输出结果是( D ). A) 720 B) 6 C)24 D) 120 5. 以下定义语句中,错误的是( B ). A) int a[ ] = {6,7,8}; B) int n=5, a[n]; C) char a[ ]= "string"; D) char a[5 ]={'0','1','2','3','4'}; 6. 以下描述中正确的是( D ). A) 数组名后面的常量表达式用一对圆括弧括起来 B) 数组下标从1开始 C) 数组下标的数据类型可以是整型或实型 D) 数组名的规定与变量名相同 7. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'};指出以下错误语句( AB ). A) scanf("%c",a[0]); B) scanf("%s",&a); C) printf("%c",a[3]); D) printf("%s",a); 8.若定义数组int a[10] ,其最后一个数组元素为( C ). A) a[0]

VHDL中数组的定义和使用

VHDL中数组的定义和使用 为了帮助网友解决“VHDL中数组的定义和使用?”相关的问题,中国学网通过互联网对“VHDL中数组的定义和使用?”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:VHDL中数组的定义和使用?,具体解决方案如下:解决方案1: --定义matrix_index为数组 TYPEmatrix_indexisarray(3downto0)ofstd_logic_vector(7downto0); SIGNALa:matrix_index;--定义了数组a[4],即数组元素为a[0],a[1],a[2],a[3] constantR:matrix_index:=(x"15",x"0F",x"0A",x"06");--定义了常数数组R[4] --使用时跟C语言中一样,加下标就可以了,上面是用downto定义了方向,故R[0]是最后一项,如在R数组中R[0]=X"06",R[3]=X"15" 以上不知道说清楚了没,满意请及时采纳 我看还是补充一段参考程序吧 --------------------------------------- libraryieee; useieee.std_logic_1164.all; useieee.std_logic_arith.all; useieee.std_logic_unsigned.all; ENTITYshift_row_invIS PORT( shiftrow_in:INSTD_LOGIC_VECTOR(127DOWNTO0);

shiftrow_out:OUTSTD_LOGIC_VECTOR(127DOWNTO0) ); ENDshift_row_inv; ARCHITECTUREbehOFshift_row_invIS --typedescribingthebytearrayconsistingof16bytematrixarray TYPEmatrix_indexisarray(15downto0)ofstd_logic_vector(7downto0); SIGNALb,c:matrix_index; BEGIN --initialmappingofinputintoabytematrixarraynamedb matrix_mapping:PROCESS(shiftrow_in) BEGIN FORiIN15DOWNTO0LOOP b(15-i)<=shiftrow_in(8*i+7DOWNTO8*i); ENDLOOP; ENDPROCESSmatrix_mapping; --shiftrowtransformation --b(i)-->c(i) -- --|04812||04812|(noshift) --|15913|==>|13159|(1rightshift)

数组典型例题分析与解答

1 定义一个名为a的单精度实型一维数组,长度为4,所有元素的初值均为0的数定义语句是 ________________ 【分析】按照一般数据定义语句的格式,可以直接写出方法一(参看答案);考虑到所有元素均赋初值时可以省略数组长度,可以写出方法二(参看答案);考虑到不省略数组长度,给部分元素赋初值时,所有未赋初值的元素均有空值(对数值型数组来说,初值为0),可以写出方法三(参看答案);考虑到选用静态型,不赋初值所有元素也自动赋予。空值(对数值型数组来说,初值为0),可以写出方法四(参看 答案)。 【答案】方法一:float a[4]={0.0,0.0,0.0,0.0}; 方法二:float a[]={ 0.0,0.0,0.0,0.0}; 方法三:float a[4]= {0.0}; 方法四: static float [4]; 2 下列数组定义语句中,错误的是() ① char x[1]='a';②auto char x[1]={0}; ③ static char x[l];④ char x[l]; 【分析】显然答案①中给字符型数组赋初值的格式不对(不能直接赋予字符常量,必须用花括号括住), 所以备选答案①是符合题意的答案。 【答案】① 3 用"冒泡排序法"对n个数据排序,需要进行n一1 步。其中第k步的任务是:自下而上,相邻两数比较,小者调上;该操作反复执行n-k次。现在假设有4个数据:4、l、3、2要排序,假定4为上、2为下,则利用"冒泡排序法"执行第2步后的结果是_________________。 【分析】开始排序前的排列执行第1步后的排列执行第2步后的排列 4 1 1 1 4 2 3 2 4 2 3 3 【答案】 l、2、4、3 4 用"选择排序法"对n个数据排序,需要进行n-1步。其中第k步的任务是:在第k个数据到第n个数据中寻找最小数,和第k个数据交换。现在假设有4个数据:4、1、3、2要排序,则利用"冒泡排序法"执行 第2步后的结果是______________________。 【分析】开始排序前的排列为: 4 1 3 2 执行第1步后的排列为: 1 4 3 2 执行第2步后的排列为: 1 2 3 4 【答案】1、2、3、4 5 下列数组定义语句中,正确的是() ① int a[][]={1,2,3,4,5,6};② char a[2]「3]='a','b'; ③ int a[][3]= {1,2,3,4,5,6};④ static int a[][]={{1,2,3},{4,5,6}};

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语言中,不可以将数组直接赋值给另一个数组;

定义下标为零的数组

先看个例子: #include #include #include #include struct helloworld_t { int num; char helloworld[0];//主要是用来得到一个数组的地址,再由数组的个数来访问 }; int main() { struct helloworld_t *p; unsigned int size = sizeof(struct helloworld_t) + strlen("Hello World!\n") + 1; p = (struct helloworld_t *) malloc(size); assert(p!=NULL); memcpy(p, "\x01\x00\x00\x00Hello World!\n", size);//\x01\x00\x00\x00四字节,就是给num 赋值 //在内存中高8位和低8位反一下... // printf("%d\n",p->num); while (p->num--) { printf(p->helloworld); } //printf("%d \n", sizeof(helloworld_t)); free((void *)p); return 0; } 这个程序能正常打印hello world! 说明:这是一种柔性数组,C/C++标准规定不能定义长度为0的数组,因此,有些编译器就把0长度的数组成员作为自己的非标准扩展。这种数组只能在结构体中定义,不能在这之外定义。 在日常的编程中,有时候需要在结构体中存放一个长度动态的字符串,一般的做法,是在结构体中定义一个指针成员,这个指针成员指向该字符串所在的动态内存空间,例如:struct test { int a; double b; char *p; };

C语言一维数组的定义和引用

C语言一维数组的定义和引用 在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。本章介绍数值数组和字符数组,其余的在以后各章陆续介绍。 7.1一维数组的定义和引用 7.1.1一维数组的定义方式 在C语言中使用数组必须先进行定义。一维数组的定义方式为:类型说明符数组名[常量表达式]; 其中:类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,也称为数组的长度。 例如: int a[10]; 说明整型数组a,有10个元素。 float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。 char ch[20]; 说明字符数组ch,有20个元素。 对于数组类型说明应注意以下几点: 数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。 数组名的书写规则应符合标识符的书写规定。 数组名不能与其它变量名相同。 例如: main() { int a; float a[10]; …… } 是错误的。 方括号中常量表达式表示数组元素的个数,如a[5]表示数组a有5个元素。但是其下标从0开始计算。因此5个元素分别为a[0],a[1],a[2],a[3],a[4]。 不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。 例如: #define FD 5 main() { int a[3+2],b[7+FD];

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。

第六章节数组二级复习题

第六章数组 一、选择题 1.在C语言中,引用数组元素时,其数组下标的数据类型允许是 D 。(0级) A)整型常量 B)整型常量或整型表达式 C)整型表达式 D)任何类型的表达式 2.以下对一维整型数组a的正确说明是 D 。(0级) A)int a(10); B)int n=10,a[n]; C)int n; scanf(“%d”,&n); int a[n]; D ) #define SIZ E 10 int a[SIZE]; 3 以下能对一维数组a进行正确初始化的语句是 C 。(0级)A)int a[10]=(0,0,0,0,0); B)int a[10]={ }; C)int a[ ]={0}; D)int a[10]={10*1}; 4.不是给数组的第一个元素赋值的语句是 D 。(0级) A)int a[2]={1}; B) int a[2]={1*2}; C) int a[2];scanf (“%d”,a); D)a[1]=1; 5.下面程序的运行结果是 C 。(1级) main() {int a[6],i; for(i=1;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%2d",a[i]); } } A)-4 0 4 0 4 B)-4 0 4 0 3 C)-4 0 4 4 3 D)-4 0 4 4 0 6.下列定义正确的是 A 。(1级) A) static int a[]={1,2,3,4,5} B) int b[]={2,5} C) int a(10) D) int 4e[4] 7.若有说明int a[][4]={0,0};则下列叙述不正确的是 D 。(0级)

java中数组的定义及使用方法详解

java中数组的定义及使用方法详解 数组:是一组相关变量的集合 数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组 数据的有点 不使用数组定义100个整形变量:int i1;int i2;int i3 使用数组定义 int i[100]; 数组定义:int i[100];只是一个伪代码,只是表示含义的 一维数组 一维数组可以存放上千万个数据,并且这些数据的类型是完全相同的,使用java数组,必须经过两个步骤,声明数组和分配内存给该数组,声明形式一 声明一维数组:数据类型数组名[]=null; 非配内存给数组:数组名=new 数据类型[长度]; 声明形式二 声明一维数组:数据类型 [] 数组名=null; java数据类型分为两大类 基本数据类型 int、long操作的时候本身就是具体的内容 引用数据类型:数组、类、接口 引用传递的就是一个内存的使用权,一块内存空间,可能有多个人同

时使用 事例声明数组 package com.qn.array; public class Test { public static void main(String[] args) { int score[]=null;//声明数组 score=new int[3];//开辟空间,大小为3 } } 数组的声明格式里,数据类型是数组元素的数据类型,常见的有整形、浮点型、与字符型等 数组名是用来统一这组相同数据类型元素的名称,其命名规则和变量的相同 数组声明后实际上是在栈内存中保存了此数组的名称,结下了是要在堆内存中配置数组所需要的内存,齐产固定是告诉编译器,所声明的数组要存放多少个元素,而new 则是命令编译器根据括号里的长度 基本数据类型偶读有其默认值:int 0;只要是引用数据类型默认值就是null 事例 package com.qn.array;

asp定义数组详解

asp定义数组详解 数组是有序数据的集合。数组中的元素可以不属于同一个数据类型。用一个统一的数组名和下标来唯一地确定数组中的元素,更改其中一个元素并不会影响其它元素。数组的下标是有界的,分为下界和上界。数组可以用Dim、Private、Public或Static来声明,它们的语法格式相同。下面只介绍用 Dim声明数组的方法。 1.数组的定义与声明 数组的定义语法如下: Dim 数组名( [[下标下界 To ] 下标上界] ) [As 数据类型] 例如(假设在当前模块中数组的缺省下界为0)): ① Dim A(10) As Integer 表示数组名为A,此数组下标下界为缺省值0,下标上界为10,有11个Integer类型的元素,从A(0)、A(1)到A(10)。 ② Dim B(1 To 20) As Integer 表示数组名为B,此数组下标下界为1,下标上界为20,有20个Integer类型的元素,从B(1)到B(20)。 ③Dim DayArray(50) 表示DayArray 是一个有51 个索引(从0 到50)元素的Variant 数组。 ④Dim Matrix(3, 4) As Integer 表示Matrix 是一个二维 Integer 数组。 ⑤Dim MyMatrix(1 To 5, 4 To 9, 3 To 5) As Double

表示MyMatrix 是一个显式指定了上下界的三维 double 数组。 ⑥Dim BirthDay(1 To 10) As Date 表示BirthDay 是一个索引从 1 到 10 的 Date型数组。 2.Option Base 语句 Option Base 语句在模块级别中使用,用来声明数组下标的缺省下界。 Option Base 语句的语法如下: Option Base {0 | 1} 说明:缺省状态下数组下界为 0,此时无需使用 Option Base 语句。如果使用该语句规定数组下界1,则必须在模块的数组声明之前使用Option Base 语句。 注意: (1)Dim、Private、Public、ReDim 以及Static 语句中的To 子句提供了一种更灵活的方式来控制数组的下标。不过,如果没有使用To 子句显式地指定下界,则可以使用Option Base 将缺省下界设为1。使用 Array 函数创建的数组的下界也受 Option Base 语句指定的下界的决定, 除非Array 是由类型库(例如VBA.Array )名称限定,如果是由类型库名称限定,则使用Array 函数创建的数组的下界不受Option Base 的影响。 (1) Option Base 语句只影响位于包含该语句的模块中的数组下界。

项目4数组习题答案

一、单选题 1.在https://www.doczj.com/doc/1c13124645.html,中,一组具有相同名字、不同下标的变量称为____________。 A.数组 B.变量 C.同类数据 D.同类变量 2.一维数组的大小为______________。 A.上界+下界+1 B.上界+下界-1 C.上界-下界+1 D.上界-下界-1 3.数组的存放是按____________存放的。 A.数据大小 B.数据类型 C.列 D.行 4.数组具有相同的_____________。 A.下标 B.类型 C.数值 D.存放地址 5.重定义数组大小的语句是______________。 A.Dim语句 B.ReDim语句 C.Static 语句 D.Public 语句 6.使用Dim A(100) As Integer 语句声明了数组A,其下标的取值范围为____________。 A.0~100 B.1~100 C.0~99 D.1~99 7.若使用Dim A(100) As Integer 语句声明了数组A,下列引用错误的是___________。 A.A(0)=2 B.A(1)= -28 C.A(56)= A(-56) D.A(100)=A(0)+A(55) 8.如果要对已经声明的数组重新定义大小,并保留原有数据,可使用语句___________。 A.Dim B.ReDim C.Dim Preserve D.ReDim Preserve 9.对于Integer 类型的静态数组,如果没有赋值,则所有元素的值为____________。 A.空 B.0 C.1 D.最大数 10.执行重定义数组大小语句ReDim A(UBound(B))后,A数组的上界为______________。 A.B数组的上界 B.B数组的上界+1 C.B数组的上界- 1 D.不确定 11.下列数组声明语句中正确的是______________。 A.Dim A(9) As Single ={1,2,3,4,5,6,7,8,9,10} B.Dim A() As Single ={1,2,3,4,5,6,7,8,9,10} C.Dim A() As Single ={1,”abc”,”ccc”,4,5,6,7,8,9,10} D.Dim A( , ) As Single ={1,2,3,4,5,6,7,8,9,10} 12. 若有声明Dim a(2 ,3) as Integer,则数组a共有元素个。 A.12 B.30 C.16 D.4 13.下列程序的输出结果是______________。 Dim A() As Integer ={1,2,3,4,5,6,7} For i=0 to UBound(A) A(i)= A(i)* A(i) Next i MsgBox (A(i)) A.49 B.0 C.不确定 D.程序出错 14. 关于数组的声明,正确的是__________。 A.Dim a(5) As Integer = {1,2,3,4,5,6} B.Dim a(1,6) As Integer = {1,2,3,4,5,6} C.Dim a( ) As Integer = {1,2,3,4,5,6} D.Dim a(1 to 6) As Integer = {1,2,3,4,5,6} 15.有两个数组s1和s2,要将s1的内容“拷贝”一份给s2,使用()。 A.s2=s1 B. s2=s1.Copy C.s2=s1.Clone D.s2=s1.All 二、填空题 1.数组元素下标下界为_____0_____ ,不能改变;下标上界只能用常数表达式定义。

相关主题
文本预览
相关文档 最新文档