更多“若有定义语句:int u[4][10],*P,*q[4];且0≤i4,则错误的赋值是A.p=aB.q[i]=a[i]C.p=a[i]D.p=&a[2][1]”相关问题
  • 第1题:

    已有定义:int i,a[10],*p;,则合法的赋值语句是( )。

    A.p=100;

    B.p=a[5]

    C.p=a[2]+2

    D.p=a+2;


    正确答案:D
    解析:本题中定义了一个整型数组a和一个整型指针变量p。选项A中将一个整型数赋值给一个指针变量,C语言规定,只能将地址赋给指针变量,故选项A不正确。选项B中a[5]为一数组元素,同样不是一个地址,故选项B不正确。选项c中a[2]为一数组元素,同样是一个整型数据,不是个地址,故选项C不正确。数组名a代表数组首地址,首地址加2代表第3个元素的地址,将该地址赋值给指针变量,故选项D正确。所以,4个选项中选项D符合题意。

  • 第2题:

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

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

  • 第3题:

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

  • 第4题:

    已知p为指针变量,a为数组名,i为整型变量,下列赋值语句中不正确的是( )A.p=&i;B.p=a;C.p=&

    已知p为指针变量,a为数组名,i为整型变量,下列赋值语句中不正确的是( )

    A.p=&i;

    B.p=a;

    C.p=&a[i];

    D.p=10;


    正确答案:D

  • 第5题:

    若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是( )。A.p=a; B.p[0]=a;

    若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是( )。

    A.p=a;

    B.p[0]=a;

    C.p[o]=&a[1][2];

    D.p[1]=&a;


    正确答案:B
    选项B表示把整型数组a[o]的指针赋给p[0]。

  • 第6题:

    若有以下程序段,其中0<=i<4,0<=j<3,则不能正确访问a数组元素的是()int i,j,(*p)[3];int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12};p=a;

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

    B.p[i][j]

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

    D.p[i]+j


    参考答案:D

  • 第7题:

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

  • 第8题:

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

  • 第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 i;double a[4];若通过键盘输入为数组a的4个元素赋值,输入时不同数据之间使用默认分隔符,则下面正确的输入语句是()

    • A、for(i=0;i<4;i++)scanf("%lf",&a[i])
    • B、for(i=0;i<4;i++)scanf("%f",&a[i])
    • C、for(i=0;i<4;i++)scanf("%lf/n",&a[i])
    • D、for(i=0;i<4;i++)scanf("%f,",&a[i])

    正确答案:A

  • 第11题:

    单选题
    若由如下说明,且0<=I<4,则()是错误的赋值。 inta[4][10],*p,*q[4];
    A

    p=a

    B

    q[i]=a[i]

    C

    p=a[i]

    D

    q[i]=&a[2][0]


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

  • 第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[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
    解析:考查指向数组的指针。本题综合考查一维数组和多维数组指针变量的表示方法。在C语言中,引用数组元素的方法有两种,即下标法和指针法。下标法如a[i]形式;指针法如*(a+i)或*(p+1)。其中,a是数组名,p是指向数组的指针变量,其初值p=a。再如*(*(p+2)+2)是a[2][2]的值,注意语句中指针型数组的书写格式,不能写成"(*数组名)[长度]",因为这是定义指向含有"长度"个元素的一维数组的指针变量。例如有定义语句"int a,b,c,c,*p[3]={&a,&b,&c};",它定义了一个名为p的指针型数组,其3个元素p[0],p[1],p[2]分别指向f3个整型变量a,b,c。

  • 第14题:

    现有如下定义:int a,b,*p,*q;,则下列赋值语句错误的是

    A.p=&a;

    B.q=&b;

    C.p=q;

    D.p=a;


    正确答案:D

  • 第15题:

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

  • 第16题:

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

  • 第17题:

    经过下面的语句定义后:int i,a[10],*p;下列语句中,合法的是______。

    A.p=100;

    B.p=a[5];

    C.p=a[2]+2;

    D.p=a+2;


    正确答案:D

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

    若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是( )。

    A.p=a;

    B.p[0]=a;

    C.p[o]=&a[1][2];

    D.p[1]=&a;


    正确答案:B
    选项B表示把整型数组a[o]的指针赋给p[0]。

  • 第20题:

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

  • 第21题:

    若有定义语句,int a[2][3],*p[3];则以下语句中正确的是( )。

    A.p=a;

    B.p[0]=a;

    C.p[0]=&a[1][2];

    D.p[1]=&a;


    正确答案:C

  • 第22题:

    若由如下说明,且0<=I<4,则()是错误的赋值。 inta[4][10],*p,*q[4];

    • A、p=a
    • B、q[i]=a[i]
    • C、p=a[i]
    • D、q[i]=&a[2][0]

    正确答案:A

  • 第23题:

    单选题
    有定义语句:int i;double a[4];若通过键盘输入为数组a的4个元素赋值,输入时不同数据之间使用默认分隔符,则下面正确的输入语句是()
    A

    for(i=0;i<4;i++)scanf(%lf,&a[i])

    B

    for(i=0;i<4;i++)scanf(%f,&a[i])

    C

    for(i=0;i<4;i++)scanf(%lf/n,&a[i])

    D

    for(i=0;i<4;i++)scanf(%f,,&a[i])


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