参考答案和解析
正确答案:C
更多“若有定义:int aa[8],则以下表达式中不能代表数组元素a[1]地址的是 ______。A.&aa[0]+1B.& ”相关问题
  • 第1题:

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

  • 第2题:

    设有如下定义: char * aa[2]={"abcd","ABCD"}; 则以下说法中正确的是( )

    A.aa数组元素的值分别是"abcd"和"ABCD"

    B.aa是指针变量,它指向含有两个数组元素的字符型一维数组

    C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

    D.aa数组的两个元素中各自存放了字符'a'和'A'的地址


    正确答案:C

  • 第3题:

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

  • 第4题:

    若有定义:

    则以下不能正确表示该数组元素的表达式是( )。

    A.A

    B.B

    C.C

    D.D


    正确答案:A
    本题考查的是通过指针引用二维数组元素。通过一维数组名或指向一维数组元素的指针来引用数组元素有两种写法:a[i]和*(a+i),它们是等价的。这是一种运算符之间的等价转换,就好像a一(b—c)等价于a-b+c一样。知道了这种转换,我们可以将之扩展到二维数组甚至任意维数组上来。因为口运算符的结合性是从左至右的,所以w[i珩]等价于(w[i][j],此时可以先将任意一个口运算符转换为指针形式为(·(w+i))[j]或*(w[i]+j),或者同时转换为*(*(W+i)+j)。上述几种形式都完全等价于w[il[j]。

  • 第5题:

    若有定义:intw[3][5],则以下不能正确表示该数组元素的表达式是______。

    A.*(*w+3)

    B.*(w+1)[4]

    C.*(*(w+1))

    D.*(&w[0][0]+1)


    正确答案:B
    解析: *(w+1)[4]越界了,(w+1)指向二维数组的第二行,因此(w+1)[4]指向二维数组的第5行导致越界;其他选项都能正确表示数组元素,其中选项A:w[0][3];选项C:w[1][0];选项D:w[0][1]。

  • 第6题:

    若有定义:int aa[8];则以下表达式中不能代表数组元素aa[1]的地址是

    A.&aa[0]+1

    B.&aa[1]

    C.&aa[0]++

    D.aa+1


    正确答案:C
    解析:在C语言中,数组的地址和数组中的第一个元素的地址相同。数组中第一个元素地址的表示方法为&aa[0],与其等价的有&aa[0)++;选项A为数组的第1个元素的地址下移一位即是第二个元素aa[1]的地址;B也为数组的第二个元素的地址,选项D中aa表示数组的地址,加1表示数组首地址后移一位,即代表数组元素中的第二个元素aa[1]的地址。

  • 第7题:

    若有如下定义: int s[3][4]; 则下面表达式中能代表数组元素s[1][0]的值的是( )

    A.*(s+1)

    B.s[1]

    C.s+1

    D.*(s[1])


    正确答案:D

  • 第8题:

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

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

    正确答案:B

  • 第9题:

    单选题
    若有定义: int a[2][3]; 以下选项中对a数组元素正确引用的是(  )。
    A

    a[2][!1]

    B

    a[2][3]

    C

    a[0][3]

    D

    a[1>2][!1]


    正确答案: A
    解析:
    a[2][3]表示2行3列的数组,即a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],行下标最大值为1,列下标最大值为2。D项,其中1>2为假即0,!1也为0,即访问a[0][0]。答案选择D选项。

  • 第10题:

    单选题
    若有说明:int a[3][4]; 则对a数组元素的非法引用的是()。
    A

    a[0][2*1]

    B

    a[0][4]

    C

    a[4-2][0]

    D

    a[1][3]


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

  • 第11题:

    单选题
    若有定义inta[2][3];则对数组元素的非法引用的是()
    A

    a[0][1/2]

    B

    a[1][1]

    C

    a[4-4][0]

    D

    a[0][3]


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

  • 第12题:

    单选题
    若有定义:int w[3][5];则以下不能正确表示该数组元素的表达式是(  )。
    A

    *(w+1)[4]

    B

    *(*w+3)

    C

    *(*(w+1))

    D

    *(&w[0][0]+1)


    正确答案: D
    解析:
    a数组元素可用五种表达式来引用:①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④(*(a+i))[j];⑤*(&a[0][0]+N*i+j)。A项,C语言中规定,方括号的优先级高于*,相当于*((w+1)[4]),不能表示数组元素。B项,*w是w[0]的地址,*w+3是w[0][3]的地址,表示数组元素w[0][3];C项,*(w+1)是w[1]的地址,表示数组元素w[1][0];D项,&w[0][0]是元素w[0][0]的地址,&w[0][0]+1是元素w[0][1]的地址,表示数组元素w[0][1]。答案选择A选项。

  • 第13题:

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

  • 第14题:

    若有定义:char*ps[]={“aa”,“bb”,“cc”,“dd”};,则以下叙述正确的是()。

    Aps[0]是字符串”aa”

    B*ps[0]是字符串”aa”的首地址

    Cps[0]是字符串”aa”的首地址

    D*ps[0]是字符串”aa”


    正确答案:C

  • 第15题:

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

  • 第16题:

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

  • 第17题:

    若有如下定义: int s[3] 则下面表达式中不能代表数组元素s[1]的地址的是( )

    A.&s[1]

    B.&s[0]+1

    C.s+1

    D.s++


    正确答案:D

  • 第18题:

    若有定义:int aa[8];则以下表达式中不能代表数组元素aa [1]的地址的是 ( )

    A.&aa[0]+1

    B.&aa[1]

    C.& aa[0]+ +

    D.aa+1


    正确答案:C

  • 第19题:

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

  • 第20题:

    若定义数组inta[8];则不能代表数组元素a[1]地址的是()

    • A、&a[0]+1
    • B、&a[1]
    • C、&a[0]++
    • D、a+1

    正确答案:C

  • 第21题:

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

    a[10]

    B

    a[3+1]

    C

    a(5)

    D

    a(0)


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

  • 第22题:

    单选题
    设有定义 int x[2][3]; 则以下关于二维数组x的叙述中错误的是(  )。
    A

    x[0]可看作是由3个整型元素组成的一维数组

    B

    x[0]和x[1]是数组名,分别代表不同的地址常量

    C

    数组x包含6个元素

    D

    可以用语句x[0]=0;为数组所有元素赋初值0


    正确答案: B
    解析:
    在二维数组中,不能使用x[0]=0这样的赋值语句,x[0]代表一个一维数组。答案选择D选项。

  • 第23题:

    单选题
    若有定义:int *p,a=4;p=&a;则以下均代表地址的是()
    A

    a,p

    B

    &a,p

    C

    &a,*p

    D

    a,*p


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