全部问题 > 当前问题

这个题目有点问题,上面的for后面的k初始值应该改为0,因为原题中第一次k后是从2开始计算的了

宋玥晖 2019-3-6 21:28:10

共 2 个回答

失踪人口 2019-3-7 14:00:26

不用改啊,就是从1开始的

宋玥晖 2019-3-7 20:29:34

回复 失踪人口:啊,我好像忘了这个自增是循环体先执行后再判断执行的

问题来自: 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。