itgle.com

单选题若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0}, *p=x;则错误引用x数组元素的是(  )。A * pB x[5]C *(p+1)D *x

题目
单选题
若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0}, *p=x;则错误引用x数组元素的是(  )。
A

* p

B

x[5]

C

*(p+1)

D

*x


相似考题
参考答案和解析
正确答案: A
解析:
引用一维数组元素有多种方式。直接引用的表达式为:数组名[下标],数组大小为n时,下标的取值范围为0~(n-1),所以本题中x的下标为0~4,x[5]溢出,B项错误。此外还可以通过指针引用一维数组元素。指针p指向该数组,所以*p表示x[0],A项正确;指针p+1指向数组x的第二个元素的地址,*(p+1)表示引用x的第二个元素,C项正确;x为x数组元素的首地址,*x表示对x[0]的引用,D项正确。答案选择B选项。
更多“若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0}, *p=x;则错误引用x数组元素的是(”相关问题
  • 第1题:

    设有定义:double x[lO],*p=x;,以下能给数组x下标为6的元素读人数据的正确语句是

    A.scanf(“%f”,&x[6]);

    B.scanf(“%If”,*(x+6));

    C.scanf(“%lf”,p+6);

    D.scanf(“%lf”,p[6]);


    正确答案:C

  • 第2题:

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

  • 第3题:

    若有定义:byte[]x={11,22,33,-66};其中0≤k≤3,则对x数组元素错误的引用是 ( )

    A.x[5-3]

    B.x[k]

    C.x[k+5]

    D.x[0]


    正确答案:C
    解析:该题考查的是数组。本题中定义的数组x拥有4个元素,于是下标的取值范围应为0~3,所以对x数组元素的引用下标不能超出它的下标范围。选项A的引用是x[5 -3)即x[2],所以它的引用是正确的;选项B的引用也是正确的,k的范围没超出下标范围;选项C的引用x[k+5]是错误的,它超出了下标范围;选项D的引用是正确的。

  • 第4题:

    若有下列定义 intx[10],*pt=x; 则对x数组元素的正确引用是( )。

    A.*&*[10]

    B.*(x+3)

    C.*(pt+10)

    D.pt+3


    正确答案:B
    B。【解析】在C语言中,数组名是一个存放地址值的指针变量名,其地址值是数组第。一个元素的地址,也是数组所占一串连续存储单元的起始地址。因为数组的下标是从0开始的,所以选项B中,X+3表示数组x[10]中的第四个元素的地址,在其前面加上星号,表示是数组x[10]中的第四个元素中的值。所以正确答案为选项B。选项A、C的地址范围超出数组x[10]中元素的地址范围,选项D表示的是地址值。

  • 第5题:

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

    A.*&a[5]

    B.*a+2

    C.*(p+5)

    D.*(a+2)


    正确答案:D

  • 第6题:

    若有定义语句:float x[6];则以下对x数组元素的正确引用形式是()。A.x+2B.&x[6]C.*(x+2)D.*&am

    若有定义语句:float x[6];则以下对x数组元素的正确引用形式是( )。

    A.x+2

    B.&x[6]

    C.*(x+2)

    D.*&x[6]


    正确答案:C
    解析:数组名x为该数组的首地址即第1个元素的地址,x+2表示数组第3个元素的值地址。x[6]表示数组中长度为6,数组元素的下标从0到5,没有x[6]。&为取地址符,取得的是元素的地址。*为间接访问运算符,其运算对象为地址或存放地址的指针变量。*(x+2)为取数组第3个元素的值,因此只有选项C正确引用了数据元素,选项C正确。

  • 第7题:

    设有定义:“double x[10],*p=x;”,以下能给数组x下标为6的元素读人数据的正确语句是( )。

    A.scanf("%f"&x[6]);

    B.scanf("%If",*(x+6));

    C.scanf("%if",p+6);

    D.scanf("%if",p[6]);


    正确答案:C
    由题中给出数组要给下标为6的数组赋值,其中x[6]实际上是第6个数,下标为5,因为数组是从0开始计算,所以正确的表示方法为C。

  • 第8题:

    若有定义语句“int x,*p=&x,**ppx=&px;”,则下列表达式中错误的是( )

    A.x=*px

    B.x=**ppx

    C.px=&ppx

    D.*ppx=&x


    正确答案:C
    分析备选答案A:“*px”,就是x,所以该表达式为“x=x”,是正确的,不符合题意分析备选答案B:"**ppx",就是"*(*ppx)=*px=x",所以该表达式为"X=X",是正确的,不符合题意.分析备选答案C:px是一级指针变量,其中只能存放变量或数组元素的地址,不能存放其他一级指针变量或二级指针变量的地址,而"&ppx"是二级指针变量ppx的地址,所以该表达式是错误的,本题答案应选C.至于备选答案D:"*ppx"就是px,将变量x的地址赋予px,当然是正确的。

  • 第9题:

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

    A.a[i]

    B.a[5]

    C.p[4]

    D.p[i]


    正确答案:B

  • 第10题:

    若有说明语句“inta[5],*p=a;”,则对数组元素的正确引用是()。

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

    正确答案:C

  • 第11题:

    若有定义:double x[3][5],则x数组中行下标的下限为(),列下标的下限为()。


    正确答案:2;4

  • 第12题:

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

    正确答案: *(x+i)
    解析: 暂无解析

  • 第13题:

    若有以下语句,则对x数组元素引用不正确的是( )。 int x[ ]={1, 2, 3, 4, 5,6}, *ptr;ptr=x;

    A.*(--ptr)

    B.*(ptr--)

    C.*(ptr++)

    D.*(++ptr)


    参考答案A

  • 第14题:

    若有定义语句“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],数组下标越界。

  • 第15题:

    若有以下定义 intx[10],*pt=x; 则对x数组元素的正确引用是______。

    A.*&x[10]

    B.*(x+3)

    C.*(pt+10)

    D.pt+3


    正确答案:B
    解析:本题主要考查的是数组的引用,在C语言中,—个数组不能整体引用。在选项A中,*&X[10]属于地址越界;选项C中,*(pt+10)也是地址越界。选项D中,pt+3是将指针P,后移三个元素,指向x3),并没有对数据元素进行引用。在C语言中,可以用对数组名加—个整数的方法,来依次表示该数组中不同元素的地址,因此,选项B是正确的。

  • 第16题:

    若有定义语句:double x[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
    解析:本题定义了一个有5个数组元素的—维数组x和指针变量p,且将x的首地址(即x[0])的地址)赋给了指针变量p,即p指向了x数组的第0号元素,所以*p的值为x[0]的值,选项A的引用正确;由于p+1就是x[1]的地址,所以*(p+1)所指向的数组元素为x[1],故选项C的引用正确;由于x就是数组x的首地址,所以*x即对x[0]的引用,所以选项D引用正确;由于数组最大下标是元素个数减一,所以选项B的引用越界。

  • 第17题:

    若有以下定义:

    int x[10],* pt=x;

    则对x数组元素的正确引用是( )。

    A.pt+3

    B.}&x[10]

    C.*(pt+10)

    D.*(x+3)


    正确答案:D
    没有A选项的引用形式。+与&放在一起作用抵消,所以B选项错误,最大只能引用到X[9]。+(pt+i)表示引用指针pt所指元素后的第i个元素,所以c选项错误,最大只能为+(pt+9)。因此D选项正确。

  • 第18题:

    设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是

    A.scanf("%f",&x[6])

    B.scanf("%lf",*(x+6));

    C.scanf("%lf",p+6)

    D.scanf("%lf",p[6]);


    正确答案:C

  • 第19题:

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

  • 第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 x[10],*p,p=x;”,则在程序中引用数组元素x[i]的四种形式中,除了x[i]、p[i]和*(p+i)以外,还有()


    正确答案:*(x+i)

  • 第22题:

    若已定义byte[]x={11,22,33,-66};其中0≤k≤3,则对x数组元素错误的引用是()

    • A、x[5-3]
    • B、x[k]
    • C、x[k+5]
    • D、x[0]

    正确答案:C

  • 第23题:

    单选题
    若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0}, *p=x;则错误引用x数组元素的是(  )。
    A

    * p

    B

    x[5]

    C

    *(p+1)

    D

    *x


    正确答案: C
    解析:
    引用一维数组元素有多种方式。直接引用的表达式为:数组名[下标],数组大小为n时,下标的取值范围为0~(n-1),所以本题中x的下标为0~4,x[5]溢出,B项错误。此外还可以通过指针引用一维数组元素。指针p指向该数组,所以*p表示x[0],A项正确;指针p+1指向数组x的第二个元素的地址,*(p+1)表示引用x的第二个元素,C项正确;x为x数组元素的首地址,*x表示对x[0]的引用,D项正确。答案选择B选项。

  • 第24题:

    单选题
    设有定义double x[10],*p=x;以下能给数组x下标为6的元素读入数据的正确语句是(  )。
    A

    scanf("%f",&x[6]);

    B

    scanf("%1f",*(x+6));

    C

    scanf("%1f",p+6);

    D

    scanf("%1f",p[6]);


    正确答案: B
    解析:
    scanf函数的一般形式为:scanf(格式控制字符串,地址列表);,其中的地址列表应当是存放输入数据变量的地址。A项,“%f”格式符对应的是float类型的变量;BD两项,*(x+6)和p[6]都表示下标为6的元素的值而非其地址;C项,p+6表示数组x下标为6的元素的地址。答案选择C选项。