1、国家三级(网络技术)机试模拟试卷 288及答案与解析 一、程序设计题 1 补充 countValue()函数,函数功能是;选出 5000以下符合条件的自然数。其条件是;千位数与百位数之和等于十位数与个位数之和,并且千位数与百位数之和等于个位数与十位数之差的 10倍。计算并输出这些四位自然数的个数 count以及这些数之和 sum。最后调用函数 WriteData(),把结果 count和 sum输出到 OUT DAT中。 注意;部分源程序已经给出。 请勿改动主函数 Main()中的内容。 试题程序; #include int count, sum; void countValue() void
2、 WriteData() FILE*fp; fp=fopen(“OUT DAT“, “w“); fprintf(fp, “ d n d n“, count, sum); fclose(fp); void main() count=sum=0; countValue(); printf(“满足条件的自然数个数是; d n“, count); printf(“满足条件的自然数个数之和是; d n“, sum); WriteData(); 国家三级(网络技术)机试模拟试卷 288答案与解析 一、程序设计题 1 【正确答案】 int i, thou, hun, ten, data; for(i=5000; i=1000; i-) thou=i 1000; hun=i 1000 100; ten=i 100 10; data=i 10; if(thou+hun=ten+data&thou+hun=(data-ten)*10) count+; sum+=i 【试题解析】 For循环递减遍历 5000 1000之间的数,并且取当前数的千位数字、百位数字、十位数字、个位数字。如果千位加百位等于十位加个位且千位加百位等于个位减去千位乘 10,则计数值 count加 1,并将 i累加到 sum中。