参考答案和解析
正确答案:D
解析:本题中定义了一个二维数组c和一个指针数组p,并初始化让p指向c。显然此时p中的各元素为地址,选项A中p+1,此时其中的1代表的长度是整个二维数组c的长度,故p+l将让p指向c数组后面的元素,不能引用c数组中的成员,故选项A错误;同理选项B和选项C都不正确,选项D中p[0]指的是指针数组中的第一个元素的地址即c的首地址,此时的1的长度代表的是数组C中一行的长度,故p[0]+2代表的是第3行的首地址,而*(p[0]+2)将代表第3行的第一个元素的地址,所以,4个选项中选项D符合题意。
更多“若有以下说明和语句:int c[4][5],(*p)[5];p=c;能够正确引用c数组元素的是()。A.p+lB.*(p+3)C.*(p+ ”相关问题
  • 第1题:

    若有以下定义,则对a数组元素的正确引用是( )。 int a[5],*p=a;

    A.*&a[5]

    B.*a+1

    C.*(p+5)

    D.*(a+2)


    正确答案:D

  • 第2题:

    若有以下定义,则对a数组元素的正确引用是( )。

    int a[5],*p=a;

    A)*&a[5]

    B)*a 1

    C)*(p 5)

    D)*(a 2)


    正确答案:D
    本题考查通过指针引用数组元素。选项A)、B),没有这种引用形式;选项c),*(p 5)是引用数组的第6个元素,而数组一共有5个元素,出现越界;选项D),*(a 2)引用数组的第3个元素。

  • 第3题:

    若有以下说明和语句: int c[4] [5] ,( * p) [5]; p=e; 能够正确引用c数组元素的是( )。

    A.p+1

    B.*(p+3)

    C.*(p+1)+3

    D.*(p[0]+2)


    正确答案:D
    解析:(*p)[5]中p是一个行指针,指向一个包含5个元素的一维数组,p的值是该一维数组的首地址。当用行指针访问二维数组时,行指针每增加1,表示指针指向二维数组的下一行,此题中的p+i将指向数组的第i行。选项A)的意思是指向数组c的第1行,不是引用c数组的元素;选项B)中p+3是指向数组元素的第3行,。(P+3)是指第3行第0个元素的地址;选项C)可由对选项A)、选项B)的解释知,它指的是第1行第3列元素的地址;选项D)中p[0]+2是指第0行第2列元素的地址,再加个*就表示第0行第2列的元素,即c[0][2]。

  • 第4题:

    若有以下定义和语句: int s[4][5],(*p)[5]; p=s; 则指针对s数组中第三个元素的正确引用形式是( )。

    A.p[0][3]

    B.p[1][2]

    C.p[0][2]

    D.p[1][3]


    正确答案:C
    解析:“p=s;”语句将指针p指向数组s。而数组为二维数组,下标标识由0开始,所以第二个元素是下标为0行的2列元素,即p[0][2]。

  • 第5题:

    若有下列定义,则对a数组元素地址的正确引用是( )。 int a[5],*p=a;

    A.p+5

    B.*a+1

    C.&a+1

    D.&a[0]


    正确答案:D
    解析: 本题考查如何引用数组元素的地址。在选项A)中,p+5引用的是a[5]的地址,而数组a只有 5个元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用错误;在选项B)中,*a+1指的是将数组a的第一个元素加1;在选项C)中,这种引用方式错误;在选项D)中,&a[0]引用的是数组的首地址。

  • 第6题:

    若有定义int a[5],*p=a;则正确引用数组元素的是( )。

    A.*&a[5]

    B.*a+2

    C.*(p+5)

    D.*(a+2)


    正确答案:D

  • 第7题:

    若有下列定义,则对a数组元素地址的正确引用是( )。int a[5],*p=a;

    A.p+5

    B.a+1

    C.&a+1

    D.&a[0]


    正确答案:D
    解析:本题考查如何引用数组元素的地址。
      选项A)中,p+5引用的是a[5]的地址,而数组a只有5个元素,即a[0]、a[1],a[2]、a[3]、a[4],所以引用错误;选项B)中,*a+1指的是将数组a的第一个元素加1;选项C)中,这种引用方式错误;选项D)中,&a[0]引用的是数组的首地址。

  • 第8题:

    若有以下定义和语句,且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

  • 第9题:

    若有以下C语言语句,且0≤i<10,则对数组元素的错误引用是(29)。 int a[i]={1,2,3,4,5,6,?,8,9,0),*p,i; p=a;

    A.*(a+i)

    B.p+I

    C.a[p-a)

    D.*(&a[i])


    正确答案:B
    解析:由于C语言规定数组名代表数组中第一个元素的地址,因此选项A的*(a+i)与a[i]等价。由于指针变量p的初值为数组a的首地址,即p指向a,因此p-a的结果为0,选项C的a[p-a]相当于a[0]。对于选项D,&a[i]代表a[i]的地址,所以*(&a[i])表示该地址所指向的变量a[i]。因此选项A、C和D都能实现对数组a中元素的正确引用。对于选项B,指针变量p指向数组a的首地址,与整数值i相加后,结果仍是地址值,它表示数组a中的第i个元素的地址,显然这不是对数组元素的正确引用。

  • 第10题:

    若有下列定义,则对a数组元素地址的正确引用是( )。int a[5],*p=a;A.p+5 B.*a+1

    若有下列定义,则对a数组元素地址的正确引用是( )。

    int a[5],*p=a;

    A.p+5

    B.*a+1

    C.&a+1

    D.&a[0]


    正确答案:D
    本题考查数组元素的地址的引用。A中,p+5引用的是a[5]的地址,而数组a只有5个元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用错误(注:数组元素下标从0开始);B中,*a+1指的是将数组a的第一个元素加1;选项C中,不存在这种引用方式;D中,&a[0]引用的是数组的首地址。

  • 第11题:

    若有下列说明和语句:inta[4][5],(*p)[5];p=a;则对a数组元素的正确引用是()。

    A.p+1

    B.*(p+3)

    C.*(p+1)+3

    D.*(*p+2)


    正确答案:B

  • 第12题:

    单选题
    若有说明语句“inta[5],*p=a;”,则对数组元素的正确引用是()。
    A

    a[p]

    B

    p[a]

    C

    *(p+2)

    D

    p+2


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

  • 第13题:

    若有定义int a[9],+P=a;,则P+5表示( )。A.数组元素a[5]的值B.数组元素a[5]的地址SXB

    若有定义int a[9],+P=a;,则P+5表示( )。

    A.数组元素a[5]的值

    B.数组元素a[5]的地址

    C.数组元素a[6]的地址

    D.数组元素a[0]的值加上5


    正确答案:B
    本题考查了通过指针来引用一维数组元素的方法。题中*P=a;这一赋值语句是指针P指向了数组a的首地址,P+5是指针P向后移动了5个int类型的存储单元,所以P+5指向了数组元素a[5]。

  • 第14题:

    若有以下定义,则对a数组元素地址的正确引用是( )。int a[5],*p=a;A)p 5 B)*a 1 C)&a 1 D)&am

    若有以下定义,则对a数组元素地址的正确引用是( )。

    int a[5],*p=a;

    A)p 5

    B)*a 1

    C)&a 1

    D)&a[0]


    正确答案:D
    本题考查如何引用数组元素的地址。选项A)中,p 5引用的是af51的地址,而数组a只有5个元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用错误;选项B)中,*a 1指的是将数组a的第一个元素加1;选项C)中,这种引用方式错误;选项D)中,&a[0]引用的是数组的首地址。

  • 第15题:

    若有以下说明和语句: int c[4][5],(*p)[5]; p=C; 能够正确引用c数组元素的是 ______。

    A.p+1

    B.*(p+1)

    C.*(p+1)+3

    D.*(p[0]+2)


    正确答案:D
    解析:p是指向一个一维数组的指针,选项A、B和C中都是地址,而非数组元素。选项D正确。

  • 第16题:

    若有以下说明和语句,int c[4][5],(*p)[5];p=c;

    能正确引用c数组元素的是

    A.p+1

    B.*(p+3)

    C.*(p+1)+3

    D.*(p[0]+2))


    正确答案:B
    解析:本题中c是一个二维数组,p是一个含有5个元素的数组名和首地址,通过p可以检索数组的值。

  • 第17题:

    若有如下定义和语句: int s[4][5],(*p)[5]; p=S; 则指针对s数组中第三个元素的正确引用形式是( )。

    A.p[0][3]

    B.p[1][2]

    C.p[0][2]

    D.p[1][3]


    正确答案:C
    解析: “p=s;”语句将指针p指向数组s。而数组为二维数组,下标标识由0开始,所以第二个元素为下标为0行的2列,即p[0][2]。

  • 第18题:

    若有以下定义,则对数组元素的正确引用是( )。 int a[5],*p=a;

    A.*&a[5]

    B.(*A)2

    C.*p+4

    D.(a+2)


    正确答案:D

  • 第19题:

    若有以下说明和语句,请选出哪个是对c数组元素的正确引用_______。 int c[4][5],(*cp)[5]; cp=c;

    A.cp+1

    B.*(cp+3)

    C.*(cp+1)+3

    D.*(*cp+2)


    正确答案:D
    解析:cp=c 这个语句是将数组第0行的地址赋给了cp。cp+1使指针指向二维数组c的第一行;*(cp+3)是数组c的第三行的第0列的地址值;*(cp+1)+3是数组c的第一行第三列的地址值。

  • 第20题:

    若有定义语句“doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x”,则错误引用X数组元素的是( )。 A.*pSX

    若有定义语句“doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x”,则错误引用X数组元素的是( )。

    A.*p

    B.x[5]

    C.*(p+1)

    D.*x


    正确答案:B
    B。【解析】选项B中x[5]数组下标越界,数组的下标是从0开始的。

  • 第21题:

    若有以下语句,则对数组a元素的引用不正确的是(0≤i≤9)( )。 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
    解析:本题考查数组指针的应用。选项D)第一层括号中为数组a中第i项元素的值,外面再加指针运算符没有意义。

  • 第22题:

    若有以下定义语句: double a[5],*p=a; int i=0; 对a数组元素错误的引用是( )

    A.a[i]

    B.a[5]

    C.p[4]

    D.p[i]


    正确答案:B

  • 第23题:

    若有说明语句“inta[5],*p=a;”,则对数组元素的正确引用是()。

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

    正确答案:C