斯巴鲁brz最高多少码:C语言高手进

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/27 13:41:48
main(){int I=0,s=0;
do{
if(i%2){i=i+2;}
i++;
s=s+i;}
while(i<7);
printf(“%d\n”,s);}
执行后输出的结果是
最好说明运行过程

这是一个do-while循环,一步步考虑:
第一次执行do语句后:i=1;s=0+1=1。(if语句的条件i%2=0,为假,语句中的内容不做)
第二次:i=4;s=1+4=5(if语句的条件i%2=1,为真,语句中的内容要执行)
第三次:i=5;s=5+5=10(if语句的条件i%2=0,为假,语句中的内容不做)
第四次:i=8;s=10+8=18(if语句的条件i%2=1,为真,语句中的内容要执行)
此时,i>7,不继续执行,所以输出结果是18。

定义i和s两个整形变量,初值为0
执行下面过程直到不满足i<7
如果i不能被二整除i+2,然后i再加一 s加上i
如果i能整除,则只加一 s加上i
第一次循环后
i=1,s=1
第二次循环后
i=i+2+1=4,s=5
第三次循环后
i=5,s=10
第四次循环后
i=8,s=18
不满足i<7,跳出循环
结果是
18

代码写的不规范,
main()
{
int I=0,s=0;
do{
if(i%2)

i=i+2;

i++;
s=s+i;
}while(i<7);
printf(“%d\n”,s);

老弟,请检查你出的题目do-while中的i并未被声明,这道题
根本就不能通过编译,在这里是个小问题,但如果在有几百万代码的项目中,这是致命的。

18