有如下程序:main(){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=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

题目

有如下程序:

main()

{

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


相似考题
参考答案和解析
正确答案:A
更多“有如下程序: main() { intx=1,a=0,b=0; switch(x) { case0:b++; case1:a++; case2:a++;b ”相关问题
  • 第1题:

    有如下程序main() { 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=1C.a=1,b=0 D.a=2,b=2


    正确答案:A
    C语言规定case后面跟的必须是整型常量表达式。进入case后,如果没有遇到break语句就会一直往下执行,后面其他case或default分支的语句也会被执行到,直到遇到break,或者执行到整个switch语句块的末尾。题目中给出了三个case语句:case 0、case 1、case 2。当x为1时,从case 1语句开始执行,因为没有break语句,将一直执行到函数末尾结束,即执行case 1、case 2两条语句。执行完case 1时,a=1,b=0;执行完case 2时,a=2,b=1。

  • 第2题:

    以下程序的输出结果是main() { int x=l,a=2,b=3; switch(x) { case 0:b++; case 1:a++;break; case 2:a++;b++; } printf("a=%d,b=%d\n",a,b); }


    正确答案:

    a=3,b=3


    在本题中,程序首先定于了三个整型变量x、a和b,其初值分别为1、2、3,然后执行switch选择语句,由于变量x的值为1,因此,执行case 1结构,这个结构中首先执行a++,即将变量a的值加1,然后执行break语句,执行此语句结束switch。此时,变量b的值没有发生变化。然后程序执行输出语句,根据输出语句的输出格式,最后程序的输出结果是a=3,b=3。

  • 第3题:

    有如下程序 main() { 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


    正确答案:A

  • 第4题:

    有下列程序:includemain(){int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0

    有下列程序: #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; case 3: a++;b++; } printf("a=%d,b=%d\n",a,B) ; } 程序的运行结果是( )。

    A.a=1,b=0

    B.a=2,b=2

    C.a=1,b=1

    D.a=2,b=1


    正确答案:D
    解析:本题考查的是用switch语句实现多分支选择结构,首先进入第一个switch(x)判断,进入case 1中进行嵌套判断,如果switch(y)也成立,a自加1,遇到break,退出嵌套,接着执行case 2,a自加为2,b自加为1,遇到break,结束循环,此时a=2,b=1,故选项D)正确.

  • 第5题:

    有如下程序 main() { 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


    正确答案:A
    解析:在这个switch语句中,因为x的值为1,所以执行case1:后面的a++,这样a=1。但又由于其下没有break语句,所以其后面的语句“a++;b++”也将被执行,这样一来,a=2,b=1。

  • 第6题:

    下面程序的正确输出结果是()。 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; case 3:a++;b++; } printf(“%d %dn”,a,b); }

    A.1 0

    B.2 1

    C.1 1

    D.2 2


    0