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

admin2009-02-10  15

问题 以下程序运行后的输出结果【 】。
struct NODE
   {int k;
   struct NODE *link;
   };
   main()
   {structNODEm[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,q=m+4,条件9!=q成立,执行p->k=++i;,由于是“前加”,所以m[0].k=1,执行p++后p=m+1;执行q->k=i++;,由于是“后加”,所以m[4].k=1,然后使得i加上1,即i=2,q-后,q=m+3: p=m+1,q=m+3,条件p!=q成立,执行p->k=++i;,由于是“前加”,所以i=3,m[0].k=3,执行p++后p=m+2:执行 p->k=++i;,由于是“后加”,所以m[4].k=3,i=4,q-后,q=m+2; p=m+2,q=m+2,条件p!=q不成立,则执行p->k=i;即m[2].k-4;故输出的值为13431。
转载请注明原文地址:https://kaotiyun.com/show/cHXp777K
0

最新回复(0)