有以下程序 #include<stdio.h> structtt {intx;structtt*y;)*p; structtta[4]={20,a+l,15,a+2,30,a+3,17,a}; main( ) {inti; p=a; for(i=l;

admin2014-06-15  31

问题 有以下程序
#include<stdio.h>
structtt
{intx;structtt*y;)*p;
structtta[4]={20,a+l,15,a+2,30,a+3,17,a};
main(    )
{inti;
p=a;
for(i=l;i<=2;i++){printf(’’%d,”,p->x);p=p>y;)
}
程序的运行结果是

选项 A、20,15,
B、30,17
C、15,30,
D、20,30

答案A

解析 程序定义了结构体类型tt,其成员包括一个整型数据x和指向其自身结构的指针变量v。程序在定义结构体数组a的同时对其进行了初始化。其元素a[0]的成员y被赋值为元素a[1]的地址,a[1].y被赋值为a[2]的地址,a[2].y被赋予a[3]的地址,a[3].y被赋予a[0]的地址。这就形成了一个单向的循环链表,每个元素的指针成员都指向下一个元素的地址。在主函数L11,通过一个for循环语句,输出该链表前2个节点数值成员的值,即a[0].x和a[1].x。
转载请注明原文地址:https://kaotiyun.com/show/mlJp777K
0

最新回复(0)