1、三级信息管理技术机试-121 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.某级数的前两项 A1=1,A 2=1,以后各项具有如下关系:An=An-2+2An-1下列程序的功能是:要求依次对于整数 M=100,1000 和 10000求出对应的 n值,使其满足:S nM 且Sn+1M,这里 Sn=A1+A2+ +An,并依次把 n值存入数组单元 b0,b1,b2冲,请编制 sValue()函数来实现此功能,最后调用函数 writeDat()把数组 b的值输出到 out48.dat文件中。 注意:部分源程序已给出。请勿改动主函数 mean(
2、)和输出函数 writeDat()的内容。试题程序:#includestdio.hint b3;jsValue ( )main ( )jsValue( );printf(“M=100,n=%d/nM=1000,n=%d/nM=10000,n=%d/n”,b0,b1,b2);writeDat ();writeDat ( ) FILE *fp;fp=fopen (“out48. dat“, “w“ );fprintf(fp,“%d/n%d/n%d/n“,bO,b1,b2);fclose (fp);(分数:100.00)_三级信息管理技术机试-121 答案解析(总分:100.00,做题时间:90 分
3、钟)一、上机题(总题数:1,分数:100.00)1.某级数的前两项 A1=1,A 2=1,以后各项具有如下关系:An=An-2+2An-1下列程序的功能是:要求依次对于整数 M=100,1000 和 10000求出对应的 n值,使其满足:S nM 且Sn+1M,这里 Sn=A1+A2+ +An,并依次把 n值存入数组单元 b0,b1,b2冲,请编制 sValue()函数来实现此功能,最后调用函数 writeDat()把数组 b的值输出到 out48.dat文件中。 注意:部分源程序已给出。请勿改动主函数 mean()和输出函数 writeDat()的内容。试题程序:#includestdio.
4、hint b3;jsValue ( )main ( )jsValue( );printf(“M=100,n=%d/nM=1000,n=%d/nM=10000,n=%d/n”,b0,b1,b2);writeDat ();writeDat ( ) FILE *fp;fp=fopen (“out48. dat“, “w“ );fprintf(fp,“%d/n%d/n%d/n“,bO,b1,b2);fclose (fp);(分数:100.00)_正确答案:(j sValue ( )int a1=1,a2=1,n=1, an;int sum0, sum;sum0=a1+a2;while(1)an=a1+
5、a2*2; /*求下一个级数*/sum=sum0+an; /*求级数和*/a1=a2; /*将 a2赋给 a1*/a2=an; /*将 an赋给 a2*/n+;if(sum0100 /*则将 n存入数组单元 b0中*/if(sum01000 /*则将 n存入数组单元 b1中*/if(sum010000 /* 则将 n存入数组单元 b2中*/break; /*并强行退出循环*/sum0=sum; /*将 sum赋给 sum0,为下一次循环的求和作准备*/)解析:解析 本题考查的知识点如下:(1)利用循环和判断求级数。(2)循环的强行退出。(3)多个条件的“与”运算。由级数的表达式可以看出,级数中的各项可以由循环依次求得。当级数的和达到要求的条件时就可以退出循环结构。因为退出循环的两个条件 SnM,Sn+1M 要同时满足,所以两条件之间要用到“与”运算。这里使用 break退出整个循环结构。