若有以下程序段,其中0<=i<4,0<=j<3,则不能正确访问a数组元素的是()int i,j,(*p)[3];int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12};p=a;A.*(*(a+i)+j)B.p[i][j]C.(*(p+i))[j]D.p[i]+j

题目
若有以下程序段,其中0<=i<4,0<=j<3,则不能正确访问a数组元素的是()int i,j,(*p)[3];int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12};p=a;

A.*(*(a+i)+j)

B.p[i][j]

C.(*(p+i))[j]

D.p[i]+j


相似考题
更多“若有以下程序段,其中0&lt;=i&lt;4,0&lt;=j&lt;3,则不能正确访问a数组元素的是()int i,j,(*p)[3];int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12};p=a; ”相关问题
  • 第1题:

    以下程序输出正确的是______。 amovep(int *p,int(*A) [3],int n) {int i,j; for(i=0;i<n;i++) for(j=0;j<n;j++){ *p=a[i][j];p++} } main() {int *p,a[3][3]={{1,3,5},{2,4,6}}; p=(int*)malloc(100); amovep(p,a,3); printf("%d%d\n",p[2],p[5]);free(p); }

    A.56

    B.25

    C.34

    D.程序错误


    正确答案:A
    解析:本题main函数中定义了指针p和二维数组a,通过函数amovep将数组的值存入指针p所指向的存储单元中,a的各元素分别为:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0。通过malloc()函数给指针分配内存空间,free()函数用于释放指针变量所用内存空间。在主函数中通过amovep(p,a,3)调用函数amovep,使得实参p与形参p,实参数组a与形参中指向数组的指针变量共用同一存储空间。最后输出p[2],p[5]为56。

  • 第2题:

    有以下程序段: int *p[3],a[6],i; for (i=0; i<3; i++) p[i]=&a[2*i] ; 则*(p[1]+1)引用的是a数组元素___________。


    a[3]##%_YZPRLFH_%##*(a+3)

  • 第3题:

    若有以下程序段,则不能正确访问数组元素a[1][2]的是()。 int (*p)[3]; int a[][3]={1,2,3,4,5,6,7,8,9}; p = a;

    A.p[1]+2

    B.p[1][2]

    C.(*(p+1))[2]

    D.*(*(a+1)+2)


    p[1]+2

  • 第4题:

    若有下面的程序片段: int[12]={0},*p[3],**pp,i; for(i=0;i<3;i) p[i]=&a[i*4]; pp=p; 则对数组元素的错误引用是


    正确答案:C
    C

  • 第5题:

    有以下程序段: int *p[3],a[6],i; for (i=0; i<3; i++) p[i]=&a[2*i] ; 则*(p[1]+1)引用的是a数组元素___________。


    a[ 0];a[3 ]