有以下程序: #inClude <stdlib.h> struct NODE{ int num; struct NODE *next; }; main() { Struct N00E *p

admin2009-01-15  15

问题 有以下程序:
   #inClude  <stdlib.h>
   struct  NODE{
     int num;
     struct  NODE  *next;
   };
   main()
   {    Struct  N00E  *p,*q,*r;
        int sum;0;
        p=(struct  NODE  *)malloc(sizeof(struct  NODE));
        q=(struct  NODE  *)malloc(sizeof(struct  NODE));
        r=(struct  NODE  *)malloc(Sizeof(struct  NODE));
        p->num=1;q->num=2;r->num=3;
        p->next=q;q->next=r;r->next=NULL;
        sum+=q->next->num;sum+=p->num;
        printf("%d\n",sum);
   }
   执行后的输出结果是

选项 A、3
B、4
C、5
D、6

答案2

解析 本题中定义了一个结点struct NODE,在主函数中定义了三个结点变量指针p、q和r,接着通过malloc函数分配了三个结点并让p、q和r分别指向他们,再接着给p、q和r所指向的结点的hum域赋值为1、2、3,然后让结点p指向q,让q指向r,r指向NULL。显然 q->next->num的值为指针r所指向结点的num域的值为3,p->num的值为指针p所指向结点的num域的值为1,故最后输出s的值为3+1=4。所以,4个选项中选项B符合题意。
转载请注明原文地址:https://jikaoti.com/ti/yrK0FFFM
0

最新回复(0)