编程题c++

来源:百度知道 编辑:UC知道 时间:2024/05/22 07:59:13
#include<iostream.h>
void main()
{
int a(5) ,b(6),i(0),j(0);
Switch(a)
{
case 5:switch(6)
{
case 5:i++;break;
case 6:j++;break;
}
case 6:i++;j++;break;
default:i++;j++;
}
cout<<i<<","<<j<<endl;
}

答案 并具体解释一下,好吗?

首先,我觉得好象你把题目打错了,内层的switch应该是switch(b),不是switch(6)吧?
a开始等于5,所以switch(a)体中会从case 5后面运行,然后switch(b),而b开始时等于6,就去内层的case 6后面运行,j++被运行了,跳出内层switch后,由于没有遇到break,就会接着执行外层case 6后面的语句,i++,j++被执行了,接着遇到break,跳出最外层的switch,这时i=1,j=2.
你先把switch的语法完全弄清,然后再看这道题就不会觉得难了.

0,0
#include<iostream.h>
void main()
{
int a(5) ,b(6),i(0),j(0);
Switch(a)
{
case 5:switch(6)//由于a的值为5,所以进入而且由于b的值为6,所以进入下一个分支选择。
{
case 5:i++;break;
case 6:j++;break;//在这儿注意一下j++,先提取j的值后j才进行++操作的。
}
case 6:i++;j++;break;
default:i++;j++;
}
cout<<i<<","<<j<<endl;
}
所以最终答案为0,0。不过也没怎么仔细看,就当个参考吧。