计算机三级网络技术机试(上机操作)模拟试卷34 (题后含答案及解
析)
全部题型 2. 程序设计题
程序设计题
1. 补充countValue( )函数,函数功能是:选出5000以下符合条件的自然数。其条件是t千位数与百位数之和等于十位数与个位数之和,并且千位数与百位数之和等于个位数与十位数之差的10倍。计算并输出这些四位自然数的个数count以及这些数之和sum。最后调用函数WriteData( )。把结果count和sum输出到OUT_DAT中。 注意:部分源程序已经给出。 请勿改动主函数Main( )中的内容。 试题程序: #include<stdio.h> int count,sum; void countValue( ) { } void 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); WriteI)ata( ); }
正确答案:int itthou,hun,ten,datal for(i=5000;i>=1000;i--) { thou=i/1000; hun=i%looo/100; ten=i%100/10; data=i%10; if(thou+hun==ten+data&&.thou+hun==(da ta—ten)*10) { count++; sum+=i } }
解析:For循环递减遍历5000~1000之间的数,并且取当前数的千位数字、百位数字、十位数字、个位数字。如果千位加百位等于十位加个位且千位加百位等于个位减去千位乘10,则计数值count加1,并将i累加到sum中。
因篇幅问题不能全部显示,请点此查看更多更全内容