问题 填空题

以下程序运行后的输出结果是 _______ 。main(){ struct NODE s[3]={{1,’’\0’’},{2,’’\0’’},{3,’’\0’’}},*p,*q,*r; intsum=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; printf("%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。

单项选择题 B型题
解答题