关于以下程序执行情况的叙述,正确的是( )。 main(){int i, n; for(i=0;i<8;i++){ n = rand() % 5; switch(n) { case 1: case 3: printf("%d\n",n); break; case 2: case 4: printf("%d\n",n);continue; case 0: exit(0);} printf("%d \n",n); } } 解释: for的循环体有3条语句,即黄色部分的3条。 n是rand() % 5随机生成的0-4的随机数,初略的看for循环i从0到7,循环8次,但在循环体内有可能会执行exit(0),这个函数会结束主函数的运行,所以for不一定会固定执行8次,所以A不对 switch(n){ case 1: case 3: printf("%d\n",n); break; //若生成的1或3都会输出n,然后break会跳出switch,执行switch之 //后的printf 输出n语句,所以会输出2个n case 2: //若生成的随机数是2或4,都会执行完printf输出n,之后做continue,直接跳过尚 //未执行的switch之后的输出语句直接进行下次循环的i++,只会输出1个n case 4: printf("%d\n",n);continue; case 0: exit(0);} // 当产生的随机数 n 为 0 时结束程序运行