问题
填空题
以下程序运行后的输出结果是 【11】 。
#include <stdio.h>
struct NODE
int num;struct NODE * next;
main ( )
struet NODE s[3]= .’\0’,2,’\0’,3,’\O’,*p,*q,*r;
int sum = 0;
s[0].next=s+1; s[1].next=s+2;s[2].next=s;
p=s; q=p->next; r=q->next:
sum+=q->next->num; sum+=r->next->next->num;
prinff( "% d \n", sum);
答案
参考答案:E
解析: 程序通过语句s[0].next=s+1;s[1].next=s+2;s[2].next=s;将结构体变量s中各结点连接成了一个循环链表,即最后一个结点的指针域指向了头结点(s[2].next=s),整个链表形成一个环,并通过语句p=s;q=p->next;r=q->next;将结构体指针变量p,q,r指向了各结点,具体结构如下图:
[*]
故本题输出的sum为3+2=5。