1、2010 春江苏省二级 C 语言上机第一套及答案解析(总分:40.00,做题时间:70 分钟)一、改错题(16 分)(总题数:1,分数:16.00)1. 【程序功能】 验证 3(n 范围内的任意两个相邻素数的平方之间至少存在 4 个素数。例如,5 和 7 是两个相邻素数,52(25)与 72(49)之间存在 6 个素数:29 31 37 41 43 47。 【测试数据与运行结果】 显示:input n: 输入:10 输出: 35 k=5 11 13 17 19 23 57 k=6 29 31 37 41 43 47 【含有错误的源程序】 #include 样 include int prime
2、(int n) int i,flag=1; for(i=1;in) return 0; for(i=m*m;i_二、编程题(24 分)(总题数:1,分数:24.00)2. 【程序功能】 在给定范围内查找 k 使得用公式 k2+k+17 生成的整数满足以下条件:该数的十进制表示中低 3 位数字相同,去掉低 3 位后的整数是回文数。例如,当 k=461 时用公式生成的整数 是 212999,该数满足所给条件。 【编程要求】 1编写函数 int findnum(int n1,int n2,long a2)实现以下功能:k 依次取 n1n2 范围 内的每个整数,分别用每个 k 及公式 k2+k+17
3、生成整数 y,若 y 满足给定条件,则将 k值及 y 值保存到 a 指向的数组中,函数返回 a 数组中 k 的个数。 2编写函数 main 实现以下功能:声明二维数组 a 和变量 n1、n2,输入两个整数并保存到 n1、n2 中,用 n1、n2 及 a 数组作实参调用 findnum 函数,按所给格式输出 a 数组中的数据到屏 幕及文件 myf2.out 中。最后将考生本人的准考证号输出到文件myf2out 中。 【测试数据与运行结果】 输入:n1=1,n2=10000 输出:k number 461 212999 586 343999 3839 14741777 【要求】 1源程序文件名为
4、myf2c,输出结果文件名为 myf2out。 2数据文件的打开、使用、关闭均用 c 语言标准库中缓冲文件系统的文件操作函数实现。 3源程序文件和运行结果文件均需保存在 T:盘根目录中供阅卷使用。 4不要复制扩展名为 obj 和 exe 的文件到 T:盘中。 (分数:24.00)_2010 春江苏省二级 C 语言上机第一套答案解析(总分:40.00,做题时间:70 分钟)一、改错题(16 分)(总题数:1,分数:16.00)1. 【程序功能】 验证 3(n 范围内的任意两个相邻素数的平方之间至少存在 4 个素数。例如,5 和 7 是两个相邻素数,52(25)与 72(49)之间存在 6 个素数
5、:29 31 37 41 43 47。 【测试数据与运行结果】 显示:input n: 输入:10 输出: 35 k=5 11 13 17 19 23 57 k=6 29 31 37 41 43 47 【含有错误的源程序】 #include 样 include int prime(int n) int i,flag=1; for(i=1;in) return 0; for(i=m*m;i_正确答案:( for(i=1;i0) x3=x3*10+x1%10;x1=x1/10; if(x2=x3ai+1=y; return i; main() int i,j;long a102,n1,n2; FILE *fp; fp=fopen(“Myf2.out“,“w“); scanf(“%d%d“, j=findnum(n1,n2,a); printf(“/n k/t number“); for(i=0;i