有以下程序 #inelude<stdio.h> void main() { int c=0,k; for(k=1;k<3;k++) switch(k) { default:c+=k;

admin2019-01-11  33

问题 有以下程序
#inelude<stdio.h>
    void main()
    {
      int c=0,k;
      for(k=1;k<3;k++)
      switch(k)
     {
      default:c+=k;
      case 2:c++;break;
      case 4:c+=2;break;
    }
    printf("%d\n",c);
    }
    程序运行后的输出结果是(    )。【09年9月】

选项 A、3
B、5
C、7
D、9

答案A

解析 在这段程序中,整型变量c的初始值赋为0,在第一次执行for循环语句时,因为此时变量k的值等于1,所以在switch语句中首先执行defaun语句,变量c的值加1,由于default语句后面没有break语句,会接着执行case 2语句,再给变量c的值加1,其值变为2,这时退出switch语句块,进入第2次for循环,此时k的值等于2,就会执行switct语句块中的case 2语句,再给变量c的值加1,这时变量c的值就是3,此时退出switch语句块,循环变量k的值加1,成为3,此时已不再满足循环条件,执行程序中的最后一条语句,把变量c的值在屏幕上输出。
转载请注明原文地址:https://kaotiyun.com/show/47xp777K
0

最新回复(0)