请大家帮我看两个C的题目

来源:百度知道 编辑:UC知道 时间:2024/05/24 07:19:40
(23)有以下程序(A)
main()
{int k=5,n=0;
do
{switch(k)
{case1: case3:n+=1; break;
default;n=0;k--;
case2: case4:n+=2;k--;break;
}
printf(“%d”,n);
}while(k>0&&n<5);
}
程序运行后的输出结果是
A)235 B)0235 C)02356 D)2356

(24)有以下程序
mian()
{int i,j;
for(i=1;i<4;i++)
{for(j=i;j<4;j++) printf(“%d*%d=%d “,i,j,i*j);
printf(“\n”);
}
}
程序运行后的输出结果是(B)
A) 1*1=1 1*2=2 1*3=3 B) 1*1=1 1*2=2 1*3=3
2*1=2 2*2=4 2*2=4 2*3=6
3*1=3 3*3=9
C) 1*1=1 D) 1*1=1
1*2=2 2*2=4 2*1=2 2*2=4
1*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9
第一个为什么选A呢,是什么意思?
第二个B是不是少了3*3=9??

k=5,所以执行default得到:n=0,k=k-1=4;
因为没有break,继续执行case 4得到:n=n+2=2,k=k-1=3;
输出n的值2
符合k>0和n<5,继续执行
k=3,所以执行case 3得到:n=n+1=3,k=k-1=2;break
输出n的值3
符合k>0和n<5,继续执行
k=2,所以执行case 2得到:n=n+2=5,k=k-1=1;break
符合k>0和n<5,所以输出n的值5
不符合k>0和n<5,所以跳出循环
答案是A

你的B里面不是有3*3=9吗,你什么意思