#include <stdio.h> main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++; break

#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;
}
case 2: a++; b++; break;
}
printf(“%d,%d\n”,a,b); } 程序的运行结果是 A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1 求解释???

答案是c吧。
当x=1;执行case 1:然后y=0在执行case 0;此时 a++ ,a=1;
然后 break,跳出,跳出后注意:这里 在判断x时,case 1.后面的语句执行完,没有break。
于是继续执行case2 这时,a++,b++ 所以 a=2,b=1.
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-22
答案是D啊

开始 x==1 执行 case 1 ->switch(y)
因为 y==0 执行 case 0 这时 a==1
出 switch(y)
因为 case 1 后面没有 break; 继续执行 下面的 case 2
执行 a++ 此时 a==2 最后执行 b++,这是 b==1 执行 break;后结束程序执行
答案 :D
第2个回答  2011-03-22
答案是 D吧。
#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 0: a++; break; 语句执行后接着执行case 2: a++; b++; break;
case 2: a++; b++; break;
}
printf(“%d,%d\n”,a,b);
}
第3个回答  2011-03-23
答案是d
switch是分支条件语句,根据x的值选择执行的语句,但是在执行完后通常都加break跳出循环,如果不加则一直往下执行的,顺便说下两个关键字
break:跳出循环、
continue:跳出本次循环,继续下面的循环
第4个回答  2011-03-22
答案是D)

#include<stdio.h>
答案是:a=2,b=1 原因在程序中标出了 include<stdio.h> main(){ int x=1, y=0,a=0,b=0;switch(x) \/\/因为x=1所以就执行下面的case 1:{case 1: \/\/case 1后面为空,就继续执行下一条语句switch(y)switch(y) \/\/y=0 所以就执行case 0 {case 0: a++; break; \/\/ 执...

#include <stdio.h> main() { int x=1,y=0,a=0,b=0; switch(x) { case...
当x=1;执行case 1:然后y=0在执行case 0;此时 a++ ,a=1;然后 break,跳出,跳出后注意:这里 在判断x时,case 1.后面的语句执行完,没有break。于是继续执行case2 这时,a++,b++ 所以 a=2,b=1.

#include <stdio.h> main() { int x=1,y=0,a=0,b=0; switch(x) { case...
int x=1,y=0,a=0,b=0;switch(x){ case 1: \/\/此时X=1,进入case1;switch(y){ case 0: a++; break; \/\/此时y=0,进入case0;,a++后break跳出switch(y)case 1: b++; break;} case 2: a++; b++; break; \/\/因为 switch(x) 的 case 1没...

...void main( ) { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch...
switch(y){ case 0: a++; break;这个时候a=1;case 1: b++; break;} 这里后面没有break;所以会继续执行case 2:再下面a=2,b=1.

...{ int x = 1 , a = 0 , b = 0 ; switch( x ) {
因为x=1,所以执行switch语句中case 1:a++;语句a=1 又因为case 1与case 2之间没有break;语句,所以继续执行case 2:a++;b++;语句,则a=2,b=1;然后执行printf( "%d,%d" , a , b ) ;输出2,1

{int x=1,y=0,a=0,b=0; switch (x) {case 1:sw
2 1 不谢 过程是先执行switch (x)的case 1,进入switch (y)的case 1,a++,a等于了1;然后break跳出switch (y),进入switch (x)的case 2,a++,b++,所以a等于了2,b等于了1 然后break;

...main0 { int x=1,a=0,b=0; switch(x){ case 0: b++; case 1...
因为每条case后面没有break,所以从case 1挨个执行,因此答案是A

C语言,选择结构,switch语句
而case 1对应的语句是又是一个switch语句,此时的switch后边括号中的变量是y,由于y已经被赋值0,所以应该执行case 0所对应的语句,执行a++;后缀++是说执行完语句后变量值增加1.最后答案是a=1,b=0;int x = 1, y = 0, a = 0,b = 0;switch (x){ case 1: switch (y) \/\/首先跳转到...

switch语句的嵌套
你没有break;include<stdio.h> int main(){ int x=1,y=0;switch(x){ case 1:switch(y){ case 0:printf("first\\n");break;case 1:printf("second\\n");break;} break;\/***\/ case 2:printf("third\\n");} getch();return 0;} ...

#include <stdio.h>
第一个switch(x),因x=1,故进行case 1,执行switch(y),y=0,执行case 0,即a++,a=1,然后退出switch(x),因case 1,没有break,故会继续执行下面的语句,case 3(因case 2包含break,所以不执行),a++;b++;则输出a=2,b=1

相似回答