问题
填空题
以下程序运行后的输出结果是______。
struct NODE
int k;
struct NODE *link;
;
main()
struct NODE m[5],*pm,*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
解析: 本题程序定义了一个结构体NODE,在主函数中声明了一个该结构体的数组m[5]和两个结构体指针p和q,并使p指向m[0],q指向m[4]。在while循环中,p、q分别向后向前遍历数组m,直到p、q指向同一个元素。同时使p所指结构体的成员k等于++i的值,q所指结构体的成员k等于i++的值。i从0开始,当循环体执行两遍后,p==q,循环结束,此时i为4,p、q都指向m[2],所以q->k=i;也就是m[2].k=4。最后输出:13431。