有以下程序: #include <stdio.h> main() { int a[]={2, 3, 5, 4}, i; for(i=0; i<4; i++) switch(i%2) { case 0: switch(a[i]%2) { case 0: a[i]++; break; case 1: a[i]--; } break; case 1: a[i]=0; } for(i=0; i<4; i++)printf("%d", a[i]); printf("\n"); } 程序运行后的输出结果是______。
A.0 3 0 4
B.2 0 5 0
C.3 3 4 4
D.3 0 4 0
参考答案:D
解析: 第一次循环i为0,i%2为0,执行switch(a[0]%2)中的case 0语句后内容即a[0]++, a[0]的值变成3;第二次循环i的值为1,i%2为1,执行case 1: a[i]=0;所以a[1]的值变成0;第三次循环i的值为2, i%2为0,执行switch(a[2]%2)中的case 1语句后的内容a[2]--, a[2]的值变成4;第四次循环i的值为3,i%2为1,执行case 1: a[i]: 0; ,所以a[3]的值变成0。