B. int y[5]={0,1,3,5,7,9};
C. char ch1[ ]={'1', '2', '3', '4', '5'};
D. char ch2[ ]={'\x10', '\xa', '\x8'};
解析:可以对一维数组的全部元素或部分元素赋初值。在对全部数组元素初始化时,数
组长度可以省略。若数组长度没有省略,则初始化列表中值的个数不能超过数组的长度。
答案:B
【例 4.3】以下对二维数组的定义中正确的是( )。
A.int a[4][]={1,2,3,4,5,6}; B. int a[][3];
C.int a[][3]= {1,2,3,4,5,6}; D. int a[][]={{1,2,3},{4,5,6}};
解析:定义二维数组时,若按一维格式初始化,则第一维的长度可以省略,此时,系统
可根据初始化列表中值的个数及第二维的长度计算出省略的第一维长度,但无论如何,第二
维的长度不能省略。没有初始化时,每一维的长度都不能省略。
答案:C
【例 4.4】假定一个 int 型变量占用两个字节,若有定义:int x[10]={0,2,4}; 则数组
x 在内存中所占字节数是( )。
A. 3 B. 6 C. 10 D. 20
解析:一维数组在内存中所占的字节数为:数组长度×sizeof(元素类型)。
答案:D
【例 4.5】以下程序的输出结果是( )。
main()
{ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
}
A. 0650 B. 1470 C. 5430 D. 输出值不定
解析:定义的数组 a 为 4 行 4 列,且前三行三列元素已初始化,根据 C 语法规定,未
初始化的元素值为 0。
答案:A
【例 4.6】以下程序的输出结果是( )。
main()
{ int m[][3]={1,4,7,2,5,8,3,6,9};int i,j,k=2;
for(i=0;i<3;i++){ printf("%d ",m[k][i]);}
}
A. 4 5 6 B. 2 5 8 C. 3 6 9 D. 7 8 9
解析:根据初始化列表中值的个数和第二维的长度,可求得第一维长度为 3。第一行的
元素值依次为 1,4,7;第二行元素值依次为 2,5,8;第三行元素值依次为 3,6,9。循
环执行三次,依次输出行标为 2 的三个元素,即第三行的 3 个元素。
答案:C
【例 4.7】以下程序的输出结果是( )。
main()
{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=0;
for(i=0;i<3;i++)
for(j=i;j<=i;j++)
t=t+b[i][b[j][j]];
printf("%d\n",t);
评论0
最新资源