请教C题目

来源:百度知道 编辑:UC知道 时间:2024/06/04 11:55:14
求取满足式 12+22+32+ …… +n2 ≤1000的n,正确的语句是____。
A) for(i=1,s=0;(s=s+i*i)<=1000;n=i++) ;
B) for(i=1,s=0;(s=s+i*i)<=1000;n=++i) ;
C) for(i=1,s=0;(s=s+i*++i)<=1000;n=i) ;
D) for(i=1,s=0;(s=s+i*i++)<=1000;n=i) ;
请教这道题该如何做
书后答案是A,可我不懂它是怎么做的请哪位指点一下

就应该是A。。
题目应该是1的平方一直加到n的平方要小于1000吧。。
for中i=1,s=0只执行一次。然后就是比较(s=s+i*i)<=1000,然后i++,下一次也是先比较,再i++;n=i++就是先赋给n,再加
B中是加了赋的,n会大一。。
C中就不是一个数的平方了,i*(i+1)了。。
D中n也大了,因为i已经加过了

求取满足式 12+22+32+ …… +n2 ≤1000的n,正确的语句是____。
A) for(i=1,s=0;(s=s+10*i +2)<=1000;n=i++) ;
B) for(i=1,s=0;(s=s+10*i +2)<=1000;n=++i) ;
C) for(i=1,s=0;(s=s+10*++i +2)<=1000;n=i) ;
D) for(i=1,s=0;(s=s+10*i++ +2)<=1000;n=i) ;

估计题应该是这样的!(是10不是i)

答案嘛我觉得应该是AC都可以。因为An保存的是i,测试的退出条件是i+1故合适。C,用++i也就是用i+1不满足条件是退出循环,此时n保存的正好是满足条件的i的值,纯属个人意见。

1^2 + 2^2 ... ?

应该是A

关于 C, D , 一方面结果是错的,另一方面 i*i++这样的表达式也是标准明确规定不允许的

答案确实是A,12,22其实指的是1的平方,2的平方.....,B,D得到的不是最小的n而是最小的n加1,C得到的是1*2+2*3+3*4+n*(n+1)<=1000的n的最小值!