有以下程序 #include <stdio.h> main() { int i=1,k=0; for( ; i<6 ; ) { switch(i%3)

admin2023-03-14  32

问题 有以下程序
    #include <stdio.h>
    main()
    {
       int  i=1,k=0;
       for(  ;  i<6 ; )
       {   switch(i%3)
              {  case 0: k++;
                 case 1: k++; break;
                 case 2: k++; continue;
              }
            i+=1;
       }
       printf("%d\n",k);
    }
程序的运行情况是

选项 A、形成无限循环
B、输出6
C、输出5
D、输出4

答案A

解析 switch语句是一种多分支选择语句,执行过程为:计算switch后圆括号内的表达式的值,然后用该值逐个去与case后的常量表达式值进行比较,当找到相匹配的值时,就执行该case后面的语句。若均不匹配的,就执行default后面的语句。执行完一个case后面的语句后,程序就转移到下一个case处继续执行,并不再进行判断。break语句作用是结束整个循环过程,不再判断执行循环的条件是否成立,且在嵌套循环中,其只跳出最内层的一层循环,在分支结构中,跳出最内层分支结构。continue语句只能用在循环结构中,其作用是结束本次循环,即不再执行循环体中continue语句之后的语句,而是立即转入对循环条件的判断与执行。本题执行过程为:i=1,k=0,i<6成立,执行for循环:i%3=1,匹配case1,k=1,break退出switch,i=2;i<6成立,执行for循环:i%3=2,匹配case2,k=2,执行continue,由于其只用于循环结构,退出switch,且不执行此次for循环以后的语句,i=2不变,i<6成立,执行下一次for循环,以后的循环情况与刚刚的情况完全一致,i=2不会改变,形成无限循环。A选项正确。
转载请注明原文地址:https://kaotiyun.com/show/Hx0D777K
0

相关试题推荐
随机试题
最新回复(0)