第九部分:二维数组与指针
一、选择题
(1)有以下程序
main()
{
int a[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)
p[i]=i;
for(i=0;i<3;i++)
printf("%d ",a[1][i]);
}
程序运行后的输出结果是
  A)0 1 2
  B)1 2 3
  C)2 3 4
  D)3 4 5
(2)有以下程序
main()
{ int a[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2;i++)
{ ptr=a+i;
scanf("%d",ptr);
ptr++;
}
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("%2d",a[i][j]);
printf("\n");
}
}
若运行时输入:1 2 3<回车>,则输出结果为
  A)产生错误信息
  B)1 0
    2 0
    0 0
  C)1 2
    3 0
    0 0
  D)1 0
    2 0
    3 0
(3)有以下程序
main()
{
int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{
for(j=1;j<=i;j++) printf("%c",' ');
for(j= j<4;j++) printf("%4d",num[i][j]);
printf("\n");
}
}
若要按以下形式输出数组右上半三角
1 2 3 4
6 7 8
11 12
16
则在程序下划线处应填入的是
  A) i-1
  B) i
  C) i+1
  D) 4-i
(4) 以下能正确定义二维数组的是
  A) int a[][3];
  B) int a[][3]= {2*3};
  C) int a[][3]={};
  D) int a[2][3]={{1},{2},{3,4}};
(5) 若有以下说明和语句,int c[4][5],(*p)[5];p=c;能正确引用c数组元素的是
  A) p+1
  B) *(p+3)
  C) *(p+1)+3
  D) *(p[0]+2))
(6) 有以下定义和语句
int a[3][2]={1,2,3,4,5,6,},*p[3];
p[0]=a[1];
则*p[0]+1)所代表的数组元素是
  A) a[0][1] 指针与二维数组
  B) a[1][0]
  C) a[1][1]
  D) a[1][2]
(7) 有以下程序
int f(int b[][4])
{ int i,j,s=0;
for(j=0;j<4;j++)
{ i=j;
if(i>2) i=3-j;
s+=b[i][j];
}
return s;
}
main( )
{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
printf(“%d\n”,f(A) );
}
执行后的输出结果是
  A) 12
  B) 11
  C) 18
  D) 16
(8) 以下不能正确定义二维数组的选项是
  A) int a[2][2]={{1},{2}};
  B) int a[][2]={1,2,3,4};
  C) int a[2][2]={{1},2,3};
  D) int a[2][]={{1,2},{3,4}};
(9) 若有定义:int *p[3];, 则以下叙述中正确的是
  A) 定义了一个基类型为int的指针变量p,该变量具有三个指针
  B) 定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针

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