填空题 以下程序运行后的输出结果是{{U}} 【17】 {{/U}}。 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[i].k); printf("/n"); }
  • 1、
【正确答案】 1、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。