有以下程序 #include main() {inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},(*p)[4]=a,i,j,k=0; for(i=0;i<3;i++) for(j=0;j<2;j++)k=k+*(*(p

admin2015-07-31  24

问题 有以下程序
#include
main()
{inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},(*p)[4]=a,i,j,k=0;
for(i=0;i<3;i++)
for(j=0;j<2;j++)k=k+*(*(p+i)+j);
printf("%d\n",k);
}
程序运行后的输出结果是

选项 A、108
B、68
C、99
D、60

答案D

解析 该题首先给二维数组赋值a[3][4]={{1,3,5,7}{9,11,13,15}{17,19,21,23}};(*p)[4]=a指针p指向二维数组a的首地址,接下来执行for循环,首先 i=0,j=0时k=k+*(*(p+0)+0)=1(a[0][0]);然后 i=0,j=1时k=k+*(*(p+0)+1)=4(a[0][1]);然后j=2时,跳出j的循环,执行i的循环i=1,j=0 时k=k+*(*(p+1)+0)=13(a[1][0]);依次类推一直到i=3时跳出全部循环。循环语句在这里的功能是累加二维数组第1列和第2列的元素,累加结果为60。
转载请注明原文地址:https://kaotiyun.com/show/NbDp777K
0

最新回复(0)