选择题 29.  有以下程序
    # include<stdio.h>
    main()
    {  int a[]={2,3,5,4},i;
    for(i=0;i<4;i++)
    switch(1%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;1<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。