问题 填空题

以下程序运行后的输出结果是 【17】
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");

答案

参考答案: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。

解答题
单项选择题