数组练习题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
39.初始化多维数组的语句中,可以缺省的是().
A.最后一个下标界
B.第1个下标界
C.第2个下标界
D.以上都不是
40.数组声明为: char str1[20]="Borland",str2[]="C++5.0";调用函数"strcat(str1,str2);"后,字符串str1的串长是().
A.13
32.在C语言中,引用数组元素时,其数组下标的数据类型允许是().
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
33.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是().
A.char s[10]="abcdefg";
B.char t[]="abcdefg",*s=t;
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}};
A.14
B.15
C.16
D.17
49.在执行int a[][3]={{1,2},{3,4}};语句后,a[1][2]的值是()
A.int a(10);
B.int n=10,a[n];
C.int n; scanf("%d",&n); int a[n];
D.#define SIZE 10 (换行) int a[SIZE];
27.若有说明int a[3][4];则对a数组元素的正确引用是().
A.a[2][4]
B.a[1,3]
C.a[1+1][0]
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.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'};
18.若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是().
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 ;
D.可在程序的编译或运行阶段得到初值0
21.设有数组定义: char array [ ]="China";则数组array所占的空间为().
A.4个字节
B.5个字节
C.6个字节
D.7个字节
22.以下能正确定义数组并正确赋初值的语句是().
A.int N=5,b[N][N];
B.int a[1][2]={{1},{3}};
D.strcpy(a1,a2);
16.对以下说明语句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.因为数组长度与初值的个数不相同,所以此语句不正确
17.以下不正确的定义语句是().
while(c[i++]!='\0');
printf("%d",i-1);
A.abc
B.ab
C.2
D.3
15.char a1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是().
A.strcat(a2,a1);
B.strcpy(a2,a1);
C.strcat(a1,a2);
D.int a[2][]={{1,2},{3,4}};
35.假定int类型变量占用4个字节,其有定义:int x[10]={0,2,4};则数组x在内存中所占字节数是().
A.3
B.6
C.10
D.40
36.以下数组定义中不正确的是().
A.int a[2][3];
B.int b[][3]={0,1,2,3};
A.a[10]
B.a[3,5]
C.a(5)
D.a[10-10]
25.以下能对一维数组a进行正确初始化的语句是().
A.int a[10]=(0,0,0,0,0)
B.int a[10]={};
C.int a[]={0};
D.int a[10]={10*1};
26.以下对一维整型数组a的正确说明是().
38.数组声明语句为"int a[6];",输入数组所有元素的语句应为().
A.scanf("%d%d%d%d%d",a[6]);
B.for(i=0;i<6;i++) scanf("%d",a);
C.for(i=0;i<6;i++) scanf("%d",&a[i]);
D.for(i=0;i<6;i++) scanf("%d",a[i]);
C.char s[10];s="abcdefg";
D.char s[10];strcpy(s,"abcdefg");
34.以下不能正确定义二维数组的选项是().
A.int a[2][2]={{1},{2}};
B.int a[][2]={1,2,3,4};
C.int a[2][2]={{1},2,3};
C.int c[2][]={{1,2},{3,4}};
D.int d[3][2]={{1,2},{34}};
23.以下对二维数组a的正确说明是().
A.int a[3][]
B.float a(3,4)
C.double a[1][4]
D.float a(3)(4)
24.若有说明:int a[10];则对a数组元素的正确引用是().
C.int c[100][100]={0};
D.int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
37.下列数组声明语句中,正确的是().
A.int a[]={1,2,,4,5};
B.char a[5]={A,B,C,D,E};
C.int a[5]={1,2};
D.char a[5]="Hello";
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";
C.int a[2][4]={{1,2,3},{4,5},{6}};
D.int a[][3]={{1,0,1}{},{1,1}};
30.若有说明: int a[3][4]={0};则下面正确的叙述是().
A.只有元素a[0][0]可得到初值0
B.此说明语句不正确
C.数组a中各元素都可得到初值,但其值不一定为0
D.a(2)(1)
28.若有说明int a[3][4];则a数组元素的非法引用是().
A.a[0][2*1]
B.a[1][3]
C.a[4-2][0]
D.a[0][4]
29.以下能对二维数组a进行正确初始化的语句是().
A.int a[2][]={{1,0,1},{5,2,3}};
B.int a[][3]={{1,2,3},{4,5,6}};
A.3
B.4
C.5
D.6
45.若有说明:int a[20];,则对a数组元素的正确引用是()
A.a[20]
B.a[3,5]
C.a(5)
D.a[10-10]
46.若有说明:int a[3][4];,则对a数组元素的正确引用是()
A.a[2][4]
B.a[1,3]
C.a[1+1][0]
D.a(2)(1)
D.数组a中每个元素均可得到初值0
31.若有说明: int a[][4]={0,0};则下面不正确的叙述是().
A.数组a的每个元素都可得到初值0
B.二维数组a的第一维大小为1
C.因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1
D.有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
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;
B.15
C.6
D是()
A.char str[]="string";
B.char str[7]={'s','t','r','i','n','g'};
C.char str[10]; str="string";
D.char str[7]={'s','t','r','i','n','g','\0'};
47.以下关于数组的描述正确的是()
A.数组的大小是固定的,但可以有不同类型的数组元素
B.数组的大小是可变的,但所有数组元素的类型必须相同
C.数组的大小是固定的,所有数组元素的类型必须相同
D.数组的大小是可变的,可以有不同类型的数组元素
48.字符串"I am a student."在存储单元中占()个字节.
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();
42.程序中调用了库函数strcmp(),必须包含头文件()
A.math.h
B.string.h
C.ctype.h
D.stdlib.h
43.在C语言中,引用数组元素时,其数组下标的数据类型允许是()
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
44.对于所定义的二维数组a[2][3],元素a[1][2]是数组的第()个元素
A.2
B.3
C.4
D.无确定值
19.若二维数组a有m列,则在a[i][j]前的元素个数为().
A.j*m+i
B.i*m+j
C.i*m+j-1
D.i*m+j+1
20.若有说明:int a[3][4];则数组a中各元素().
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
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、……的语句是().
单选:
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];
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.最后一个下标界
B.第1个下标界
C.第2个下标界
D.以上都不是
40.数组声明为: char str1[20]="Borland",str2[]="C++5.0";调用函数"strcat(str1,str2);"后,字符串str1的串长是().
A.13
32.在C语言中,引用数组元素时,其数组下标的数据类型允许是().
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
33.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是().
A.char s[10]="abcdefg";
B.char t[]="abcdefg",*s=t;
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}};
A.14
B.15
C.16
D.17
49.在执行int a[][3]={{1,2},{3,4}};语句后,a[1][2]的值是()
A.int a(10);
B.int n=10,a[n];
C.int n; scanf("%d",&n); int a[n];
D.#define SIZE 10 (换行) int a[SIZE];
27.若有说明int a[3][4];则对a数组元素的正确引用是().
A.a[2][4]
B.a[1,3]
C.a[1+1][0]
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.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'};
18.若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是().
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 ;
D.可在程序的编译或运行阶段得到初值0
21.设有数组定义: char array [ ]="China";则数组array所占的空间为().
A.4个字节
B.5个字节
C.6个字节
D.7个字节
22.以下能正确定义数组并正确赋初值的语句是().
A.int N=5,b[N][N];
B.int a[1][2]={{1},{3}};
D.strcpy(a1,a2);
16.对以下说明语句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.因为数组长度与初值的个数不相同,所以此语句不正确
17.以下不正确的定义语句是().
while(c[i++]!='\0');
printf("%d",i-1);
A.abc
B.ab
C.2
D.3
15.char a1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是().
A.strcat(a2,a1);
B.strcpy(a2,a1);
C.strcat(a1,a2);
D.int a[2][]={{1,2},{3,4}};
35.假定int类型变量占用4个字节,其有定义:int x[10]={0,2,4};则数组x在内存中所占字节数是().
A.3
B.6
C.10
D.40
36.以下数组定义中不正确的是().
A.int a[2][3];
B.int b[][3]={0,1,2,3};
A.a[10]
B.a[3,5]
C.a(5)
D.a[10-10]
25.以下能对一维数组a进行正确初始化的语句是().
A.int a[10]=(0,0,0,0,0)
B.int a[10]={};
C.int a[]={0};
D.int a[10]={10*1};
26.以下对一维整型数组a的正确说明是().
38.数组声明语句为"int a[6];",输入数组所有元素的语句应为().
A.scanf("%d%d%d%d%d",a[6]);
B.for(i=0;i<6;i++) scanf("%d",a);
C.for(i=0;i<6;i++) scanf("%d",&a[i]);
D.for(i=0;i<6;i++) scanf("%d",a[i]);
C.char s[10];s="abcdefg";
D.char s[10];strcpy(s,"abcdefg");
34.以下不能正确定义二维数组的选项是().
A.int a[2][2]={{1},{2}};
B.int a[][2]={1,2,3,4};
C.int a[2][2]={{1},2,3};
C.int c[2][]={{1,2},{3,4}};
D.int d[3][2]={{1,2},{34}};
23.以下对二维数组a的正确说明是().
A.int a[3][]
B.float a(3,4)
C.double a[1][4]
D.float a(3)(4)
24.若有说明:int a[10];则对a数组元素的正确引用是().
C.int c[100][100]={0};
D.int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
37.下列数组声明语句中,正确的是().
A.int a[]={1,2,,4,5};
B.char a[5]={A,B,C,D,E};
C.int a[5]={1,2};
D.char a[5]="Hello";
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";
C.int a[2][4]={{1,2,3},{4,5},{6}};
D.int a[][3]={{1,0,1}{},{1,1}};
30.若有说明: int a[3][4]={0};则下面正确的叙述是().
A.只有元素a[0][0]可得到初值0
B.此说明语句不正确
C.数组a中各元素都可得到初值,但其值不一定为0
D.a(2)(1)
28.若有说明int a[3][4];则a数组元素的非法引用是().
A.a[0][2*1]
B.a[1][3]
C.a[4-2][0]
D.a[0][4]
29.以下能对二维数组a进行正确初始化的语句是().
A.int a[2][]={{1,0,1},{5,2,3}};
B.int a[][3]={{1,2,3},{4,5,6}};
A.3
B.4
C.5
D.6
45.若有说明:int a[20];,则对a数组元素的正确引用是()
A.a[20]
B.a[3,5]
C.a(5)
D.a[10-10]
46.若有说明:int a[3][4];,则对a数组元素的正确引用是()
A.a[2][4]
B.a[1,3]
C.a[1+1][0]
D.a(2)(1)
D.数组a中每个元素均可得到初值0
31.若有说明: int a[][4]={0,0};则下面不正确的叙述是().
A.数组a的每个元素都可得到初值0
B.二维数组a的第一维大小为1
C.因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1
D.有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
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;
B.15
C.6
D是()
A.char str[]="string";
B.char str[7]={'s','t','r','i','n','g'};
C.char str[10]; str="string";
D.char str[7]={'s','t','r','i','n','g','\0'};
47.以下关于数组的描述正确的是()
A.数组的大小是固定的,但可以有不同类型的数组元素
B.数组的大小是可变的,但所有数组元素的类型必须相同
C.数组的大小是固定的,所有数组元素的类型必须相同
D.数组的大小是可变的,可以有不同类型的数组元素
48.字符串"I am a student."在存储单元中占()个字节.
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();
42.程序中调用了库函数strcmp(),必须包含头文件()
A.math.h
B.string.h
C.ctype.h
D.stdlib.h
43.在C语言中,引用数组元素时,其数组下标的数据类型允许是()
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
44.对于所定义的二维数组a[2][3],元素a[1][2]是数组的第()个元素
A.2
B.3
C.4
D.无确定值
19.若二维数组a有m列,则在a[i][j]前的元素个数为().
A.j*m+i
B.i*m+j
C.i*m+j-1
D.i*m+j+1
20.若有说明:int a[3][4];则数组a中各元素().
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
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、……的语句是().
单选:
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];
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数组的是().