有如下程序,该程序的输出结果是( ) main0 { int x=1,a=0,b=0; switch(x){ case 0: b++; case 1: a++ ca

有如下程序,该程序的输出结果是( )
main0
{ int x=1,a=0,b=0;
switch(x){
case 0: b++;
case 1: a++
case 2: a++;b++
}
printf("a=%d,b=%d\n",a,b);
}
A) a=2,b=1 B) a=1,b=1 C)a=1,b=0 D) a=2,b=2

第1个回答  2010-12-10
因为每条case后面没有break,所以从case 1挨个执行,因此答案是A本回答被提问者采纳
第2个回答  2010-12-10
补充完整

你的程序少了两个分号,如果分号补回来,选C
第3个回答  2010-12-10
结果是编译出错

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

...{ 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

main() { int x=1,a=0,b=0; switch(x){
1. switch结构分支没加break;跳出语句,开始执行后,程序由x=1调到case 1 分支 a++(a由0自己加为1),由于没有break语句,程序继续执行到case 2 分支 a++ b++(a由1自加变2,b由0自加为1),之后程序printf输出 a=2 ,b=1 2.添加break后,结果是a=1,b=0 include "stdio.h"main(...

int x=1,a=0,b=0;switch (x){case 0:b++;case 1:a++;case 2:a++;b++...
开始 x=1 执行 case 1 a就变成1了然后没有break继续执行case2 a就变成2了 然后又没有 break 继续执行case3 所以b为1了 所以就是2,1 case 语句若没有break就会继续往下执行下面的case 语句

...{ int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { ca...
我运行了,结果A=2,B=1;a++就是a自增1,a=a+1;case 1:switch(y){ case 0: a++; break;这个时候a=1;case 1: b++; break;} 这里后面没有break;所以会继续执行case 2:再下面a=2,b=1.

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

main( ) { int x=1,a=0,b=0; switch(x){ case 0: b++; case 1: a++...
a=2,b=1 x=1,进入switch语句,跳入case 1情况,执行a++,a的值变为1,b的值仍然为0。因为case 1没有做break,也就没有跳出,往下跳入case 2,执行a++和b++,a的值变为2,b的值变为1,然后。。。没有了。

1.有如下程序, 该程序的输出结果是( ) main( ) { int a[3][3]={{1...
int main( ){ int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++) for(j=0;j<=i;j++) s+=a[i][j];printf("%d\\n",s);}s=a[1][0]+a[1][1]+a[2][0]+a[2][1]+a[2][2]=3+4+5+6+0=18 a[2][2]没赋值为0 ...

main(){int x=1,y=0,a=0,b=0;
switch(x){case 1:switch(y){case 0:a++;break;case1:b++;break;} \/\/到这里为止是 a=1,b=0; 但是没有break; 继续执行下去 case 2:a++;b++;break; \/\/a=2,b=1了 }

下述程序的输出结果是main(){int a=0,b=0,c=0;if(++a>0||++b>0) ++...
C ++a=1>0,成立,所以||的结果必为真,因此后面的++b就没有执行了 因为if成立,所以++c肯定执行了。所以a,c变成了1,b还是0

相似回答