填空题
下列程序的运行结果是______。
#define P(a) printf("%d",a)
main()
{ int j,a[]={1,2,3,4,5,6,7},i=5;
for(j=3;j>1;j--)
{ switch(j)
{ case 1:
case 2:P(a[i++];break;
case 3:P(a[--i]);
}
}
}
【正确答案】
1、5 5
【答案解析】[解析] 分析程序执行过程,第一次循环时,j=3,i=5,因为switch(3),所以执行case 3,调用 P(a[--i])=P(a[4])=P(5),输出5;第二次循环时,j=2,i=4,因为switch(2),所以执行case 2,调用P(a[i++])= P(a[4])=P(5),输出5,之后i自加等于5。