2010春江苏二级C上机题第1、2套.doc_第1页
2010春江苏二级C上机题第1、2套.doc_第2页
2010春江苏二级C上机题第1、2套.doc_第3页
2010春江苏二级C上机题第1、2套.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2010春江苏二级C上机试题第1、2套第1套一、改错题(16分) 【程序功能】验证3n范围内的任意两个相邻素数的平方之间至少存在4个素数。例如,5和7是两个相邻素数,52(25)与72(49)之间存在6个素数:29 31 37 41 43 47。 【测试数据与运行结果】 显示:input n: 输入:10 输出: 35k=5 1113 17 1923 57k=6 293137414347 【含有错误的源程序】 #include #include int prime(int n) int i,flag=1; for(i=1;i=sqrt(n);i+) if(n%i=0)flag=0; return flag; int fun(int a,int n) int i,k=0; for(i=3;in) return 0; for(i=m*m;in*n;i+) if(prime(i) bk+=i; return k; void main() int a50=0,b100=0,i,m,k,j,n; printf(input n:); scanf(%d,&n); m=fun(a,n); for(i=O;im-1;i+) k=fun1(ai,ai+1,bO); printf(%d%dk=%d,ai,ai+1,k); if(k4)printf(false);break; for(j=0;jk;j+) if(j%10=O) prinff(n); printf(%5d,bj); printf(n); getch(); 【要求】 1将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。 2改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。 3改正后的源程序(文件名myf1.c)保存在T:盘根目录中供阅卷使用,否则不予评分。 二、编程题(24分) 【程序功能】 在给定范围内查找k使得用公式k2+k+17生成的整数满足以下条件:该数的十进制表示中低3位数字相同,去掉低3位后的整数是回文数。例如,当k=461时用公式生成的整数是212999,该数满足所给条件。【编程要求】 (1)编写函数int findnum(int n1,int n2,long a2)实现以下功能:k依次取n1n2范围内的每个整数,分别用每个k及公式k2+k+17生成整数y,若y满足给定条件,则将k值及y 值保存到a指向的数组中,函数返回a数组中k的个数。 (2)编写函数main实现以下功能:声明二维数组a和变量n1、n2,输入两个整数并保存到 n1、n2中,用n1、n2及a数组作实参调用findnum函数,按所给格式输出a数组中的数据到屏幕及文件myf2.out中。最后将考生本人的准考证号输出到文件myf2.out中。【测试数据与运行结果】 输入:n1=1,n2=10000 输出:k number 461 212999 586 343999 383914741777 【要求】 1.源程序文件名为myf2.c,输出结果文件名为myf2.out。 2.数据文件的打开、使用、关闭均用c语言标准库中缓冲文件系统的文件操作函数实现。 3.源程序文件和运行结果文件均需保存在T:盘根目录中供阅卷使用。 4.不要复制扩展名为obj和exe的文件到T:盘中。 第2套一、改错题(16分) 【程序功能】先将一个正整数转换为十进制数字字符串,再将千位分隔符插入到该字符串中,最后输出该字符串。 【测试数据与运行结果】 输入:1234567 输出:1234567 1,234,567【含有错误的源程序】 #include #include void ltoa(char s,long num) long n=num,i=0; printf(%ldn,num); while(n) i+;n/=10; si=0; while(num) s-i=num%10+0; num/=10; void insert(char s) char j,k,t; t=j=strlen(s); while(j3) j=j-3; for(k=t;kj;k-) sk=sk+1; sj=,; t+; void main() static char s20; long num; scanf(%d,&num); ltoa(s,num); insert(s,num); puts(s); getch(); 【要求】 1将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。 2改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。 3改正后的源程序(文件名myf1.c)保存在T:盘根目录中供阅卷使用,否则不予评分。 二、编程题(24分) 【程序功能】 一个整数的“真因子”是指包括1但不包括整数自身的因子。“真因子和数列”是指取一个正整数作为数列首项,首项之后的每一项都是前一项的真因子之和。真因子之和数列有几种可能的形式,其中的一种形式是以1结束。例如,取10作为数列首项,10的真因子和为8(1+2+5),8的真因子和为7(1+2+4),7的真因子和为1。因此10生成的真因子和数列(10,8,7,1)以1结束。编写程序分别以在给定范围内取值的多个正整数作为数列首项,生成多个与其对应的“真因子和数列”,这些数列均以1结束。【编程要求】 (1)编写函数int sequ(int m1,int m2,int num10)实现以下功能:依次取m1,m2范围内每个正整数作为数列首项可生成m2-m1+1个真因子之和数列,将其中不超过10项且以1结束的数列保存到num指向的二维数组中,函数返回num数组中存储的数列个数。(2)编写函数main实现以下功能:声明二维数组x和变量m1、m2,输入两个正整数保存到m1和m2中(m1m2),用m1、m2和数组x作为实参调用sequ函数,按所给格式将二维数组x中的数列输出到屏幕及文件myf2.out中。最后将考生本人的准考证号输出到文件myf2.out中。【测试数据与运行结果】 输入:m1=21,m2=30输出:21 11 122 14 10 8 7 123 124 36 55 17 126 16 15 9 4 3 127 13 129 1【要求】 1将上述程序录入到文件myf1.c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论