有以下程序: #include main() { int x=1,y=0,a=0,b=0; switch(x) {case 1: switch(y) {Case 0:a++;break;

admin2017-07-05  10

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

答案B

解析 C语言还提供了一种用于多分支选择的switch语句,计算判断条件的表达式的值,并逐个与case后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行相应case后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
    x=1;进入第一层switch,y=0;进入第二层switch,执行a++;break;后a=1;再进入case 2,(这里case 1:没有break,)执行了a++,b++,由于存在break,则跳出switch,得到a=2,b=1,因此答案为B选项。
转载请注明原文地址:https://jikaoti.com/ti/GYi0FFFM
0

最新回复(0)