第四章 数组

一. 选择题
1.若有语句int a[8];则下述对a 的描述正确的是(  )。
A)定义了一个名称为a的一维整型数组,共有8个元素
B)定义了一个数组a,数组a共有9个元素
C)说明数组a的第8个元素为整型变量
D)以上可选答案都不对
2.C语言中,引用数组元素时,其数组下标的数据类型允许是(  )。
A)整型常量
B)整型表达式
C)整型常量或整型表达式
D)任何类型的表达式
3.下述对C语言字符数组的描述正确的是(  )。
A)任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占用存储空间
B)一维数组的元素在引用时其下标大小没有限制
C)任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间
D)一维数组的第一个元素是其下标为1的元素
4.下述对C语言字符数组的描述中正确的是(  )。
A)任何一个一维数组的元素在引用时,其下标可以是整型、实型或字符型常量
B)一维数组的元素实质上就是一个变量,代表内存中的一个存储单元
C)如果要引用数组中的每一个元素,则直接使用该数组名称即可
D)以上都不对
5.以下对一维整型数组a的正确说明是(  )。
Aint a(10);  (B)int n=10,a[n];  (C) int n;                  (D) #define SIZE 10
                                  scanf(“%d”,&n);            int a[SIZE];
                                  int a[n];
6.以下能对一维数组a进行正确初始化的语句是( 
Aint a[10]=(0,0,0,0,0);Bint a[10]={};Cint a[]={0};Dint a[10]=(10*1);
7.若有说明:int a[3][4];则对a数组元素的正确引用是( 
Aa[2][4] Ba[1,3] Ca[1+1][0] Da(2)(1)
8.以下能对二维数组a进行正确初始化的语句是( 
Aint a[2][]={{1,0,1},{5,2,3}};Bint a[][3]={{1,2,3},{4,5,6}};
Cint a[2][4]={{1,2,3},{4,5},{6}};Dint a[][3]={{1,0,1}{},{1,1}};
9.若有说明:int a[3][4]={0};则下面正确的叙述是( 
A)只有元素a[0][0]可得到初值0B)此说明语句不正确
C)数组a中各元素都可得到初值,但其值不一定为0
D)数组a中每个元素均可得到初值0
10.以下各组选项中,均能正确定义二维实型数组a的选项是( 
Afloat a[3][4]; float a[][4]; float a[3][]={{1},{0}};
Bfloat a(3,4); float a[3][4]; float a[][]={{0};{0}};
Cfloat a[3][4]; static float a[][4]={{0},{0}};
Dfloat a[3][4]; float a[3][];
11.若二维数组am列,则计算任一元素a[i][j]在数组中位置的公式为( 
(假设a[0][0]位于数组的第一个位置上。)
Ai*m+jBj*m+iCi*m+j-1Di*m+j+1
12.对以下说明语句的正确理解是( 
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)因为数组长度与初值的个数不相同,语句有错
13.若有说明:int a[][3]={1,2,3,4,5,6,7};a数组第一维的大小是( 
A2 B3 C4 D)不确定
14.定义如下变量和数组:
int I;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是( 
for(I=0;I<3;I++)
printf(“%d”,x[I][2-I]);
A1 5 9B1 4 7C3 5 7D3 6 9

15下面程序的运行结果是( 
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(“%2d”,a[I][j]);
  printf(“\n”);}
}
A1 1 1 1 1  B0 0 0 0 1  C1 0 0 0 0  D1 0 0 0 1
1 1 1 1 1        0 0 0 1 0        0 1 0 0 0      0 1 0 1 0
1 1 1 1 1        0 0 1 0 0        0 0 1 0 0      0 0 1 0 0
1 1 1 1 1        0 1 0 0 0        0 0 0 1 0      0 1 0 1 0
1 1 1 1 1        1 0 0 0 0        0 0 0 0 1      1 0 0 0 1

16.下面程序的运行结果是( 
main()
{int a[6];
for(I=1;I<6;I++)
  {a[I]=9*(I-2+4*(I>3))%5;
    printf(“%2d”,a[I]);
  }
}
A-4 0 4 0 4B-4 0 4 0 3C-4 0 4 4 3D-4 0 4 4 0
17.下列定义正确的是( 
Astatic int a[]={1,2,3,4,5}Bint b[2]={2,5,7}Cint a(10)Dint 4e[4]
18.若有说明:int a[][4]={0,0};则下列叙述不正确的是( 
A)数组a的每个元素都可得到初值0B)二维数组a的第一维的大小为1
C)因为对二维数组a的初值个数除以第二维的大小,商为0,所以数组a的行数为1
D)只有元素a[0][0]a[0][1]可得到初值0,其余元素均得不到初值
19.设有char str[10],下列语句正确的是( 
Ascanf(“%s”,&str);Bprintf(“%c”,str);Cprintf(“%s”,str[0]);Dprintf(“%s”,str);
20.以下语句定义正确的是( 
Aint a[1][4]={1,2,3,4,5};Bfloat x[3][]={{1},{2},{3}};
Clong b[2][3]={{1},{1,2},{1,2,3}};Ddouble y[][3]={0};
21下列的说法正确的是( 
A)在C语言中,可以使用动态内存分配技术,定义元素个数可变的数组
B)在C语言中,数组元素的个数可以不确定,允许随机变动
C)在C语言中,数组元素的数据类型可以不一致
D)在C语言中,定义了一个数组后,就确定了它所容纳的具有相同数据类型元素的个数
22.假设array是一个有十个元素的整型数组,则下列写法中正确的是( 
Aarray[0]=10Barray=0Carray[10]=0Darray[-1]=0
23.若用数组名作为函数调用的实参,传递给形参的是( 
A)数组的首地址(B)数组的第一个元素的值
C)数组中全部元素的值(D)数组元素的个数
24.若使用一维数组名作函数实参,则以下正确的说法是( 
A)在被调函数中,与该实参相对应的形参必须是指针型变量
B)实参数组类型与形参类型可以不匹配
C)在被调函数中,不需要考虑形参数组的大小
D)实参数组名与形参数组名必须一致
25.下述对C语言字符数组的描述错误的是( 
A)字符数组可以存放字符串(B)字符数组中的字符串可以整体输入、输出
C)可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较
26.设有char str1[10], str2[10],c1; 则下列语句正确的是( 
Astr1 = {“china”}; str2 = str1;Bc1=”ab”;
Cstr1 = {“china”}; str2 = {“people”}; strcpy(str1,str2);Dc1=’a’;
27.以下能正确进行字符串赋值、赋初值的语句组是( 
Achar s[5] = {‘a’,’b’,’c’,’d’,’e’};Bchar *s; s=”abcde”;
Cchar s[5] = “abcde”;Dchar s[5]; s = “abcd”;
28.下列语句的执行结果是( 
static char str[10] = “china”;
printf(“%d”,strlen(str));
A10 B6 C5 D0
29合法的数组定义是( 
Aint a[] = “language”;Bint a[5]={0,1,2,3,4,5};
Cchar a=”string”;Dchar a[]={“0,1,2,3,4,5”};
30.若有以下程序片段:
char str[] = “ab\n\012\\\””;
数组全部赋值为1printf(“%d”,strlen(str));
则输出结果是()
ABCD12 
31.库函数strcpy用以复制字符串。若有以下定义和语句:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。