一道C语言题目求解释!

[复制链接]
查看11 | 回复2 | 2009-1-1 22:36:20 | 显示全部楼层 |阅读模式
#include
void main()
{
int a=16,b=21,m=0;
switch(a%3)
{
case 0:m++;break;
case 1:m++;
switch(b%2)
{
default:m++;
case 0:m++;break;
}
}
printf("%d\n",m);
}
输出什么?
为什么会输出这个?

回复

使用道具 举报

千问 | 2009-1-1 22:36:20 | 显示全部楼层
输出: 3原因:switch(a%3) //a=16,a%3=1{ case 0:m++;break; case 1:m++; //进入这个分支,m++后m为1switch(b%2) //b=21,b%2=1{ default:m++; //进入这个分支,m++后m为2case 0:m++;break; //由于上一句的default处理后,没有进行break,所以又进入这个分支,m++后m为3} }...
回复

使用道具 举报

千问 | 2009-1-1 22:36:20 | 显示全部楼层
switch(a%3) { case 0:m++;break; case 1:m++; //至此,由于a%3==1;所以m==1;switch(b%2) { default:m++;//m==2 由于没有break 程序继续case 0:m++;break; //m==3} //so i guss m==3 rig...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行