选择题   有以下程序
    #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');
    }
    程序运行后的输出结果是______。
 
【正确答案】 C
【答案解析】 本题考查嵌套分支语句。共输出4个值:当i=0时,i%2取余后还是0,则执行case 0语句,继续switch语句,此时i为0,数据的下标是从0开始的,a[0]的值为2,则a[0]%2=0,继续执行case 0,数组a[0]++,值变为3,执行break跳出第二重开关语句。出来后继续执行break,跳出第一重开关语句,继续循环;输出第一个值为3。i++后值为1,i%2=1%2取余后值为1,执行case 1,将0赋给a[1],退出开关语句,输出第二个值为0。i++后值为2,i%2=2%2取余后值为0,a[2]的值为5,则a[2]%2=1,继续执行case 1,数组a[2]--,值变为4,执行break跳出第二重开关语句。出来后继续执行break,跳出第一重开关语句,继续循环;输出第三个值为4。i++后值为3,i%2=3%2取余后值为1,执行case 1,将0赋给a[3],退出开关语句,输出第四个值为0。结果为3 0 4 0。