人仰的简笔画:帮我讲明白。。谢谢!c++

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/06 00:17:32
1. 两次运行下面程序,从键盘键入6和4,输出结果是_____________.
#incldue<iostream.h>
void main( )
{
int x;
cin〉〉x
if(x++ > 5 ) cout<<x<<endl;
else cout <<x--<<endl;
答案说是 7和5 我怎么也算不出来.....

2.输出结果是____
#incldue<iostream.h>
void main( )
{
int x=1,y=0,a=0,b=0;
switch(x)
{
case 1:
switch(y)
{
case 0:a++;break;
case 1:b++;break;
}
case 2:a++ ; b++; break;
}
cout<<a<<","<<b<<endl;
}

case 0,1,2什么意思?情况1,2,3还是结果是1转向1?那case2怎么回事?结果是2,1.....我不明白...

3. #incldue<iostream.h >
using namespace std;
vodi main( )
{
int k =0;
char c=‘A’
do
{
switch(c++)
{
case ‘A’:k++;
break;
case‘B’:k--;
case‘C’:K+=2;
break;
case ‘D’:k=k%2;
continue;
case ‘E’:k=k*10;
break;
default:k=k/3;
}
k++
} while(c<‘G’);
cout<<"k="<<k<<endl;
}
答案说得4

1.++后置的时候(例如i++)这种使用方法,是先使用这个变量自加前的值,再让其自增
例如:
a=1;
b=a++;
c=a;
上面这个片段的第二句里面,b先被赋为a的值1,然后在这句话执行完以后,到了第三句了,a才变成2。所以,上面这个片段执行完以后,b=1,c=2
具体到你的程序
输入x=6时:
1)先拿x=6和5比较
2)6>5,进入第一个分支。同时,x++,x=7
3)输出x,7
输入x=4时
输入x=6时:
1)先拿x=4和5比较
2)4<5,进入else分支。同时,x++,x=5
3)输出x,5
4)x--,x在程序执行完后为4,不过没有输出

2.好好看看switch语句的定义~!!!!这都不明白的话,讲也没用的
case 1这个分支又是一个switch语句,但是这个switch语句后面没有break。一个case后面没有break的话,如果流程进入了这个分支,会继续执行后面的每一个分支,直到遇到break为止
所以,程序先执行到switch(x),由于x=1,进入case 1分支。
而case 1分支里是一个switch(y),y=0,进入这个内层switch语句的case 0分支,a++,a变成1,然后遇到break,退回外面一层的switch语句中
在外面一层的switch中没有遇到break,所以继续往下执行case 2分支,a、b都自增1,a变成2,b变成1
最后输出

3.综合前两道题。switch语句遇到break才跳出,而++是先使用后自增,照着流程跟一遍就能得到结果

若还有不明白,可以提出

同意楼上对1的解释。