有以下程序 main() { int i,n=0; for(i=2;i<5;i++) { do {if(i%3)continue; n++; }while(!i); n++; }

admin2009-04-15  31

问题 有以下程序    main()    { int i,n=0;      for(i=2;i<5;i++)    {  do       {if(i%3)continue;        n++;    }while(!i);      n++;    }      printf("n=%d\n",n);    }    程序执行后输出结果是

选项 A、n=5
B、n=2
C、n=3
D、n=4

答案8

解析 do…while的结构形式为:do循环体,while(条件表达式),当程序执行到do后,先执行循环体一次,然后才对条件表达式进行计算、判断。若条件表达式的值为真,则重复执行一次循环体;否则退出,与while结构相比,do…while结构至少要执行一次循环体;运算符%是求模运算,即求两个数相除的余数。continue语句的作用时结束本次循环,即跳过本次循环中余下尚未执行的语句,接着再一次进行循环的条件判定。本题中,当i=2时,执行do循环。由于if表达式的条件为真,执行continue语句,结束本次循环,判断while循环条件为假,故退出while循环,执行n++,此时n的值为1,当i=3时,执行do循环。由于if(3%3)为假,执行下面的n++语句,此时n的值为2,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++语句,此时n的值为3;当i=4时,执行do循环。由于if(4%3)为真,执行continue语句,结束本次循环,继续判断 while循环条件为假,故退出while循环,执行n++,此时n的值为4;当i=5时,退出for循环,因此最后输出的n的值为4。
转载请注明原文地址:https://kaotiyun.com/show/uoWp777K
0

最新回复(0)