1、国家三级(网络技术)机试模拟试卷 11及答案与解析 一、程序设计题 1 请编写函数 countValue(),它的功能是:求 n以内 (不包括 n)同时能被 3与 7整除的所有自然数之和的平方根 s,并作为函数值返回,最后结果 s输出到文件OUT11.DAT中。 例如,若 n为 1000时,函数值应为 s=153.909064。 注意:部分源程序已给出。 请勿改动主函数 main()和输入输出函数 progReadWrite()的内容。 试题程序: #include conio. h #include math.h # include stdio. h double countValue(in
2、t n) main ( ) clrscr (); printf(“自然数之和的平方根 =%fn“, countValue(1000); progReadWrite ( ); progReadWrite ( ) FILE *wf; int i, n; float s; wf = fopen(“OUTll.DAT“, “w“); s = countValue (1000); fprintf(wf, “%fn“, s); fclose (wf); 国家三级(网络技术)机试模拟试卷 11答案与解析 一、程序设计题 1 【正确答案】 double countValue(int n) double xy=
3、0.0; int i; for(i=1;i n;i+) if(i%3=0 /*求 n以内 (不包括 n)同时能被 3与 7整除的所 有自然数之和 */ xy=sqrt(double)xy); /*再对总和求平方根 */ return xy; 【试题解析】 本题的解题思路是:利用一个 for循环依次从 n个自然数当中取数,对当前取出的数进行条件判断。判断条件为:既能被 3整除同时也能被 7整除,因此,用 “&”运算符来连接两个条件表达式,当某数满足判断条件时,就把该数累加到变量 xy中 (xy的初始值为 0 0),当所有满足条件的数都被找完后,对累加求得的变量 xy的值进行求平方根的计算,并把所求得的结果 作为函数值返回。