第六章数 组
6.1 选 择 题
[题6.1]在C语言中,引用数组元素时,其数组下标的数据类型允许是_____.
A)整型常量 B)整型表达式 C)整型常量或整型表达式 D)任何类型的表达式 [题6.2]以下对一维整型数组a的正确说明是_____。 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];
[题6.3]若有说明:int a[l0];则对a数组元素的正确引用是_____。
A) a[10] B)a[3.5] C)a(5) D)a[10-10] [题6.4]在C语言中,一维数组的定义方式为: 类型说明符 数组名_____。
A)[常量表达式] B)[整型表达式] C)[整型常量]或[整型表达式] D)[整型常量]
[题6.5]以下能对一维数组a进行正确初始化的语句是_____。 A)int a[l0]=(0,0,0,0,0); B)int a[l0]={}; C)int a[]={0}; D)int a[10]={10*1}; [题6.6]以下对二维数组a的正确说明是_____。
1
A)int a[3][]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4);
[题6.7]若有说明:int a[3][4];则对a数组元素的正确引用是_____。
A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1)
[题6.8]若有说明:int a[3][4];则对a数组元素的非法引用是_____。
A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4]
[题6.10]以下不能对二维数组a进行正确初始化的语句是_____。
A)int a[2][3]={0};
B)int a[][3]={{1,2},{0}};
C)int a[2][3]={{l,2},{3,4},{5,6}}; D)int a[][3]={1,2,3,4,5,6};
[题6.11]若有说明:int a[3][4]={0};则下面正确的叙述是_____。
A)只有元素a[0][0]可得到初值0 B)此说明语句不正确
C)数组a中各元素都可得到初值,但其值不一定为0 D)数组a中每个元素均可得到初值0
[题6.13]若有说明:int a[3][4];则数组a中各元素_____。
2
A)可在程序的运行阶段得到初值0 B)可在程序的编译阶段得到初值0 C)不能得到确定的初值
D)可在程序的编译或运行阶段得到初值0
[题6.14]以下各组选项中,均能正确定义二维实型数组a的选项是_____。
A)float a[3][4]; float a[][4];
float a[3][]={{l},{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]
[题6.16]下面程序____(每行程序前面的数字表示行号)。 1 main() 2 {
3 float a[10]={0.0};
3
4 int i;
5 for(i=0;i<3;i++) scanf(”%d”,&a[i]); 6 for(i=1;i<10;i++) a[0]=a[0]+a[i]; 7 printf(”%f\n”,a[0]); 8 }
A)没有错误 B)第3行有错误 C)第5行有错误 D)第7行有错误
[题6.17]下面程序中有错误的行是___(每行程序前面的数字表示行号)
1 main() 2 {
3 int a[3]; 4 int i;
5 scanf(”%d”,&a);
6 for(i=1;i<10;i++) a[0]=a[0]+a[i]; 7 printf(”a[0]=%d\n”,a[0]); 8 }
A)3 B)6 C)7 D)5
[题6.20]对以下说明语句的正确理解是___。 int a[10]={6,7,8,9,10}; A)将5个初值依次赋给a[1]至a[5]
4
B)将5个初值依次赋给a[0]至a[4] C)将5个初值依次赋给a[6]至a[l0]
D)因为数组长度与初值的个数不相同,所以此语句不正确 [题6.21]以下不正确的定义语句是___。 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’};
[题6.22] 若有说明:int a[][3]={1,2,3,4,5,6,7}; 则a数组第一维的大小是___。 A) 2 B)3 C)4 D)无确定值
[题6.23]若二维数组a有m列,则在a[i][j]前的元素个数为____。
A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+1 [题6.24]定义如下变量和数组: int k;
int a[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是__。
for(k=0;k<3;k++) printf(”%d”,a[k][2-k]); A)3 5 7 B)3 6 9 C)1 5 9 D)l 4 7
[题6.27]下面程序的运行结果是___.
5