itgle.com

若有以下定义和语句:int a[2][3],(*p)[3]=a;则对a数组元素地址的正确引用为______。A.*(p+2)B.p[2]C.p[1]+1D.(p+1)+2

题目

若有以下定义和语句:int a[2][3],(*p)[3]=a;则对a数组元素地址的正确引用为______。

A.*(p+2)

B.p[2]

C.p[1]+1

D.(p+1)+2


相似考题
更多“若有以下定义和语句:int a[2][3],(*p)[3]=a;则对a数组元素地址的正确引用为______。”相关问题
  • 第1题:

    若有定义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]。

  • 第2题:

    若有定义“int*p[3];”,则以下叙述中正确的是( )。

    A.定义了一个基类型为int的指针变量p,该变量具有3个指针

    B.定义了一个指针数组p,该数组含有3个元素,每个元素都是基类型为int的指针

    C.定义了一个名为*p的整型数组,该数组含有3个int类型元素

    D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有3个int类型元素


    正确答案:B
    解析:本题定义了一个指针数组p,每个元素都是基类型为int,它的长度为3即该数组含有3个元素。选项A、C和D都不正确,只有选项B符合题意。

  • 第3题:

    若有定义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]。

  • 第4题:

    若有以下定义和语句,则对a数组元素地址的正确引用为 int a[2][3],(*p)[3]; p=a;

    A.*(p+2)

    B.p[2]

    C.p[1]+1

    D.(p+1)+2


    正确答案:C
    解析:本题考查了通过行指针来引用二维数组元素的方法。选项C中p[1]指向了数组a的第二行,p[1]+1则指向了第二行的第二个数据元素,其他几个选项都不正确。

  • 第5题:

    若有以下定义,则对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个元素。

  • 第6题:

    若已定义以下语句,其中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

  • 第7题:

    若有以下定义和语句: 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]。

  • 第8题:

    若有定义“int b[8],*p=b;”,则p+6表示( )。A.数组元素b[6]的值B.数组元素b[6]的地址SX

    若有定义“int b[8],*p=b;”,则p+6表示( )。

    A.数组元素b[6]的值

    B.数组元素b[6]的地址

    C.数组元素b[7]的地址

    D.数组元素b[o]的值加上6


    正确答案:B
    指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中p+6指的是将指针向后移动了6个存储单元,即指向b[6],存放的是b[6]的地址。

  • 第9题:

    若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是( )。A.p=a; B.p[0]=a;

    若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是( )。

    A.p=a;

    B.p[0]=a;

    C.p[o]=&a[1][2];

    D.p[1]=&a;


    正确答案:B
    选项B表示把整型数组a[o]的指针赋给p[0]。

  • 第10题:

    若有下列定义,则对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]引用的是数组的首地址。

  • 第11题:

    若有以下定义和语句,则对w数组元素非法引用的是______。 int w[2][3],(*pw)[3];pw=w;

    A.w[0]+2

    B.*(pw+1)[2]

    C.pw[0][0]

    D.*(pw[1]+2)


    正确答案:B
    解析:选项A表示元素w[0][2],选项C表示元素w[0][0],选项D表示元素w[1][2],而选项B中pw+1表示第2行元素的地址,(pw+1)[2]相当于(pw+1)+2,表示第4行元素的地址,显然超出该二维数组的范围。

  • 第12题:

    若有下列定义,则对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]引用的是数组的首地址。

  • 第13题:

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

    A.p+1

    B.*(p+3)

    C.*(P+1)+3

    D.*(p[0]+2)


    正确答案:D
    解析:本题中定义了一个二维数组c和一个指针数组p并初始化让它指向 c,显然此时p中的各元素为地址,选项A中p+1,此时其中的1代表的长度是整个二维数组c的长度,故p+1将让p指向c数组后面的元素,故不能引用c数组中的成员,选项D中p[0]指的是指针数组中的第一个元素的地址即c的首地址,此时的1的长度代表的是数组C中一行的长度,故p[0]+2代表的是第三行的首地址,而*(p[o]+2)将代表第三行的第一个元素的地址。

  • 第14题:

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

    A.*&a[5]

    B.*a+1

    C.*(p+5)

    D.*(a+2)


    正确答案:D

  • 第15题:

    若有下列定义和语句,则对a数组元素的非法引用是()。Int a[2][3],(*pt)[3];pt=a;

    A. pt[0][0]

    B. *(pt+1)[2]

    C. *(pt[1]+2)

    D. *(a[0]+2


    参考答案B

  • 第16题:

    若有以下定义语句:int a[10]={1,2,3,4,5,6,7,8,9,10}; 则下列哪个是对该数组元素的正确引用( )

    A. a[10]

    B. a[a[3]-5]

    C. a[a[9]]

    D. a[a[4]+4]


    正确答案:D

  • 第17题:

    若有以下定义,则对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]引用的是数组的首地址。

  • 第18题:

    若有以下说明和语句: 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正确。

  • 第19题:

    若在以下定义和赋值语句,则才s数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为 int s[2][3]={0},( *p)[3]; p=s;

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

    B.*(p[i]+j)

    C.(p+i)+j

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


    正确答案:A
    解析:p+i是数组s的第i+1行的首地址,而*(p+i)则是数组第i+1行第1列的元素的地址,*(p+i)+j则是第i+1行的第j+1列的地址,*(*(p+i)+j)引用的是数组元素s[i][j]的值。注意:通过建立一个指针数组来引用二维数组元素。

  • 第20题:

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

    A.ps+1

    B.*(ps+3)

    C.ps[0][2]

    D.*(ps+1)+3


    正确答案:C

  • 第21题:

    若有下列定义,则对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]引用的是数组的首地址。

  • 第22题:

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

  • 第23题:

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

    A.p+l

    B.*(p+3)

    C.*(p+1)+3

    D.*(p[0]+2)


    正确答案: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符合题意。

  • 第24题:

    若有定义:int a[10],*p=a;则表示数组元素a[3]的错误选项是()。

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

    正确答案:A