有以下程序 #include <stdlib.h> gtruet NODE { int num; struct NODE *next; }; main() { struct NODE *p,*q,*r;

admin2009-01-15  40

问题 有以下程序
   #include  <stdlib.h>
   gtruet NODE
   {  int  num;  struct NODE *next;  };
   main()
   {
      struct NODE  *p,*q,*r;
     p=(struct NODE*)malloc(sizeof (struct NODE));
     q=(struct NODE*)malloc(sizeof (struct NODE));
     r=(struct NODE*)malloc(sizeef (struct NODE));
     p->num=10;   q->num=20;  r->num=30;
     p->next=q;  q->next-r;
     printf("%d\n",p->num+q->next->num);
   }
   程序运行后的输出结果是

选项 A、10
B、20
C、30
D、50

答案8

解析 本题考查的知识点是对结构体指针变量的正确引用与计算。主函数中首先定义了三个结构体指针变量p,q,r。然后调用内存分配函数分别为其分配地址空间,程序中变量 q->num的值为20,指针变量q->next指向指针变量 r,r->nnm的值为30,所以变量q->next->nm的值为30,因此,表达式q->num+q->next->num的值为 20+30=50.所以4个选项中D正确。
转载请注明原文地址:https://kaotiyun.com/show/6IXp777K
0

最新回复(0)