第九部分:二维数组与指针
一、选择题
(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小时内删除。
发表评论