1、三级网络技术机试-78 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.下列程序的功能是:计算出自然数 SIX 和 NINE,它们满足的条件是 SIX+SIX+SIX=NINE+NINE 的个数 cnt,以及满足此条件的所有 SIX 与 NINE 的和 sum。请编写函数 countValue()实现程序要求,最后调用函数 writeDAT()把结果 cnt 和 sam 输出到文件 OUT51.DAT 中。其中的 S,L X,N,I,N,E 各代表一个十进制数。注意:部分源程序已给出。请勿改动主函数 main()和写函数 writeDAT(
2、)的内容。试题程序:#includestdio. hint cnt, sum;void countValue()void main ()cnt=sum=O;countValue ();printf (“满足条件的个数=%d/n“, cnt);printf (“满足条件所有的 SIX 与 NINE 的和=%d/n“, sum);writeDAT ();writeDAT ( )FILE *fp;fp=fopen(“OUT51.DAT“, “w“);fprintf (fp, “%d/n%d/n“, cnt, sum);fclose (fp);(分数:100.00)_三级网络技术机试-78 答案解析(
3、总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.下列程序的功能是:计算出自然数 SIX 和 NINE,它们满足的条件是 SIX+SIX+SIX=NINE+NINE 的个数 cnt,以及满足此条件的所有 SIX 与 NINE 的和 sum。请编写函数 countValue()实现程序要求,最后调用函数 writeDAT()把结果 cnt 和 sam 输出到文件 OUT51.DAT 中。其中的 S,L X,N,I,N,E 各代表一个十进制数。注意:部分源程序已给出。请勿改动主函数 main()和写函数 writeDAT()的内容。试题程序:#include
4、stdio. hint cnt, sum;void countValue()void main ()cnt=sum=O;countValue ();printf (“满足条件的个数=%d/n“, cnt);printf (“满足条件所有的 SIX 与 NINE 的和=%d/n“, sum);writeDAT ();writeDAT ( )FILE *fp;fp=fopen(“OUT51.DAT“, “w“);fprintf (fp, “%d/n%d/n“, cnt, sum);fclose (fp);(分数:100.00)_正确答案:(void countValue()int i=100;wh
5、ile (1)if(3*i%2=0 /*统计满足条件的数的个数*/sum+=i+3*i/2; /*求满足上条件的所有 SIX 与 NINE 的和*/i+;else i+; /*如果果不满足条件,则取下一个数*/if(i999 II 3i/29999)break; /*当 SIXP 不为 3 位数或所得的数不为四位数时,退出循环*/ )解析:解析本题二查的知识点如下:(1)循环与判断的嵌套使用。(2)多条件的布尔运算。(3)“%”与“/”运算符的使用。根据题意,求的是满足 3 位数乘以 3 等于 4 位数乘以 2 的数的个数。我们可以使用循环结构对所有的 3 位数进行判断,若某个 3 位数乘以 3 整除 2 所得的数是 4 位整数,则这个 3 位数是满足条件的数。当判断的数不再是 3 位数或者进行处理后所得的数大于 9999,则要退出循环。在这里,还要注意判断结构中,各条件之间是用“与”运算还是用“或”运算。