有以下程序: #include void main() {int a[]:{7,8,9,10},i; for(i=0;i<4;i++) switch(i%3) {case 0:switch(a[i]%3) {case 0:a[i]++;break; cas

admin2021-04-28  25

问题 有以下程序:
#include
void main()
{int a[]:{7,8,9,10},i;
for(i=0;i<4;i++)
switch(i%3)
{case 0:switch(a%3)
{case 0:a++;break;
case 1:a--;
}break;
case 1:a=0;}
for(i=0;i<4;i++)printf(’’%d’’,a);printf(’’\n’’);
}
程序运行后的输出结果是(  )。

选项 A、0696
B、6010
C、0906
D、6099

答案D

解析 for循环执行4次循环,i分别为0,1,2,3,循环体内包含两重swish()条件分支语句,对数组元素a进行赋值操作;第一重switch()语句的判别条件是i被3除的余数,但只有两种选择分支case 0和case 1;因此当i=2时,for循环体不被执行,数组元素a[2]还是初始值。当i=1时,执行第一重switch的case 1分支,a[1]=0;至此已经可以选择正确答案。若再要判断,当i=0和3时,程序将进入第二重switch()条件分支,a[0]%3的值和a[3]%3的值均为0,因此,都执行第二重switch()语句的case 0分支语句,a[0]--且a[3]--;
转载请注明原文地址:https://kaotiyun.com/show/FTtp777K
0

最新回复(0)