以下程序运行后的输出结果是【 】。 struct NODE { int k; struct NODE*link; }; main() { struct NODE m[5],*p=m,*q=m+4;

admin2010-05-22  28

问题 以下程序运行后的输出结果是【  】。
   struct NODE
   {  int k;
      struct NODE*link;
   };
   main()
   {   struct NODE m[5],*p=m,*q=m+4;
       int i=0;
       while(p!=q){
       p->k=++i;p++;
       q->k=i++;q--;
   }
   q->k=i;
   for(i=0;i<5;i++)printf("%d",m.k);
   printf("\n");
   }

选项

答案13431

解析 初始化时,指针p指向m[0]的地址,指针q指向m[4]的地址,p!=q满足循环条件,执行循环语句,得到m[0].k=1,m[4].k=1,此时i=2,指针p指向m[1]的地址,指针q指向m[3]的地址,p!=q满足循环条件,执行循环语句,得到m[1].k=3,k=3,此时i=4,指针q指向m[2]的地址,p= =q不满足循环条件,则退出循环,m[2].k=4。所以最后输出为13431。
转载请注明原文地址:https://kaotiyun.com/show/V8Wp777K
0

最新回复(0)