参考答案和解析
正确答案:B
更多“若有定义和语句: int a[10]={1,2,3,4,5,6,?,8,9,10},* p=a; 则不能表示a数组元素的表达式是 ( ”相关问题
  • 第1题:

    若有定义语句int b=2;,则表达式(b<<2)/(3||b)的值是( )。A.4B.8C.0D.2

    若有定义语句int b=2;,则表达式(b<<2)/(3||b)的值是( )。

    A.4

    B.8

    C.0

    D.2


    正确答案:B
    2的二进制数为010,移两位后的二进制数为01000,转成十制数为8,(3||2)为真即1,8/ 1=8,所以结果为8。

  • 第2题:

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

  • 第3题:

    若有以下定义和语句,则对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则指向了第二行的第二个数据元素,其他几个选项都不正确。

  • 第4题:

    若有如下定义,则__________是对数组元素的正确的引用。. int a[10] , *p ; p=a ;

    A.*&a[10]

    B.a[11]

    C.*(p+11)

    D.*p *p *p


    正确答案:D

  • 第5题:

    若有定义int a[10],*p=a,则p+6表示( )。

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

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

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

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


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

  • 第6题:

    若有定义int a[2][3],*p=a;则以下不能表示数组元素a[1][2]的是()

    A.*(a[1]+2)

    B.*(p[1]+2)

    C.p[5]

    D.*(p+5)


    参考答案:B

  • 第7题:

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

  • 第8题:

    若有定义语句“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开始的。

  • 第9题:

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

  • 第10题:

    若有定义:int a[10],*p; 则*(p+5)表示()。

    • A、元素a[5]的值
    • B、元素a[5]的地址
    • C、元素a[6]的值
    • D、元素a[6]的地址

    正确答案:A

  • 第11题:

    若有以下定义和语句,inta[10],*p1;p1=a;则能正确表示a数组元素的表达式是()

    • A、a
    • B、p1+5
    • C、*p1
    • D、&a[5]

    正确答案:C

  • 第12题:

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

    *(a+=3)

    B

    *(p+=3)

    C

    *(a+3)

    D

    p[3]


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

  • 第13题:

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

    A.*ia

    B.a[10]

    C.*a

    D.a[ia-a]


    正确答案:B

  • 第14题:

    若有定义:int x[10], *p=x;,则*(p+5)表示( )。

    A.数组元素x[5]的地址

    B.数组元素x[5]的值

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

    D.数组元素x[6]的值

    E.选项内容11

    F.选项内容11

    G.选项内容11


    参考答案B

  • 第15题:

    若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是int w[10] = {23,54,10,33,47,98,72,80,61},*p = w;


    正确答案:p[5](或*(p + 5))
    98是数组w的第5个元素(最开始的为第0个),而通过*p=w已经将p指向了数组w,要想不移动指针p而引用数据元素98,可以有以下两种方法:p[5]、*(p + 5)。

  • 第16题:

    若有定义“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]的地址。

  • 第17题:

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

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

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

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

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

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


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

  • 第18题:

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

  • 第19题:

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

  • 第20题:

    若有以下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个元素的地址,显然这不是对数组元素的正确引用。

  • 第21题:

    若有定义int a[2][3],*p=a;则以下不能表示数组元素a[1][2]的是()

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

    正确答案:B

  • 第22题:

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

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

    正确答案:A

  • 第23题:

    单选题
    若有定义int a[2][3],*p=a;则以下不能表示数组元素a[1][2]的是()
    A

    *(a[1]+2)

    B

    *(p[1]+2)

    C

    p[5]

    D

    *(p+5)


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