c程序,选择填空题

来源:百度知道 编辑:UC知道 时间:2024/06/16 11:08:54
下面程序是输出一个正整数等差数列的前十项,此数列前四项之和及之积分别是26和880,请选择填空。
#include<stdio.h>
main()
{int a,d,i,s,f,x; /*a是第一项*/
for(a=1;a<30;a++)
for(d=1;【1】;d++)
{s=0;f=1;x=a;
for(i=1;i<=4;i++)
{s=s+x;
f=f*x;
x=x+d;
}
if(s= =26&&f= =880)
for(i=0;i<10;i++)
printf(“%3d”,【2】);
}
printf(“\n”);
}
【1】A)d<=a B)空 C)d<=5 D)d<a
【2】A)a=i*d B)i*d C)a+(i+1)*d D)a+d

答案是A和C,为什么第一个空选C?

作为一个C++程序,第一空其实只要填任何一个东西d<=tmp,也是可以的,其中tmp>=5。如果考虑最优解的话,这个还是数学问题。这个题目是在数学计算后在写的,首先,前4个数的平均数为6.5,考虑公差的话,a+d<6.5,a+2d>6.5(或者a+1.5d=6.5),a>0,d>0。所以只有0<d<5。如此的话,那么C就是最好的算法了~~~

第一个空选择C,原因是D公差啊,A是首项,正整数序列,前四项之和是26,那么公差当然不能大于5了