2017年果树赔偿价格:C语言问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 02:24:30
switch嵌套语句
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{ case 0:a++; break;
case 1:b++; braek;
}
case 2:a++;b;;break;
case 3:a++;b++;}
printf("\na=%d,b=%d,a,b");
}
结果为a=2,b=1
程序顺序是怎么运行的 知道请帮帮忙~~~~~ 谢谢大家了
~~
if(c<0x20) printf("This is a control charcter\n");→这句是什么意思 if(c<0x20) 不明白 理解的请
帮帮忙谢谢了~~!!!

b==1吗?我怎么觉得b等于0呢?
外层switch(x),x==1,所以执行case 1:,case 1:又是一个switch结构,y==0所以执行case 0:a++;break;注意这里有break,所以a变为1后就跳出这个switch结构,但外层switch的case 1:后并没有break;,所以外层会继续执行case 2:的语句,a++;b;break;,这样a变为2,而b没有变化,遇到break;语句,跳出switch结构.执行完printf后程序结束.

main()
{ int x=1,y=0,a=0,b=0;

switch(x) 因为此时x=1,所以执行case1语句

{ case 1:
switch(y) 因为此时y=0,所以执行case0语句
{ case 0:a++; break; 遇到break;推出此次内循环
case 1:b++; braek; 不执行
} 到此上面的case 1执行完毕,执行结果a=1,
但是没有遇到break;程序继续执行

case 2:a++;b;;break; 执行本行 a=2 b=0遇到break推出外循环
case 3:a++;b++;}
printf("\na=%d,b=%d,a,b"); 执行结果应该是a=2 b=0
}
如果你的程序中case 2 是这样的:a++;b++;break;那么结果是a=2,b=1,你打错了吧

main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{ case 0:a++; break;
case 1:b++; braek;
} //这里没有break,所以还运行了case2,此时a=1,b=0
case 2:a++;b;;break;//运行完case2,遇到break跳出,此时a=2,b=0
case 3:a++;b++;}
printf("\na=%d,b=%d,a,b");
}
结果应该是a=2,b=0

结果确实应该是a=2,b=0。另外,这个程序中笔误不少啊。如果case 2:a++;b;;break; 那句改成case 2:a++;b++;break;结果就是a=2,b=1了。

switch(x)先执行了case 1那句,因为x=1。
所以内层的switch(y)执行了。是case 0那句,因为y=0。所以a++以后变成了1,后面是break,就结束了本次switch(y)。
但是因为switch(x)的case 1项目结束后,后面没有加break,所以switch(x)接着执行了case 2:a++;b++。所以a是2,b是1。再往后遇到break,就结束了本次的switch(x)。

#include "stdio.h"
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{ case 0:a++; break;
case 1:b++; break;
} ;break;
case 2:a++,b++;break;
case 3:a++,b++;break;}
printf("\na=%d,b=%d",a,b);
}

先回答最后的问题 0x代表16进制 也就是当c<十六进制20 (转换10进制为32 即c<32)的时候运行 printf
下面是前面的问题:

x=1 运行到case 1, y=0 运行switch(y)中的case 0:a++ 此时a=1
遇到break 跳出switch(y) 接着运行switch(x)的case 2在a++此时a=2
又遇到break跳出switch(x) 运行printf()打印a b 结果为2 0 同时b没有参加运行
而且你有好几处错误 全部更正如下:

#include <stdio.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++;break;
case 3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}