参考答案和解析
正确答案:B
解析:本题中定义了一个结构体数组data[2]并初始化,主函数中定义了一个结构体类型指针变量并让它指向data的首地址,由于p指向第一个元素的地址,所以p->x相当于data[0].x即为10,所以++(p->x)后的值为11。故4个选项中选项B符合题意。
更多“有以下程序:structs{intx,y;)data[2]={10,100,20,200);main(){structs*p=data;printf("%d\n",++( ”相关问题
  • 第1题:

    有以下程序 include struct st { int x,y;} data[2]={1,10,2,20}; main(

    有以下程序 #include <stdio.h> struct st { int x,y;} data[2]={1,10,2,20}; main() { struct st *p=data; printf("%d,",p->y); printf("%d\n",(++p)->x); } 程序的运行结果是______。

    A.10,1

    B.20,1

    C.10,2

    D.20,2


    正确答案:C
    解析:本题定义了一个包含两个元素(data[0]、data[1])的结构体数组data,其中data[0].x=1;data[0].y=10;data[1].x=2; data[1].y=20。在主函数中,定义了一个指向结构体数组的结构体指针变量p,使得p指向结构体数组的首地址,所以p->y访问的是第一个鲒构体数组元素的第二个值,即data[0].y;(++p)->x访问的是第二个结构体数组元素的第一个值,即 data[1].x,所以程序输出结果为10,2。

  • 第2题:

    以下程序的输出结果是( )。include struct s { int x,y; } a[2]={10,100,20,200}; main() { struct s *p=data; printf("%d\n",++(p->x)); }

    A、10

    B、11

    C、20

    D、21


    正确答案:B

  • 第3题:

    以下C语言程序的输出结果是( )。struct s{int x,y;}data[2]={10,100,20,200};main( ){struct s*p=data;p++;printf(“%d\n”,++(p->x));}

    A.10
    B.11
    C.20
    D.21

    答案:D
    解析:
    data是s类型的数组,即结构体数组,用{10,100,20,200}赋值,可知:data[0].x=10data[0].y=100data[1].x=20data[1].y=200struct s*p,p是data数组的指针。指向数组的第一个元素,*p即为data[0]。p++之后,即地址向后移动,此时p指向数组的第二个元素,*p即为data[1].p->x和(*p).x是一样的,p->x和data[1].x等价。所以在++(p->x)之后,data[0].x的值变为21。输出21。

  • 第4题:

    有以下程序#include <stdio.h>struct st{ int x, y, z;} data[2]={3,10,2,20,15,7};main(){ struct st *p=data; printf("%d,", p->y); printf("%d\n",(++p)->x); }程序的运行结果是A.10,3 B.20,3 C.10,20 D.20,2


    正确答案:C
    本题考查结构体数组的相关操作。结构体数组的定义方法与结构体变量的定义方法一样,只不过将变量变为数组。数组内的各元素在内存中是连续存放的。题目中给出了一个结构体st,该结构体有三个整型成员x,y,z。结构体数组data元素的个数为2,并对数组进行初始化,data[0]={3,10,2},data[1]={20,15,7}。主函数main中定义了一个指针p指向数组data,第一个printf函数是输出p->y,即data[0].y,该值等于10。第二个printf函数是输出(++p)->x,++p使得指针p指向data[1],输出的目标为data[1].x,该值等于20。故输出结果为10,20。

  • 第5题:

    有以下程序 struct s { int x,y; } data[2]={10,100,20,200}; main() struct s *p=data; printf("%d\n",++(p->x)); 程序运行后的输出结果是

    A.10

    B.11

    C.20

    D.21


    正确答案:B
    解析:本题中定义了一个结构体数组data[2]并初始化,主函数中定义了一个结构体类型指针变量并让它指向data的首地址,由于p指向第一个元素的地址,所以p->x相当于data[0].x即为10,所以++(p->x)后的值为11.所以,4个选项中选项B符合题意。