有以下程序: #include struct tt {int x;struct tt*y;} s[3]={1,0,2,0,3,0}; main() {struet tt*P=s+1; p—>y=s;

admin2017-07-05  29

问题 有以下程序:
    #include
    struct tt
    {int x;struct tt*y;} s[3]={1,0,2,0,3,0};
    main()
    {struet tt*P=s+1;
    p—>y=s;
    printf("%d,",p—>x);
    p=p—>y;
    printf("%d\n",p—>x);
    }
    程序运行后的输出结果是(    )。

选项 A、2,3
B、2,1
C、1,2
D、3,1

答案B

解析 结构体tt是一个递归定义,类似于链表,通过成员变量Y链接起来。p=s+1指向s[1]。p一>y指向s[2],但现在p一>y=s,因此s[2]=s[0],此时s[]={1.0,2.0,1.0},而p在s[1]位置,因此p一>x为2,p=p一>y,p指向s[2],因此p一>x=1,故打印结果为2,1。答案为B选项。
转载请注明原文地址:https://jikaoti.com/ti/hsi0FFFM
0

最新回复(0)