【正确答案】
C
【答案解析】在对数组进行初始化时应该注意,如果对数组的全部元素赋以初值,定义时可以不指定数组长度,如果被定义数组的长度与初值个数不同,则数组长度不能省略;如果在说明数组时给出了长度,但没有给所有的元素赋予初始值,而只依次给前面的几个数组元素赋予初值,那么C语言将自动对余下的元素赋初值。定义整型数组a,长度为8,并且其每个元素赋初值0,a定义是合法的。定义整型数组b,没有指定长度,但为1个元素赋值0,所以自动指定数组长度为1,b定义是合法的。定义字符型数组c,长度为2,应对其元素赋值字符型常量,而“A”与“B”均为字符串,c定义不合法。定义字符d,赋初值字符串“A B”,这是不合法的定义,若要定义数组,必须要有“[]”,下标运算符。可知,ab定义合法,cd定义不合法,故C选项正确。