- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
江苏计算机上机考试题型解析1
2009春江苏计算机上机考试题型解析 上机分析典型试题
第一大类:数值类
题型1:素数问题
2009年三月考题:
程序功能:找出7个默森尼数。法国数学家默森尼曾提出下列公式:Mp=2^p-1。当p是素数并且Mp也是素数时,称Mp为默森尼数,例如,p=5, Mp=2^5-1=31,5和31都是素数,因此31是默森尼数;而Mp=2^11-1=2047,11是素数,2047不是素数,因此2047不是默森尼数.
[编程要求]
1.编写函数void Mersenne(long a[ ],int m),其功能是求出前m个默森尼数并以此将它们保存到a指向的数组中,
2.编写main函数,调用Mersenne函数并保存前7个默森尼数,将运行结果输出到屏幕及结果文件myf2.out中,最后将考生的考号也保存到结果文件myf2.out中
【测试数据与运行结果】
3 7 31 127 8191 131071 524287
#include stdio.h
#define N 7
int prime(long n) /*本函数的功能是判定素数*/
{long i;
for(i=2;i=n/2;i++) /*素数只能被1与自己整除,所以从2开始逐次比较*/
if(n%i==0) return 0;
return 1;
}
void Mersenne(long a[ ],int m)
{long f,n,k;
int i=0;
a[i++]=3;
for(n=3;im;n+=2)
{f=1;
for(k=1;k=n;k++) /*这个for循环实现2^n*/
f*=2;
if(prime(n)prime(f-1)) /*两个都是素数则成立*/
a[i++]=f-1;
}
}
void main()
{long a[7];
int i;FILE *fp;
fp=fopen(myf2.out,w); /*建立文件myf2.out*/
if(fp==NULL) exit(0);
Mersenne(a,N);
for(i=0;iN;i++)
{printf(%8ld,a[i]);fprintf(fp,%8ld,a[i]);
}
fprintf(fp,\mMy exam number is:0112400123);
}
题型二:整数拆分
用一组整数验证命题,任意一个百位数字与个位数字不同的三位正整数n1在经过以下操作后一定会变换到1089:将n1的百位数与个位数字交换得到n2,求n1和n2差的绝对值得到n3,将n3的百位数字与个位数字交换得到n4;求n3与n4的和得到n5,n5一定是1089,若n1、n3是一位数或两位数,则在高位补0使其成为三位数
例如:n1:123,n2:321,n3:198(321,-123),n4:891,n5:1089(198+891)
【编程要求】
1.编写函数int fun(int a[ ],int b[ ], int n),其功能是用n指向数组的前n个整数验证上述命题,将所有符合命题的整数所在数组元素的下标依次保存到b指向的数组中,函数返回b数组中数据的个数
2.编写main函数,声明a数组并用测试数据初始化,用a数组作为实参调用fun函数,将a数组中所有符合命题的整数输出到屏幕及结果文件myf2.out中,最后将考生本人的准考证号字符串也保存到结果文件myf2.out中
【测试数据与运行结果】
测试数据:123 765 1 45 121 1345 131 67 696 3589
运行结果:123 765 1 45 67
#include stdio.h
#define N 100
int fun(int a[ ],int b[ ], int n)
{int i,x,y,z,s,t,m,k=0;
for(i=0;in;i++)
if(a[i]/10001) /*判断是三位正整数*/
{x=a[i]/100;y=a[i]/10%10;z=a[i]%10; /*各位数分离*/
if(x!=z) /*百位数字与个位数字不同*/
{s=z*100+y*10+x;
t=sa[i]?(s-a[i]): (a[i]-s); /*两者的差*/
x=t/100;y=t/10%10;z=t%10;
m=z*100+y*10+x;
if(t+m==1089)
b[k++]=i;
}
}
return k;
}
void main()
{int a[N]={123,765,1,45,1
您可能关注的文档
最近下载
- 2025年执业药师之西药学专业一模考预测题库(夺冠系列).docx VIP
- ISO 15614-13 2023 金属材料焊接工艺规程及评定 电阻对焊和闪光焊(中文版).pdf
- 过敏性休克抢救指南2025版.docx
- 扩张型心肌病的护理查房课件.pptx VIP
- 第一章 食品工艺学导论.ppt VIP
- 系统性红斑狼疮(共44张PPT).pptx VIP
- 3.1 标志设计 (课件)人教版七年级美术上册.pptx VIP
- genesis2000脚本编写,Perl╱TK常见问答中文版.pdf VIP
- 2024《广西农产品电商物流SWOT-PEST分析及发展策略研究(数据图表论文)》16000字.docx VIP
- 剑桥国际少儿英语KB1第1-12单元文本-(英汉版).pdf VIP
文档评论(0)