• 2022-05-30
    下面代码暴露了一个常见编程错误。请指出并修改之。 int ival=512, jval=1024, kval=4096; int bufsize;//...switch(swt){      case ival:            bufsize=ival* sizeof(int);             break;        case jval:              bufsize=jval * sizeof(int);               break;        case kval:               bufsize=kval * sizeof(int);               break;       }
  • 解答:错误在于:case标号中不能使用iva1、jva1和kva1。因为case标号中的值只能使用常量表达式,而iva1、jva1和kva1都是变量。将语句int ival=512,jval=1024,kval=4096;修改为:const int ival=512,jval=1024,kval=4096;

    举一反三

    内容

    • 0

      中国大学MOOC: 以下代码sum的值是( )int sum = 0;int i = 4;switch(i%3) {case 0: sum = sum+i;break;case 1: sum = sum+i+1;case 2: sum = sum+i+2;break;}

    • 1

      变量a,b,x已经通过语句int a=1, b=2;double x=4;声明,则下列选项中没有错误的是 A: switch(x%2){case 1:break} B: switch(x){case 1:break} C: switch((int)x%2){case 1:break} D: switch((a/2.0){case 1:break}

    • 2

      如果month=4,下面代码的输出结果是( ) int days=0; switch(month) { case 2: days=28; break; case 4: case 6: case 9: case 11: days=30; break; default: days=31; break; } Console.WriteLine(days);

    • 3

      中国大学MOOC: 如下代码片段的输出是什么? int a = 1, b = 0; switch (a) { case 1: switch (b) { case 0: printf (**0**); break; case 1: printf (**1**); break; } case 2: printf (**2**); break; }

    • 4

      若a为整型变量,b为字符型变量,则以下正确的switch语句是 A: switch((int)x/10){ case 1:a++;break;case 2:b++;break;case 3:c++;break;} B: switch(b){ case ‘\042’;x=a/b;break;case ‘6’;x=a*b;break;case ‘\010’;x=a+c;break;} C: switch((int)x/10);{ case 0:a++;break;default:b++;break;case 3+1:c++;break;case 3:d++;break;} D: switch(a/100+10){ case2 :x=a/b;break; case6 :x=a*b;break;case8 :x=a+c;break;case10 :x=a-c;break; }