itgle.com

设有以下定义: int a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int (*ptr)[3] = a; int *p = a[0]; 则以下能够正确表示数组元素a[1][2]的表达式是A.*(*(ptr + 1) + 2)B.*((*ptr + 1) + 2)C.*(*(p + 5))D.(*ptr + 1) + 2

题目

设有以下定义: int a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int (*ptr)[3] = a; int *p = a[0]; 则以下能够正确表示数组元素a[1][2]的表达式是

A.*(*(ptr + 1) + 2)

B.*((*ptr + 1) + 2)

C.*(*(p + 5))

D.(*ptr + 1) + 2


相似考题
更多“设有以下定义: int a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int (*ptr)[3] = a; int *p = a[0]; 则以下能够正确表示数组元素a[1][2]的表达式是”相关问题
  • 第1题:

    若已定义以下语句,其中0≤i≤9,则对a数组元素不正确的引用为______。 int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;

    A.a[p-a]

    B.*(&a[i])

    C.p[i]

    D.a[10]


    正确答案:D

  • 第2题:

    有以下定义和语句

    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]


    正确答案:C
    解析:本题中a为三维数组,其中a[0],a[1],a[2]分别代表它的三维(的首指针),p为一个一维指针数组,含有3个元素,每两行代码把数组的第二维的首指针赋值给指针数组的第一个值,所 以,*  (p[0]  +1)即取p[0]所指数组的第二个值,即为数组a的第二维的第二个值,即为a[1] [1]。

  • 第3题:

    以下程序的输出结果是includeint a[3][3]={1,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)ma

    以下程序的输出结果是 #include<stdio.h> int a[3][3]={1,2,3,4,5,6,7,8,9,},*p; main() { p=(int*)malloc(sizeof(int)); f(p,a); printf("%d\n”,*p); free(p);} f(int *s,intp [][3]) { *s=p[1][1];}

    A.1

    B.4

    C.7

    D.5


    正确答案:D
    解析: 本题考查了二维数组元素引用的方法。题中用动态存储分配函数malloc分配了一个int型数据长度大小的内存,然后指针p指向了这段内存,函数f()中对p所指向的数据进行了赋值,p[1][1]为二维数组第二行第二列的元素,对应于实参a的元素5,所以输出结果为5。

  • 第4题:

    有以下定义: int a[4] [3]={1,2,3,4,5,6,7,8,9.10,11,12}; int(*ptr)[3]=a,*p=a[0]; 则下列能够正确表示数组元素a[1][2]的表达式是( )。

    A.*((*ptr+1}+2)

    B.*(*(p+5))

    C.(*ptr+1)+2

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


    正确答案:C
    解析:本题定义了一个二维数组a,一个含有3个元素的指针数组ptr和一个指针变量p,并使指针数组和指针变量p指向数组a。

  • 第5题:

    设有以下定义和语句: 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.s[1][1]

    D.a[1][2]


    正确答案:C
    解析:*p[3]是指针数组,它由3个指向整型数据的指针元素组成,p[0]=a[1]是将a数组第一行的首地址赋给第0个指针元素,p[0]+1表示a[1]+1即a[1][1]的地址,所以*(p[0]+1)表示a[1][1]。

  • 第6题:

    设有以下定义: int a[3][3]={1,2,3,4,5,6,7,8,9}; int(*ptr)[3]=a; 则下列能正确表示数组元素a[1][2]的表达式是______。

    A.*((*ptr+1)[2])

    B.a[2][3]

    C.(*ptr+1)+2

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


    正确答案:D
    解析:指针变量ptr是指向长度为3的整型一维数组,当ptr指向二维数组a时,ptr每移动一个单位将指向数组的下一行,*(*(a+1)+2)表示数组元素a[1][2],*(*(ptr+1)+2)也可以。

  • 第7题:

    设有以下定义和语句 int a[3][2]={1,2,3,4,5),*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]


    正确答案:C

  • 第8题:

    设有以下定义: int a[3][3]={1,2,3,4,5,6,7,8,9}; int(*Ptr)[3]=a,*p=a[0]; 则下列能够正确表示数组元素a[1][2]的表达式是_______。

    A.*((*ptr+1)[2])

    B.*(*(p+5))

    C.(*ptr+1)+2

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


    正确答案:D
    解析:*(p+5)所指向的数组元素是a[1][2],所以B不对;ptr所指向的是—个含有三个元素的一维数组,所以A和C是错误的。

  • 第9题:

    设有以下定义: inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int(*ptr)[3]=a,*p=a[0]; 则下列能够正确表示数组元素a[1][2]的表达式是()。

    • A、*((*ptr+1)[2])
    • B、*(*(p+5))
    • C、(*ptr+1)+2
    • D、*(*(a+1)+2)

    正确答案:D

  • 第10题:

    已知int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;不能表示数组a中元素的式子是()

    • A、*a
    • B、*p
    • C、a
    • D、a[p-a]

    正确答案:C

  • 第11题:

    单选题
    设有定义:int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a,i;若0≤i≤9,则对a数组元素的引用错误的是(  )。
    A

    a[10]

    B

    *(&a[i])

    C

    p[i]

    D

    a[p-a]


    正确答案: B
    解析:
    长度为n的数组其各个元素的下标应该是从0到n-1,因此,长度为10的数组a,第10个元素为a[9],而不是a[10],答案选择A选项。

  • 第12题:

    单选题
    设有以下语句,则()是对a数组元素的不正确引用,其中0<=i<10。 int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
    A

    a[p-a]

    B

    *(&a[i])

    C

    p[i]

    D

    *(*(a+i))


    正确答案: A
    解析: 暂无解析

  • 第13题:

    设有以下定义和语句 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[l][2]


    正确答案:C
    解析:本题中首先定义了一个3行2列的数组a,一个长度为3的指针数组p,接着把地址a[1]赋给P[1]此时p[0]为a[1][0]的地址,p[0]+1为a[1][1]的地址,故*(p[0]+1)代表的元素为s[1][1]。所以,4个选项中选项C符合题意。

  • 第14题:

    以下程序的输出结果是includeint a[3][3]={1,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)ma

    以下程序的输出结果是 #include<stdio.h> int a[3][3]={1,2,3,4,5,6,7,8,9,},*p; main() { p=(int*)malloc(sizeof(int)); f(p,a); printf("%d\n",*p); free(p);} f(int *s, int p[][3]) { *s=p[1][1];}

    A.1

    B.4

    C.7

    D.5


    正确答案:D
    解析:本题考查了二维数组元素引用的方法。题中用动态存储分配函数malloc分配了一个int型数据长度大小的内存,然后指针p指向了这段内存,函数f()中对p所指向的数据进行了赋值,p[1][1]为二维数组第二行第二列的元素,对应于实参a的元素5,所以输出结果为5。

  • 第15题:

    设有以下语句,则()是对a数组元素的不正确引用,其中0<=i<10。int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

    A.a[p-a]

    B.*(&a[i])

    C.p[i]

    D.*(*(a+i))


    参考答案:D

  • 第16题:

    若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},* p=a则不能表示a数组元素的表达式是 ( )

    A.* p

    B.a[10]

    C.* a

    D.a[p-a]


    正确答案:B

  • 第17题:

    若有以下定义和语句,且0<=I<10,则对数组元素的错误引用是 ( )

    int a [ ]={1,2,3,4,5,6,7,8,9,0};

    int*p,I

    p=a;

    A.* (a+I)

    B.a[p-a]

    C.p+I

    D.* (&a[I])


    正确答案:C

  • 第18题:

    有以下程序 include void fun(int *a,int n)/*fun函数的功能是将a所指数组元素从大到

    有以下程序

    #include <stdio.h>

    void fun(int *a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/

    { int t,i,j;

    for(i=0;i<n-1;j++)

    for(j=i+1;j<n;j++)

    if(a[i]<a[j]) { t=a[i];a[i]=a[j];a[j]=t;}

    }

    main( )

    { int c[10]={1,2,3,4,5,6,7,8,9,0},i;

    fun(c+4,6);

    for(i=0;i<10;i++) printf("%d,",c[i]);

    printf("\n");

    }

    程序的运行结果是

    A.1,2,3,4,5,6,7,8,9,0,

    B.0,9,8,7,6,5,1,2,3,4,

    C.0,9,8,7,6,5,4,3,2,1,

    D.1,2,3,4,9,8,7,6,5,0,


    正确答案:D
    解析:在本题中,主函数在调用fun( )函数进行排序时,传递的参数是c+4和6,fun( )函数实现的功能是将数组c的第5个元素开始的6个元素依次进行从大到小的顺序排列。排序之后,数组c的内容变为{1,2,3,4,9,8,7,6,5,0}。

  • 第19题:

    若有int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};int(*q)[3]=a,*p a[0];则能够正确表示数组元素 a[1][2]的表达式是 ______。

    A.*((*q+1)[2])

    B.*(*(p+5))

    C.(*q+1)+2

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


    正确答案:D

  • 第20题:

    若有以下程序段,其中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

    正确答案:D

  • 第21题:

    以下数组定义中错误的是()

    • A、int x[][3]={0};
    • B、int x[2][3]={{1,2},{3,4},{5,6}};
    • C、int x[][3]={{1,2,3},{4,5,6}};
    • D、int x[2][3]={1,2,3,4,5,6};

    正确答案:B

  • 第22题:

    设有以下语句,则()是对a数组元素的不正确引用,其中0<=i<10。 int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

    • A、a[p-a]
    • B、*(&a[i])
    • C、p[i]
    • D、*(*(a+i))

    正确答案:D

  • 第23题:

    单选题
    设有以下定义:int a[4][3]= 11,3,5.9.11,13,15,17,19,21,23,251 ;int( *pr)[3]=a,*p=a[0] ;则下列能够正确表示数组元素a[1][2]的表达式是()
    A

    *((*prt+1)[2])

    B

    *(*(p+5))

    C

    *prt+1)+2

    D

    *(*(a+1)+2)


    正确答案: C
    解析: 暂无解析

  • 第24题:

    单选题
    设有以下定义: inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int(*ptr)[3]=a,*p=a[0]; 则下列能够正确表示数组元素a[1][2]的表达式是()。
    A

    *((*ptr+1)[2])

    B

    *(*(p+5))

    C

    (*ptr+1)+2

    D

    *(*(a+1)+2)


    正确答案: A
    解析: 暂无解析