1、计算机三级网络技术机试(上机操作)模拟试卷 41及答案与解析 一、程序设计题 1 请编制函数 int findValue(int outBuf)。其功能是:在三位整数 (100 999)中寻找符合下面条件的整数,并依次从小到大存人数组 b中:它既是完全平方数,义有两位数字相同。例如 144, 676等。 满足该条件的整数的个数通过所编制的函数返回。 最后词用函数 WriteData(int num, int b)把结果输出到文件 OUT DAT中。 注意:部分源程序已给出。 请勿 改动主函数 main()和写函数 WriteData()的内容。 试题程序: #include void Writ
2、eData(int, int bE); int findValue(int outBuf) void main() int b20 num; num=findValue(b); WriteData(num, b); void WriteData(int num, int b) FiLE*out; int i; Out=fopen(“OUT DAT”, “W”); printf(“num= d n”, num); fprintf(out, “num= d n”, num); for(i=0; ihum; i+) printf(“b d= d n”, i, bi); fprintt(out, “b
3、 d= d n”, i, bi); fclose(out); 计算机三级网络技术机试(上机操作)模拟试卷 41答案与解析 一、程序设计题 1 【正确答案】 int findValue(int outBuf) int i, d1, d2, d3, count=0; for(i=10; i*i1000; i+) d1=i*i 100; 求该平方数的百位数字 d2=i*i 10 10; 求该平方数的十位数字 d3=i*i 10; 求该平方数的个位数字 if(dl=d2 d2=d3 d3=d1) outBufcount+=i*i; return count; 【试题解析】 本题主要考查数位分解及排序。基本思路是,由于最小的三位数100是 10的平方。因此可以从 10开始。判断每个数的平方值是否有两位数字相同,直到找到数的平方值大于 999,这样既可遍历 100 999中所有的平方数,循环中将满足条件的数存入数组 ohtBuf中,由于遍历是从小到大的,因此数组outBuf中的元素已经按升序排列。