要求定义一个具有6个元素的int型一维数组,以下选项中错误的是

A)int a[ ]={1,2,3,4,5,6}; B) int a[2*3]={0};
C)#define N 3 D) #define N 6
int a[N+N]; int *a[N];

有以下程序:
main( )
{ int i,sum;
for(i=1; i<5;i++,i++) sum+=i;
printf("%d\n",sum); }
程序的输出结果是( )
A) 随机值 B)10 C)4 D) 9

第一个题选D
A:虽然没有在[ ]内指定数组的长度,但是它在定义的时候直接赋值,这样是可以的,也就是说此事数组的长度默认为现有的元素个数,即为6;
B:在[ ]内指定数组长度的时候可以是常量,也可以是一个常量表达式,这里程序会先计算2*3的值,也就是6,作为数组的长度,后面赋值的0会自动分配给a[0];
C:通过宏定义的变量N就被视为常量3,这样的话,它和B选项的解释是一样的;
D:错误是因为它定义的并不是int型的一维数组,而是定义了一个int型的指针数组追问

定义一个具有6个元素的int型一维数组 不是应该是a[0]到a[5]吗

追答

追问

BCD不都是a[6]吗 都已经超出了

追答

BCD 都是在进行定义,int a[6]中的6只是指明了数组的长度,并不是说有这个元素!你还是先看看书吧!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-18
B ,..A ,,因为sum没有赋值,其原来数据为随机数。。追问

第一题能具体说一下嘛