更多“若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是(  )。”相关问题
  • 第1题:

    设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是( )。

    A.a[0];

    B.a[A.length-1];

    C.a[3];

    D.int i=1; a[i];


    参考答案:C

  • 第2题:

    若有定义语句“intm[]={5,4,3,2,1),i=4;”则下列对m数组元素的引用中错误的是( )。A.m[--i]SXB

    若有定义语句“intm[]={5,4,3,2,1),i=4;”则下列对m数组元素的引用中错误的是( )。

    A.m[--i]

    B.m[2*2]

    C.m[m[o]]

    D.m[m[i]]


    正确答案:C
    C。【解析】数组的下标是从零开始的。一维数组的一般定义方式为数型说明符数组名[常置表达式],其中“[]”中的内容可以是整型数量,也可以是整型表达式。选项C中,m[0]=5,m[m[o]]=m[5],数组下标越界。

  • 第3题:

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

  • 第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 s[4][5],(*ps)[5]; ps=s; 则对s数组元素的正确引用形式是( )。

    A.ps+1

    B.*(ps+3)

    C.ps[0][2]

    D.*(ps+1)+3


    正确答案:C

  • 第6题:

    若有定义语句:int m[]={1,2,3,4,5},i=4;,则下面对m 数组元素的引用中错误的是A.m[++i] B.m[1*2] C.m[m[0]] D.m[m[--i]]


    正确答案:A
    本题考查一维数组的引用。一维数组表示为数组名[下标],下标可以是整型常量或整型表达式,题目中给出的四个选项,在格式上都是正确的。A选项中,首先进行++i运算,运算的结果为5,而该数组初始化后有效取值范围为m[0]~m[4],m[5]不存在,引用错误。B选项引用的是m[2]中的数值3。C选项先计算m[0]中的数据,得到1,随后计算m[1]中的数值,可得2。D选项先计算m[--i],得到m[3]中的数据4,随后计算m[4]中的数值,可得5。

  • 第7题:

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

  • 第8题:

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

  • 第9题:

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

    A.a[i]

    B.a[5]

    C.p[4]

    D.p[i]


    正确答案:B

  • 第10题:

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


    正确答案:C
    C

  • 第11题:

    有定义语句:int[,]a=new int[5,6]; 则下列正确的数组元素的引用是()。

    • A、a(3,4)
    • B、a(3)(4)
    • C、a[3][4]
    • D、a[3,4]

    正确答案:C

  • 第12题:

    单选题
    若有定义语句: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选项。

  • 第13题:

    若有定义:int a[3][4],则正确引用数组 a 元素的是( ) 。

    A. a[2][4]

    B. a[3][3]

    C. a[0][0]

    D. a[3][4]


    正确答案:C

  • 第14题:

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

    A.*(w[0]+2)

    B.*pw[2]

    C.pv[0][0]

    D.*(pw[1]+2)


    正确答案:B

  • 第15题:

    若有说明int m[3][4]={3,9,7,8.5},(*q)[4];和赋值语句q=m;,则对数组元素m[i][j](其中O<=i<3,0<=j<4)值的正确引用为( )。

    A)(q i)[j]

    B)*q[il][j]

    C)*(*q[i] j)

    D)*(*(q i) j)


    正确答案:D
    (q i)指向第i行首地址, (*(q i) j)代表第i行第i个元素。

  • 第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题:

    若有说明int m[3][4]={3,9,7,8.5},(*q)[4];和赋值语句q=m;,则对数组元素m[i][j](其中0<=i<3,0<=j<4)值的正确引用为( )。

    A.(q+i)[j]

    B.*q[i][j]

    C.*(*q[i]+j)

    D.*(*(q+i)+j)


    正确答案:D
    解析:*(q+i)指向第i行首地址,*(*(q+i)+j)代表第i行第j个元素。

  • 第18题:

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

  • 第19题:

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

  • 第20题:

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

  • 第21题:

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

  • 第22题:

    若有定义:“int x[10],*p,p=x;”,则在程序中引用数组元素x[i]的四种形式中,除了x[i]、p[i]和*(p+i)以外,还有()


    正确答案:*(x+i)

  • 第23题:

    有定义语句: int[,] a=new int[5,6];  则下列正确的数组元素引用是()

    • A、 a(3,4)
    • B、 a(3)(4)
    • C、 a[3][4]
    • D、 a[3,4]

    正确答案:D

  • 第24题:

    单选题
    以下叙述中错误的是(  )。
    A

    同一个数组中所有元素的类型相同

    B

    不可以跳过前面的数组元素给后面的元素赋初值0

    C

    定义语句int a[10]={0};给a数组中所有元素赋初值0

    D

    若有定义语句int a[4]={1,2,3,4,5};,编译时将忽略多余的初值


    正确答案: B
    解析:
    一维数组初始化时,不可能跳过前面的元素给后面的元素赋初值,当所赋初值少于所定义数组的元素个数时,将自动给后面的元素补以初值0,当所赋初值多于所定义数组的元素个数时,在编译时将给出出错信息。答案选择D选项。