有以下程序 main() { int a=i,b; for(b=1;b<=10;b++) { if(a>=8) break; if(a%2==1) {a+=5; cont

admin2009-01-15  9

问题 有以下程序    main()    {      int  a=i,b;      for(b=1;b<=10;b++)    {        if(a>=8)  break;        if(a%2==1)        {a+=5;  continue;  }        a-=3;      }      printf("%d\n",B) ;    }    程序运行后的输出结果是

选项 A、3
B、4
C、5
D、6

答案2

解析 在一个循环体中,若执行到break则跳出循环体,执行循环体后面第一条语句;若执行到continue则开始下一次循环体的执行。本题中a的初始值为1,在循环体中首先判断a,如果>=8就用break跳出循环,接下来的判断语句 a%2==1,是判断a除以2的余数是否为1,即a是否为奇数,是的话给a累加一个5,然后用continue开始下一次循环.若两个条件都不满足就让a自减一个3.因此第1次循环开始a为1不大于8,且是奇数,所以a被累加5开始下一次循环;第2次循环开始a为6不大于8,不是奇数,所以a被减去3;第3次循环开始a为3不大于8,是奇数,所以a被加上一个5;第4次开始a为8,满足第一个条件跳出循环。b在第1次循环时等于1,以后每次累加1,所以最后输出为4,选项B正确.
转载请注明原文地址:https://kaotiyun.com/show/TbXp777K
0

最新回复(0)