2006年9月全国等级考试三级c语言上机题库(三十五)
文章作者 100test 发表时间 2007:03:10 19:18:20
来源 100Test.Com百考试题网
★☆题目35(无忧id 20 级数运算题)
某级数的前两项A1=1,A2=1,以后各项具有如下关系:
An=An-2 2An-1(注:n-2与n-1为下标)
下列程序prog1.c的功能是:要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:Sn=M,这里Sn=A1 A2 ... An,并依次把n值存入数组单元b[0],b[1]和b[2]中,请编制jsValue()函数来实现此功能,最后调用函数writeDat()把数组b[]中的值输出到out.dat文件中。
请勿改动主函数main()和写函数writeDat()的内容。
#include
int b[3].
jsValue()
{int a1=1,a2=1,a12,sn,k=2.
sn=a1 a2.
while(1)
{a12=a1 2*a2.
if(sn<100&.&.sn a12>=100) b[0]=k.
if(sn<1000&.&.sn a12>=1000) b[1]=k.
if(sn<10000&.&.sn a12>=10000) {b[2]=k.break.}
sn=sn a12.
a1=a2.a2=a12.
k .
}
}
main()
{
jsValue().
printf("M=100,n=%d\nM=1000,n=%d\nM=10000,n=%d\n",b[0],b[1],b[2]).
writeDat().
}
writeDat()
{
FILE *fp.
fp=fopen("out.dat","w").
printf("%d\n%d\n%d\n",b[0],b[1],b[2]).
fprintf(fp,"%d\n%d\n%d\n",b[0],b[1],b[2]).
fclose(fp).
}
运行结果为:
M=100,n=6
M=1000,n=9
M=10000,n=11