问题 填空题

以下程序运行后的输出结果是 【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。

单项选择题 A3/A4型题
问答题 论述题