以下程序运行后的输出结果是【 】。 #include <stdio.h> struct NODE { int num;struct NODE * next; main ( ) { struet

admin2009-01-15  17

问题 以下程序运行后的输出结果是【  】。
      #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);
       }

选项

答案5

解析 程序通过语句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。
转载请注明原文地址:https://jikaoti.com/ti/4NK0FFFM
0

相关试题推荐
随机试题
最新回复(0)