问题
填空题
以下程序运行后的输出结果是______。
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("%dv,m[i].k);
printf("\n");
答案
参考答案:13431
解析: m是结构数组,长度为5。结构指针p、q分别指向m[0]、m[4],i初值为0,while循环当p和q不相等时,执行“p->k=++i;q->k=i++;”,也就是m[0].k值为1,m[4].k值为1,i值变为2,则“p++,q--”,p、q分别指向m[1]、m[3],while循环当p和q不相等时,执行“p->k=++i;q->k=i++;”,也就是m[1].k值为3,m[3].k值为3,i值变为4,“p++,q--”,p、q都指向m[2],while循环当p和q相等时,循环停止。while循环体后面的“q->k=i;”,也就是m[2].k值为4。因此“for(i=0;i<5;i++)printf("%d",m[i].k);”输出结果是:13431。