- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[IT认证]三级上机练习册
第1套
【试题要求】
程序prog1.c的功能是:计算500-800区间内素数的个数cnt,并按所求素数的值从大到小的顺序,计算其间隔减、加之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数……的值sum。请编写countValue( )实现程序的要求,最后main()函数调用函数writeDAT( )把结果cnt和sum,输出到文件out.dat中。
注意:部分源程序存放在文件prog1.c中
请勿改动主函数main()和输出数据函数writeDAT的内容
【标准答案】
void countValue()
{
int n,i;
for(n=800;n=500;n--)
{
for(i=2;i=n-1;i++)
if(n%i==0) break;
if(in-1)
{
cnt++;
if(cnt%2!=0) sum=sum+n; else sum=sum-n;
}
}
}
第2套
【试题要求】
程序prog1.c的功能是:计算出自然数six和nine满足条件six+six+six=nine+nine的个数cnt,以及满足条件所有的six与nine的和sum。请编写函数countValue( )实现程序的要求,最后main( )函数调用函数writeDAT( )把结果cnt和sum,输出到文件out.dat中。
其中的s,I,x,n,e各代表一个十进制数字,允许代表的数字相同,但s和n不能为0。例如:944+944+944=1416+1416
注意:部分源程序存放在文件prog1.c中
请勿改动主函数main()和输出数据函数writeDAT的内容
【标准答案】
void countValue()
{
int six,nine;
int m,n,p,q;
for(six=100;six=999;six++)
{
nine=3*six/2;
m=six%100/10;
n=nine%1000/100;
p=nine/1000;
q=nine%100/10;
if(m==np==qnine=1000nine=99993*six==2*nine)
{sum=sum+six+nine;cnt++;}
}
}
第3套
【试题要求】
请编写函数void countValue(int *a,int *n),它的功能是:求出1到1000之间能被7或11整除但不能同时被7和11整除的所有整数,其结果按从小到大的顺序放在数组a中,并通过形式参数n传递这些数的个数。注意:部分源程序存放在文件prog1.c中
请勿改动主函数main()和输出数据函数writeDAT的内容
【标准答案】
void countValue(int *a, int *n)
{
int m,cnt=0;
for(m=1;m1000;m++)
if((m%7==0||m%11==0)m%77!=0) {a[cnt]=m;cnt++;}
*n=cnt;
}
第4套
【试题要求】
已知数据文件in.dat中存有300个四位数,并已调用读函数readDat( )把这些数存入数组a中,请编制一函数jsValue( ),其功能是:求出千位数上的数加百位数上数等于十位数上的数加个位数上的数的个数cnt,再把所有有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序。最后main( )函数调用写函数writeDat( )把数组b中的数输出到文件out.dat中。
例如:7153,7+1=5+3,则该数满足条件存放数组b中,且个数cnt=cnt+1。
8129,8+1!=2+9,则该数不满足条件忽略。
注意:部分源程序存在文件prog1.c文件中。
程序中已定义数组:a[300],b[300],已定义变量:cnt
请勿改动数据文件in.dat中的任何数据、主函数main( )、读函数readDat( )和写函数writeDat( )的内容。
【解题思路】
第1步,对a数组中第1个元素到第300个元素依次执行如下操作:①求出千位数;②求出百位数字;③求出十位数字;④求出个位数字;⑤基于千位、百位、十位、个位判断是否符合条件,如果符合条件则将其存到以b[cnt]元素中,同时使个数cnt的值加1。
注,本步功能是将a数组中符合条件的数存放到数组b中,同时求出符合条件数的个数cnt。
本步对应程序为如下。
for(i=0;i300;i++) /*循环变量i用于表示数组a中第1个元素至第300个元素的下标*/
{
m=a[i]/1000; /*求出a[i]的千位数字并且赋给变量m*/
n=a[i]%1000/
文档评论(0)