江苏计算机上机考试题型解析1.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

haocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档