全部问题 > 当前问题

for(k=1;k<=n;k )这里的k已经加1,s里面的k是加了1的,而下面的k没有加1,所以s里的k也没有加1那么s输出来的结果就不一样

虫虫 2016-2-9 12:07:19

共 3 个回答

嘿嘿大人 2016-2-9 13:41:32

你想表达啥?还是想问什么?

虫虫 2016-2-9 13:56:40

第一个的k++是在for(k=1;k<=n;k++)这个后面就变为2,还是在第二次循环时才变为2

嘿嘿大人 2016-2-9 22:15:08

for(表达式1;表达式2;表达式3),for语句第一次执行是执行表达式1然后判断表达式2,如果表达式2逻辑值为真,则执行循环体,如果为假则跳出循环,然后第二次循环完成后执行表达式3,然后再次判断表达式2的真假,如真则执行循环体,然后再执行表达式3,以此类推

问题来自: while循环和do循环
有以下程序段:       
s=1.0;
for(k=1;k<=n;k++) s=s+1.0/(k*(k+1));
printf("%f\n",s);
请填空,使以下程序段的功能与上面的程序段完全相同。
s=1.0;k=1;
while( __【9】__ )
{ s=s+1.0/(k*(k+1)); k=k+1; }
printf("%f\n",s); 。
A. k<=n
B. k<n
C. k++<=n
D. k++<n
答案:A
解析:第一段程序的功能是,k从1到n循环,每次循环中对s进行赋值。由于第二段程序中初始化、自增都写好了,所以答案应该就是第一段程序中for循环里面的循环条件。因此结果是k&lt;=n。