第1个回答 推荐于2017-10-21
输出3040
具体分析:i在循环中取值为0,1,2,3. 取模i%2, 当i为0,2时值为0; i为1,3时置1。因此a[1],a[3]为0;a[0], a[2]再进入switch判断。a[0]原来为2,进入a[0]++,变成3;a[2]原来为5,进入a[2]--,变成4。综合最后结果a[0]=3,a[1]=0,a[2]=4,a[3]=0,所以输出3040
#include<stdio.h>main(){ int a[]={2,3,5,4},i; for(i=0;i<4;i++) switch(i%2)//i分别为0,1,2,3 { case 0:switch(a[i]%2)//i为0,2进入这,a[0]=2,a[2]=5 { case 0:a[i]++;break;//a[0]=2进入这,执行a[0]++后变成a[0]=3 case 1:a[i]--;//a[2]=5进入这,执行a[2]--后变成a[2]=4 }break; case 1:a[i]=0;//i为1,3,即a[1],a[3]变成0 } for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}