您好,欢迎来到世旅网。
搜索
您的当前位置:首页国家三级(数据库技术)机试模拟试卷67(题后含答案及解析)

国家三级(数据库技术)机试模拟试卷67(题后含答案及解析)

来源:世旅网


国家三级(数据库技术)机试模拟试卷67 (题后含答案及解析)

题型有:1. 程序设计题

程序设计题

1. 下列程序的功能是:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些4位自然数的个数cnt及这些数的和sum。请编写函数countValue( )实现程序的要求,最后调用函数 writeDAT( )把结果cnt和sum输出到文件OUT67.DAT中。 注意:部分源程序已给出。 请勿改动主函数main( )和写函数writeDAT( )的内容。 试题程序: #include<stdio.h> int cnt,sum; void countValue( ) { } void main( ) { cnt=sum=0; countValue( ); printf (“满足条件的自然数的个数=%d\\n”, cnt); printf (“满足条件的自然数的值的和=%d\\n”, sum); writeDAT( ); } writeDAT ( ) { FILE

*fp; fp=fopen(“OUT67.DAT”,”w”); fprintf(fp,”%d\\n%d\\n”,cnt,sum); fclose(fp); }

正确答案:void countValue( ) { 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-thou)*10){/*千位数与百位数之和等于十位数与个位数之和,且千位数与百位数之和等于个位数与千位数之差的10倍*/ cnt++; /*则统计满足条件的数的个数*/ sum+=i;/*将满足条件的数求和*/} } }

解析:本题考查的知识点如下:(1)“%”与“/”的使用。(2)判断结构中多个条件的布尔运算。(3)循环结构的使用。本题要求选出5000以下符合条件的4位数,所以选择范围是1000到5000。这里要借助运算符“%”与“/”将4位数各位上的数拆成独立的数字:将1个4位数整除1000则可得到其千位上的数字,除以1000取余再整除100则可得百位上的数字,除以100取余再整除10则可得十位上的数字,除以10取余则得个位上的数字。题中给出的两个条件都要满足,所以两条件之间用“与”运算。使用循环结构对1000到5000之间的数依次进行上述的处理。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- esig.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务