更多“设有:int x,*p; 则正确的赋值表达式是( ) ”相关问题
  • 第1题:

    设有语句:int a=7;float x=2.5,y=4.7;则表达式 x+a%3*(int)(x+y)%2/4的值是_______。


    0.5

  • 第2题:

    2、若x是整型变量,p是基类型为整型的指针变量,则正确的赋值表达式是()。

    A.p=&x;

    B.p=x;

    C.*p=&x;

    D.*p=*x


    p=&x;

  • 第3题:

    设有以下说明,则值为210的表达式是: struct s {int a; int *b;}; int x0[]={110,120},x1[]={210,220}; struct s x[]={{100},{200}}, *p = x; x[0].b = x0; x[1].b = x1;

    A.*p->b

    B.(p)->a

    C.*(p++)->b

    D.*(p)->b 答案:D


    D 解析:注意到本试题中x为结构体数组,则数组名x代表数组首地址。x[0]、x[1]代表结构体数组元素。对于指向结构体数组的指针变量p,每次“+1”则指向下一个结构体数组元素。本题中++p后,由x[0]改指向x[1]。结构体数组x在定义时赋初值,但未对结构体成员b赋初值。语句“x[0].b=x0;x[1].b=x1;”的作用是对结构体数组x的成员b赋初值。对于选项A,(++p)->a等价于x[1].a==200。选项B,*p->b等价于*(x->b)==*x0==110。选项C,*(p++)->b等价于*(x[0].b)==110=x0[0]。选项D,*(++p)->b等价于*(x[1].b)==210=x1[0]。注意,在测试以上1个选项的输出值时,不能放在同一个printf函数中进行输出。因为函数中的参数运算顺序在C语言中是自右向左进行的,而p的值又是不断变化的,所以相互之间会产生影响。

  • 第4题:

    设有以下说明,则值为210的表达式是: struct s {int a; int *b;}; int x0[]={110,120},x1[]={210,220}; struct s x[]={{100},{200}}, *p = x; x[0].b = x0; x[1].b = x1;

    A.*p->b

    B.(p)->a

    C.*(p++)->b

    D.*(p)->b


    D 解析:注意到本试题中x为结构体数组,则数组名x代表数组首地址。x[0]、x[1]代表结构体数组元素。对于指向结构体数组的指针变量p,每次“+1”则指向下一个结构体数组元素。本题中++p后,由x[0]改指向x[1]。结构体数组x在定义时赋初值,但未对结构体成员b赋初值。语句“x[0].b=x0;x[1].b=x1;”的作用是对结构体数组x的成员b赋初值。对于选项A,(++p)->a等价于x[1].a==200。选项B,*p->b等价于*(x->b)==*x0==110。选项C,*(p++)->b等价于*(x[0].b)==110=x0[0]。选项D,*(++p)->b等价于*(x[1].b)==210=x1[0]。注意,在测试以上1个选项的输出值时,不能放在同一个printf函数中进行输出。因为函数中的参数运算顺序在C语言中是自右向左进行的,而p的值又是不断变化的,所以相互之间会产生影响。

  • 第5题:

    1、设有二维数组int A[3][4];下列哪项声明的指针可以赋值A。

    A.int *p;

    B.int (*p)();

    C.int (*p)[4];

    D.int *p[4];


    A 解析:数组在Java语言中是当作对象处理的,它包含一个很重要的变量length,用来表示数组的长度。