niusouti.com
更多“若有以下定义语句:doublea[5],*p=a;inti=0;对a数组元素错误的引用是()A.a[i]B.a[5]C.p[4]D.p[i] ”相关问题
  • 第1题:

    若已定义:

    int a[]={0,1,2,3,4,5,6,7,8,9},*P=a,i;

    其中O≤i≤9,则对a数组元素不正确的引用是

    A.a[p-a]

    B.*( &a[i])

    C.p[i]

    D.a[10]


    正确答案:D

  • 第2题:

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

  • 第3题:

    若有以下定义和语句: int s[4][5],(*p)[5]; p=s; 则指针对s数组中第三个元素的正确引用形式是( )。

    A.p[0][3]

    B.p[1][2]

    C.p[0][2]

    D.p[1][3]


    正确答案:C
    解析:“p=s;”语句将指针p指向数组s。而数组为二维数组,下标标识由0开始,所以第二个元素是下标为0行的2列元素,即p[0][2]。

  • 第4题:

    若有定义语句: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不合法,两者类型不匹配。

  • 第5题:

    若已定义:

    int a[ ] ={0,1,2,3,4,5,6,7,8,9}, * p=a, i ; 其中0≤i≤9,则对a数组元素不正确的引用是

    A.a[p-a]

    B.* (&a[1] )

    C.p[1 ]

    D.a[10]


    正确答案:D
    解析:通常,引用一个数组元素可以用下标法,如a[p-a] 形式,或指针法,如 * (&a[i] ) 的形式。本题中a[9] =9,a[10] 显然超出了数组范围,注意,数组的下标是从0开始的。

  • 第6题:

    程序中有语句:for(inti=0;i<5;i++)cout<<*(p+i)<<",";能够依次输出int型一维数组a的前5个元素。由此可知,变量P的定义及初始化语句是( )。

    A.int*p=a;

    B.intp=a;

    C."p=a;

    D.p=a;


    正确答案:A
    A。【解析】从循环语句中可以看出,是在0到4的循环中输出数组a中的前5个元素,输出的值为*(P+i),即为指针P向后移动指向的元素。所以初始化要将指针P指向数组a,即int*p=a;。

  • 第7题:

    设有以下语句,其中不是对a数组元素的正确引用的是:______(其中O≤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
    解析:观察程序可知,a实际上就是数组a的首地址,所以“*(a+i)”表示的就是数组a中的第i个元素的值,进而,我们可以知道*(*(a+i))必然不是对a数组元素的正确引用。

  • 第8题:

    程序中有语句:for(inti=0;i<5;i++)cout<<*(p+i)<<",";能够依次输出int型一维数组a的前5个元素。由此可知,变量P的定义及初始化语句是( )。

    A.int*p=a;

    B.intp=a;

    C."p=a;

    D.p=a;


    正确答案:A
    A。【解析】从循环语句中可以看出,是在0到4的循环中输出数组a中的前5个元素,输出的值为*(P+i),即为指针P向后移动指向的元素。所以初始化要将指针P指向数组a,即int*p=a;。

  • 第9题:

    若已定义; inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i; 其中0≤i=≤9,则对a数组元素不正确的引用是( )。

    A.a[p-a]

    B.x(&a[i])

    C.p[i]

    D.a[10]


    正确答案:D
    解析: 通常,引用一个数组元素可以用下标法,如a[p-a]形式,或指针法,如*(&a[i])的形式。本题中a[9]=9,a[10]显然超出了数组范围,数组的下标是从0开始的。

  • 第10题:

    若有定义语句:"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的基本类型不同。

  • 第11题:

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

  • 第12题:

    设有以下语句,对a数组元素的引用中(其中O≤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
    解析:A选项中,p为指针,数组名a代表数组的首地址,所以p-a就是指针到数组首地址的偏移量;B选项中,&a[i]是取数组a中第i个元素的地址,而对于*(&a[i]),由指针运算符*的运算规则可知,语句 *(&a[i])就是返回地址&a[i]空间中存放的值,也即a[i];C选项,由于指针p已指向数组a,所以p[i]就等于a[i],这是常用的一种数组元素引用方式;D选项是以指针方式对数组元素进行引用的,由于a只是代表数组的首地址,并不是指针,所以表达式 *(*(a+i))是错误的,正确的引用应该为 *(*(p+i))。

  • 第13题:

    若有程序片段: 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

  • 第14题:

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

  • 第15题:

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

    A.a[p-a]

    B.*(&a[i])

    C.p[i]

    D.*(*(a+i))


    正确答案:D
    解析:观察程序可知,a实际上就是数组a的首地址,所以“*(a+i)”表示的就是数组a中的第i个元素的值,进而,我们可以知道*(*(a+i))必然不是对a数组元素的正确引用。

  • 第16题:

    若已定义 inta[]={1,2,3,4,5,6,7,8,9,10},p=a,i=5; 则对数组元素不正确的引用是( )。

    A.a[p-a]

    B.*(&a[i])

    C.p[i]

    D.*(*(a+i))


    正确答案:D
    D。【解析】数组和指针的关系非常密切,因为数组名称单独使用是表示数组的首地址。故可用的表示可能是a[i],p[i],*(P+i),同样&(a[i])表示地址,因此*(&a[i])等同于a[i]。本题答案为D。

  • 第17题:

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

    A.a[p-

    B.

    C.*(&a[i])

    D.p[i] *(*(a+i))


    正确答案:D
    解析: 本题考查数组指针的应用。选项D)第一层括号中为数组a中第i项元素的值,外面再加指针运算符没有意义。

  • 第18题:

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

  • 第19题:

    若已定义 int a[]={1,2,3,4,5,6,7,8,9,10},p=a,i=5; 则对数组元素的不正确的引用是( )。

    A.a[p-A)

    B.*(&a[i])

    C.p[i]

    D.*(*(a+i))


    正确答案:D
    解析: 数组和指针的关系非常密切,因为数组名称单独使用是表示数组的首地址。故可用的表示可能是a [i],p[i],*(p+i),同样&(a[i])表示地址,因此*(&a[i])等同于a[i]。本题答案为D。

  • 第20题:

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

  • 第21题:

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

  • 第22题:

    若已定义

    int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;

    其中 则对a数组元素不正确的引用是

    A.a[p-a]

    B.*(&a[i])

    C.p[i]

    D.a[10]


    正确答案:D
    解析:通常,引用一个数组元素可以用下标法,如a[p-a]形式,或指针法,如*(&a[i])的形式。本题中a[9]=9,a[10]显然超出了数组范围,注意,数组的下标是从0开始的。

  • 第23题:

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