niusouti.com

有以下程序#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=0B)a=2, b=2C)a=1, b=1D)a=2, b=1

题目

有以下程序

#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


相似考题
更多“有以下程序#include &lt;stdio.h&gt;main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switc ”相关问题
  • 第1题:

    请阅读以下程序

    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="<<a<<"b="<<b<<endl;

    }

    上面程序的输出结果是

    A.a=2,b=1

    B.a=1,b=1

    C.a=1,b=0

    D.a=2,b=2


    正确答案:A
    解析:本题考察switch语句的嵌套,以及break语句的使用规则,不再执行下面的case语句,如果没有break语句,则会顺序执行随后语句。据此,读程序可知,内层switch执行case 0分支,故a增1,跳出内层switch后,由于没有break语句;随后执行外层switch的case 2分支,a又增1,b增1。故答案为A。

  • 第2题:

    有以下程序includemain(){intx=1,y=0,a=0,b=0;switch(X){case1:switch(y){case0:a++;b

    有以下程序 #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语句,首先,x=1符合条件casel,执行switch(y)语句,y=0符合case 0语句,执行a++并跳出switch(y)语句,此时a=1。因为case 1语句后面没有break语句,所以向后执行case2语句,执行a++,b++,然后跳出switch(x),得a=2,b=1。

  • 第3题:

    请阅读以下程序 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="<<a<<"b="<<bend1; } 上面程序的输出结果是

    A.a=2, b=1

    B.a=1, b=1

    C.a=1. b=0

    D.a=2. b=2


    正确答案:A
    解析:本题考察switch语句的嵌套,以及break语句的使用规则,即break中断当前的执行流,不再执行下面的case语句,如果没有break语句,则会顺序执行随后语句。据此,读程序可知,内层switch执行case 0分支,故a增l,调出内层switch后,由于没有break语句,随后执行外层 switch的case 2分支,a又增1,b增1。故答案为A。

  • 第4题:

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

    有如下程序: #include<stdio.h> main() { int x=1,a=0,b=0; switch(x) { casc 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
    解析:该程序的关键是要搞清楚程序执行的路线。由于x的值等于1,所以在switch语句中,程序从case1后面的语句开始执行。由于case1后面没有break语句,所以程序顺序执行case2后面的语句。程序共执行了三条语句:a++;a++;b++;所以,变量a和b最后的值分别为2和l。选项A)正确。

  • 第5题:

    有下列程序: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)正确.

  • 第6题:

    请阅读以下程序:includemain(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ c

    请阅读以下程序: #include<stdio.h> main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0:a++;break; case 2: a++,b++;break;} 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语句的执行过程为:进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时则执行default后面的语句。注意:if语句及if嵌套语句的使用。