C语言程序题

[复制链接]
查看11 | 回复5 | 2008-10-21 14:42:32 | 显示全部楼层 |阅读模式
这是一道选择题()
void main()
{
int a=1,b;
for(b=1;b=8)break;

if(a%3!=1){a+=5;continue;)

a+=3;

}
printf("%d\n",b);
}
A:3B:4 C:5D:6
请问为什么选B,程序是怎么进行的?
谁能讲的更清楚一点

回复

使用道具 举报

千问 | 2008-10-21 14:42:32 | 显示全部楼层
if(a%3!=1){a+=5;continue;) 这里的)应该为}吧!在执行for循环的时,b=1,a=1,这时执行要if(a>=8)break; 但a不满足条件,执行下一句;但下一句也不满足再执行下一句a+=3(此时a=4);接着for循环(此时b=2),按照上述一句一句的执行,可得a=4;b=3时a=7;b=4时a=10;当a=10时因为满足 if(a>=8)break; 语句,所以要跳出for循环而去执行printf("%d\n",b); 所以输出的是4!...
回复

使用道具 举报

千问 | 2008-10-21 14:42:32 | 显示全部楼层
从程序可以看出,只有当a>=8时程序才会输出b的值,b=1 to 10第一次a=1 当执行到if(a%3!=1)时,a=6 再a=a+3=9主要是a%3!=1,你只要会这个就可以推出来了!1%3=2,这是求余函数,2%3=1,2%2=0,4%2=0...
回复

使用道具 举报

千问 | 2008-10-21 14:42:32 | 显示全部楼层
此处循环执行四次:第一次 a=1, b=1, 判断后得到 a=4;再b变化等于2,即b=2;
第二次 a=4, b=2, 判断后得到 a=7;再b变化等于3,即b=3;
第三次 a=7, b=3, 判断后得到 a=11;再b变化等于4,即b=4;
第四...
回复

使用道具 举报

千问 | 2008-10-21 14:42:32 | 显示全部楼层
这个程式执行的过程为:a=1,a=4,a=7,a=10,b=4,一共执行了4次循环,当a=10时,跳出,printf b,...
回复

使用道具 举报

千问 | 2008-10-21 14:42:32 | 显示全部楼层
运行,b=1,a=1,此时a%3=1, 跳出a=a+3=4;然后b=2,a=4,a%3=1,跳出a=a+3=7;接着b=3,a=7,得a%3=1跳出a=a+3=8;b=4,a=8,因为a>=8跳出循环。所以最后b=4...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行