有以下程序  #include<stdio.h>  main()  {   int a=1,b=2,c=3;   char flag;   flag=b>=2&&c<=3;   switch(a)   {   case 1:sw

admin2022-10-24  31

问题 有以下程序
 #include<stdio.h>
 main()
 {
    int a=1,b=2,c=3;
    char flag;
    flag=b>=2&&c<=3;
    switch(a)
    {
      case 1:switch(flag)
      {
        case 0:printf("**");break;
        case 1:printf("%%");break;
      }
      case 0:switch(C)
             {
       case 1:printf("$$");break;
       case 2:printf("&&");break;
       default:printf("##");
      }
    }
    printf("\n");
 }
 程序运行后的输出结果是(          )。

选项 A、**$$
B、%##
C、%&&
D、**##

答案B

解析 main函数中,根据“b=2,c=3”可知表达式“b>=2&&c<=3”为真,flag值为1。由“a=1’,和外层switch语句的case标号没有break语句可知,外层switch语句执行case 1、case O。对于外层case 1:嵌套的switch语句根据“flag=1”执行case 1,执行“printf(”%%”);”,输出“%”,接着执行break语句,结束内层switch语句执行外层。对于外层case 0:嵌套的switch语句根据“c=3”执行default语句,执行“printf(”##”);”,输出“##”。故本题答案为B选项。
转载请注明原文地址:https://kaotiyun.com/show/sPkp777K
0

随机试题
最新回复(0)