参考答案和解析
参考答案A
更多“已知定义“int x = 1, *p”,则合法的赋值表达式是( )。 ”相关问题
  • 第1题:

    定义如下一维数组:int a[5],*p=a;则下面描述错误的是:

    A.表达式p=p+1是合法的

    B.表达式a=a+1是合法的

    C.表达式p-a是合法的

    D.表达式a+2是合法的


    B 解析:本题考核指针与数组的关系。对于选项A,由于在定义时指针p指向数组a[0],那么表达式“p=p+1”就是让指针p指向数组中的元素a[1],所以是合法的。对于选项C,数组名a代表该数组的首地址,指针p中存的也是地址,所以它们之间可以进行加减运算。对于选项D,数组名a代表该数组的首地址,那么表达式“a+2”代表的是数组元素a[2]的地址。对于选项B,由于数组名代表该数组的首地址,并且只能引用该地址而不能进行修改,所以是不合法的。

  • 第2题:

    有定义如下:int a[5], *p; p=a; 则下列描述错误的是?

    A.表达式p=p+1是合法的

    B.表达式a=a+1是合法的

    C.表达式p-a是合法的

    D.表达式a+2是合法的


    B

  • 第3题:

    1、设有下列变量定义与函数声明,则合法的函数调用语句是()。 int x,y; void swap(int *p,int *q);

    A.swap(x,y);

    B.swap(*x,*y);

    C.swap(&x,&y);

    D.swap(p,q);


    A

  • 第4题:

    2、定义如下一维数组:int a[5],*p=a;则下面描述错误的是:

    A.表达式p=p+1是合法的

    B.表达式a=a+1是合法的

    C.表达式p-a是合法的

    D.表达式a+2是合法的


    B 解析:本题考核指针与数组的关系。对于选项A,由于在定义时指针p指向数组a[0],那么表达式“p=p+1”就是让指针p指向数组中的元素a[1],所以是合法的。对于选项C,数组名a代表该数组的首地址,指针p中存的也是地址,所以它们之间可以进行加减运算。对于选项D,数组名a代表该数组的首地址,那么表达式“a+2”代表的是数组元素a[2]的地址。对于选项B,由于数组名代表该数组的首地址,并且只能引用该地址而不能进行修改,所以是不合法的。

  • 第5题:

    定义如下一维数组:int a[5],*p;则下面描述错误的是()

    A.表达式p=p+1是合法的

    B.表达式a=a+1是合法的

    C.表达式p-a是合法的

    D.表达式a+2是合法的


    表达式a=a+1是合法的