若有以下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+IC.a[p-a)D.*(&a[i])

题目

若有以下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])


相似考题
更多“若有以下C语言语句,且0≤i<10,则对数组元素的错误引用是(29)。 int a[i]={1,2,3,4,5,6,?,8,9,0) ”相关问题
  • 第1题:

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

    A.pp[0][1]

    B.a[10]

    C.p[3][1]

    D.*(*(p+2)+2)


    正确答案:C

  • 第2题:

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

  • 第3题:

    若有定义语句:int u[4][10],*P,*q[4];且0≤i<4,则错误的赋值是

    A.p=a

    B.q[i]=a[i]

    C.p=a[i]

    D.p=&a[2][1]


    正确答案:A
    解析:直接将二维数组a赋给p不合法,两者类型不匹配。

  • 第4题:

    若有定义:int a[4][10];,则以下选项中对数组元素a[i][j]引用错误的是_______。 (0<=i<4,0<=j<10)

    A.*(&a[0][0]+10*i+j)

    B.*(a+i)+j

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

    D.*(a[i]+j)


    正确答案:B
    解析:本题中选项B是错误的引用,*(a+i)+j只代表了a[i][j]的地址。

  • 第5题:

    若有定义:int a[4][10];,则以下选项中对数组元素a[i][j]引用错误的是______。 (o<=i<4,0<=j<=10

    A.*(&a[0][0]+10*i+j)

    B.*(a+i)+j

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

    D.*(a[i]+j)


    正确答案:B
    解析:本题中选项B是错误的引用,*(a+i)+j只代表了a[i][j]的地址。

  • 第6题:

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

  • 第7题:

    若有以下语句,则对数组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项元素的值,外面再加指针运算符没有意义。

  • 第8题:

    若有定义:int a[4][10];,则以下选项中对数组元素a[i][i]引用错误的是______。(0<=i<4,0=i<10)

    A.*(&a[0][0]十10*i+j)

    B.*(a+i)+j

    C.*(a+i)+j)

    D.*(a[i]+j)


    正确答案:B
    解析:本题中选项B是错误的引用,*(a+i)+j只代表了a[i][j]的地址。

  • 第9题:

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

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

    正确答案:D

  • 第10题:

    设有以下语句,则()是对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

  • 第11题:

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

    a[p-a]

    B

    *(&a[i])

    C

    p[i]

    D

    *(*(a+i))


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

  • 第12题:

    单选题
    若有定义语句:int a[4][10],*P,*q[4];且0≤i<4,则错误的赋值是(  )。
    A

    p=a

    B

    q[i]=a[i]

    C

    p=a[i]

    D

    p=&a[2][1]


    正确答案: C
    解析:
    二维数组名是指向指针的指针,所以a和q都为指向指针的指针,而p为指向int类型的指针,p和a不同类型,故A选项中p=a赋值语句错误。其余选项可以正确赋值,其中D项是用取地址符&返回整数的地址,然后赋值给p。所以答案选择A选项。

  • 第13题:

    若有定义语句:int a[4][10],* P,* q[4];且0<=i<4,则错误的赋值是( )。

    A.P=a

    B.q[i]=a[i]

    C.p=a[i]

    D.p=&a[2][1]


    正确答案:A
    二维数组名是指向指针的指针,所以a和q都为指向指针的指针,而P为指向int类型的指针。所以选项A)是将一个指向int类型的指针用来指向一个指针的指针,显然是错误的。其他几个选项都是正确的赋值,其中选项D)是用&返回整数的地址,然后赋值给P。

  • 第14题:

    有以下语句,则对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项元素的值,外面再加指针运算符没有意义。

  • 第15题:

    若有以下定义语句: double a[5]; int i=0; 能正确给a数组元素输入数据的语句是 ( )

    A.scanf("%lf%lf%lf%lf%lf,a) ;

    B.for(i=0;i<=5;i++)scanf("%lf,a+i);

    C.while(i<5)scanf("%lf",&a[i++]);

    D.while(i<5)seanf("%lf,a+i);


    正确答案:C

  • 第16题:

    若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是______。

    A.m[-i]

    B.m[2*2]

    C.m[m[0]]

    D.m[m[i]]


    正确答案:C
    解析:一维数组的定义方式为:类型说明符 数组名[常量表达式]。其中“常量表达式”表示元素的个数,即数组长度。元素的下标从0开始,最大下标是元素个数减一。本题定义了一个由5个元素(m[0[到m[4])组成的数组。选项A表示对m[3]的引用;选项B表示对m[4]的引用;由于m[0]的值为5,所以选项C表示m[5],但由于m数组元素的最大下标为4,所以本引用下标越界;由于m[i]即m[4]的值为1,所以选项D表示对m[1]的引用。

  • 第17题:

    设有以下语句,则()是对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

  • 第18题:

    若有定义语句:"int a[4][10],*P,*q[4];"且0≤i<4,则错误的赋值是( )。

    A.D=a

    B.q[i]=a[i]

    C.p=a[l]

    D.P=&a[2][1]


    正确答案:A
    数组名是一个存放一个数组首地址的值,是一个地址常量。而p=a不是合法的,因为p和a的基本类型不同。

  • 第19题:

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

    A.a[i]

    B.a[5]

    C.p[4]

    D.p[i]


    正确答案:B

  • 第20题:

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


    正确答案:C
    C

  • 第21题:

    JAVA语言中,若有说明int a[10];则对a数组元素的正确的引用是()。

    • A、a[10]
    • B、a[3+1]
    • C、a(5)
    • D、a(0)

    正确答案: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))


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

  • 第23题:

    单选题
    若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是(  )。
    A

    m[--i]

    B

    m[2*2]

    C

    m[m[0]]

    D

    m[m[i]]


    正确答案: A
    解析:
    在C语言中,数组的下标是从0开始的,所以它的上限是数组元素个数减1。如果超过这个范围来引用数据元素就会溢出,造成运行时错误。本题的数组m有5个元素,所以它的下标范围是0~4。A项,--i的值为3;B项,2*2的值为4;C项,m[0]等于5,超出范围,出现溢出错误;D项,m[i]的值为4,即m[4]的值为1。答案选择C选项。