★2013年10月20日江苏省高校计算机等级考试二级C语言2套上机题(C01、C02)及其解答_张柏雄_第1页
★2013年10月20日江苏省高校计算机等级考试二级C语言2套上机题(C01、C02)及其解答_张柏雄_第2页
★2013年10月20日江苏省高校计算机等级考试二级C语言2套上机题(C01、C02)及其解答_张柏雄_第3页
★2013年10月20日江苏省高校计算机等级考试二级C语言2套上机题(C01、C02)及其解答_张柏雄_第4页
★2013年10月20日江苏省高校计算机等级考试二级C语言2套上机题(C01、C02)及其解答_张柏雄_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、2013年10月20日江苏省高校计算机等级考试二级c语言4套上机题(c01、c02)及其解答对面 第一页主界面目录c01(上午8:00-9:10) 原题 解答c02(下午9:30-10:40) 原题 解答附录:通用的自编函数2013秋江苏省高校计算机二级c语言上机考试的点评1、 总评价:近年来江苏省高校上机题目难度有所下降。本轮上机命题的难度系数与全国计算机等级考试二级c语言接近,全国计算机二级c语言考题中“填空、修改和设计”题全部从100道题库中抽取,所以全国考试是检验考生对题库熟悉程度;与此比较,江苏省的改错和编程题每次都是新命题的,所以江苏省上机考试是检验考生对c语言编程掌控能力。2、

2、对参加江苏省高校计算机二级c语言考试的考生建议:需要对c语言编程的特点熟悉:程序模块化;通用函数要熟记(通用素数判别、通用的回文数、回文素数、回文字符串、简单排序法、多项式部份和;闰年运算;求根等);掌握文件输出操作。3、 今后江苏省高校计算机二级c语言上机编程题可能出题有四大范围:字符串处理:2013春、2013年秋c02素数处理:2012秋、2013年秋c01矩阵处理:2012春特殊数处理(初等数学:合数、真因子或质因子之和、3位和4位陷阱数、水仙花数、亲密数、完数、数制转换、哥德巴赫猜想等):这也是历年关注最多的出题方向。详情可分别参阅:豆丁网上:预测计算机等级考试的c语言上机编程题之二

3、_矩阵_张柏雄.doc、预测江苏省高校计算机二级c考试上机编程题之三_素数_张柏雄.doc、预测江苏省计算机c语言等级考试的八道上机编程题之一_特殊数_张柏雄.doc和预测江苏省计算机c语言等级考试的八道上机编程题之四_字符串处理_张柏雄.doc苏州科技学院 张柏雄() qq:1035986156江苏省高等学校非计算机专业学生(c01)计算机基础知识和应用能力等级考试上机试卷(2013秋)二级 c语言(试卷代号c01)(本试卷完成时间 70分钟)一、 改错题(16分)【程序功能】统计一组单词(本题中含2个单词)中的每个单词在一篇文章中各自出现的次数,单词中的字母

4、字符分大小写。【测试数据与运行结果】测试数据: 文章正文:the olympic games will be held just outside the capital and the whole area will be called olympic city.被统计的一组单词:olympic,will屏幕输出:olympic:2will:2【含有错误的源程序】以下源程序已保存在t盘myf1.c文件内,考生可直接打开该文件测试程序。#include #include #include #include void count( char str,char substr10, int ct, i

5、nt n) int i, j, k=0, m=0; char t; for(i=0; stri; i+) for(j=i; isalpha(strj); i+) tm=strj; j+; m+; tm= /0; for(k=0;kn; k+) if(t=substrk) ctk+; m=0; int main() char line=the olympic games will be held just outside the capital and the whole area will be called olympic city.; char word10= olympic, will;

6、 int i, c2=0; count(line, word, c,2); for(i=0;i2; i+) printf(n%8s:%2d, wordi,ci); getch(); return 0;【要求】1. 打开t盘中myfl.c文件或将上述程序录入到myf1.c文件中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。2. 改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。3. 改正后的源程序(文件名myfl.c)保存在t盘的根目录中供阅卷使用,否则不予评分。二、编程题(24分)【程序功能】找出a,

7、 b区间内所有满足以下条件的整数:(1)该数是素数;(2)该数的十进制表示是4位数并且是降序数(即从高位到低位的各位数字依次减小的整数)。例如,4211即是素数又是4位降序数,因此4211是满足上述条件的整数。【编程要求】1、编写函数int decend(long n1, long n2, long x)。函数功能:找出n1, n2区间内满足上述条件的所有整数并依次存放到x指向的一维数组中,函数返回满足条件的整数个数。2、编写main函数。函数功能:声明变量a、b及一维数组c,键盘输入a、b的值,调用decend函数找出 a、b 区间内所有满足上述条件的整数并保存到c数组,输出c数组中的结果数

8、据到屏幕及数据文件myf2.out中,最后将考生本人的准考证号字符串输出到文件myf2.out中。【测试数据与运行结果】测试数据:a=1000 b=5000屏幕输出: 2111 2221 3221 3331 4111 4211 4421 4441【要求】1. 源程序文件名为myf2.c,输出结果文件名为myf2.out。2. 数据文件的打开、使用、关闭均用c语言标准库中文件操作函数实现。3. 源程序文件和运行结果文件均需保存到t盘上,供阅卷使用。4. 不要复制扩展名为obj和exe的文件到t盘上。说明:由于豆丁网不容许存放压缩文档,所以练习用的江苏省高校计算机二级c语言考试c01环境的安装包“

9、江苏省高校计算机等级考试(二级)考试环境安装包2013秋_c01上机题_张柏雄.exe”放置在网站/user/admin/uuxzhang 上。该压缩包能自动释放在桌面上,双击执行文件,进入“练习模式”,帐户名及密码均为“0102400000”。待改错文件“myf1.c”存放在桌面“二级考试”文件夹下。c01解答【改错题解答:myf1.c】此题比较简单。原程序存在5个错误,由于不需要输入错误程序,所以改正每个错误一般可得3分,其中错误3难度较大,为4分。错误在下面调试成功的程序已有注解#include #include #include #include v

10、oid count( char str,char substr10, int ct, int n) int i, j, k=0, m=0; char t10; /*1、字符串数组单定义不能没有下标:char t;char t10;*/ for(i=0; stri; i+) for(j=i; isalpha(strj); i+) tm=strj; j+; m+; tm= 0; /*2、字符串结束符出错:tm= /0;tm= 0;*/ for(k=0;kn; k+) if(strcmp(t,substrk)=0) /*3、字符串比较用库函数:t=substrkstrcmp(t,substrk =0

11、)*/ ctk+; m=0; int main() char line=the olympic games will be held just outside the capital and the whole area will be called olympic city.; char word10= olympic, will; int i, c2=0; /*4、数值数组定义并初次赋值必须用大括弧:int i, c2=0;int i, c2=0; */ count(line, word, c,2); /*5、调用函数时实参错误 count(line, word, c,2);count(l

12、ine, word, c,2);*/ for(i=0;i2; i+) printf(n%8s:%2d, wordi,ci); getch(); return 0;【编程题myf2.c解答】编程的关键是知道库函数所需要的相应的头文件名#include。除主函数和函数int decend(long n1, long n2, long x)外,根据c语言模块化设计特点,增加了(1)能判断一个“任一整数是否是素数”的自编函数int prime(int x),该函数必须要熟记之。*int prime(int x) int i; if(x=1) return 0; for(i=2; i=sqrt(x);i

13、+) if(x%i=0) return 0; return 1;*(2)能将一个正整数降序重排的自编函数 int descend(int m),该函数也必须要熟记之。*int descend(int m) int i,j,k=m,p=0, r=0,t10, w; while(k) tp+=k %10 ; k/=10 ; p-; for(i=0 ;ip ;i+) /*简单起泡法排序*/ for(j=0 ;jp-i ;j +) if(tjtj+1) w=tj, tj=tj+1, tj+1=w; /*降序用“”*/ for(i=0 ;i=p ;i+) r=r*10+ti; return r;*下面是

14、正整数降序重排的自编函数 int descend(int m)调试程序及其结果。【编程题myf2.c解答思路及调试程序】函数int decend(long n1, long n2, long x)中调用是否是素数子函数int prime(int x),与此同时满足其降序数与原数相等的判别,若两项条件均满足,则存入数组x。屏幕:文件myf2.out【调试成功的myf2.c】#include #include /库函数exit(0)需要#include /库函数getch()需要#include int prime(int x) /*判别一个正整数是否是素数函数*/ int i; for(i=2;

15、x=4?i=sqrt(x):i=x-1;i+) if(x%i=0) return 0; return 1;int descend(int m, int d) /*通用数值量重新排序函数:d降序用实参1,升序用0*/ int i,j,k=m,p=0, r=0,t10, w; while(k) tp+=k %10 ; k/=10 ; p-; /*数值量存入为一维数组*/ for(i=0 ;ip ;i+) /*简单起泡法排序程序段*/ for(j=0 ;jp-i ;j +) if(d=1?tjtj+1) w=tj, tj=tj+1, tj+1=w; for(i=0 ;i=p ;i+) /*已排好序的

16、一级数组转换为一个数值量*/ r=r*10+ti; return r;int decend(long n1, long n2, long x) int k=0,i; for(i=n1;i=n2;i+)if(prime(i)&descend(i,1)=i) xk+=i; /*满足既是素数,又是降序量,存入数组x;*/ return k; /*满足条件的个数存入变量k,并返回*/int main() int a,b,c10,m,i; file *fp; if(fp=fopen(myf2.out,w)=null) printf(ncant open the file!); exit (0); sca

17、nf(a=%d b=%d,&a,&b);m=decend(a,b,c); for(i=0;im;i+) printf(%d ,ci),fprintf(fp,%d ,ci); printf(n);fprintf(fp,n); fprintf(fp,nmy number is:1292340n);fclose(fp); /*操作结束,关闭文件fp 书p334 */ getch(); return 0;若将调用函数修改为if(prime(i)&descend(i,0)=i) xk+=i; /*满足既是素数,又是升序量,存入数组x;*/若输入为40005000,则显示结果是:江苏省高等学校非计算机专业

18、学生(c02)计算机基础知识和应用能力等级考试上机试卷(2013秋)二级 c语言(试卷代号c02)(本试卷完成时间 70分钟)一、 改错题(16分)【程序功能】输出前8个欧几里德数。欧几里德数是指通过公式 计算得到的整数,其中en表示第n个欧几里德数, 表示前n个素数的连乘积。例如,前3个素数是2、3和5,因此前3个欧几里德数分别是3、7和3 1。【测试数据与运行结果】测试数据: n=8屏幕输出: 3 7 31 211 2311 30031 510511 9699691【含有错误的源程序】以下源程序已保存在t盘myf1.c文件内,考生可直接打开该文件测试程序。#include #include

19、 #include int prime(int n) int i; for(i=2; i=sqrt(n); i+) if(n%i=0) return 0; return 1; int main() long n, i=1, k=3,a=1, p10=2; printf(if);scanf(%ld,n); do if(primek) pi+=k;k+;while(in);for(i=0; in; i+) a=pi; printf(%ld ,a+1); getch(); return 0;【要求】1打开t盘中myfl.c文件或将上述程序录入到myf1.c文件中,根据题目要求及程序中语句之间的逻辑关

20、系对程序中的错误进行修改。2 改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。3 改正后的源程序(文件名myfl.c)保存在t盘的根目录中供阅卷使用,否则不予评分。二、编程题(24分)【程序功能】输入一个字符串,从中依次取出连续的字母作为一个字母串,并将其首字母换成对应的大写字母,然后将取出的所有字母串输出。例如,输入字符串“we12are3*45chinese.”,输出的字母串串依次为:we、are和chinese。【编程要求】1、定义符号常量n表示20。2、编写函数int gectcov(char str, ch

21、ar wn)。函数功能:从str指向的字符串中逐个取出字母串,将每个字母串的首字母换成对应的大写字母,然后依次存放到w指向的二维字符数组中(每行存放一个字母串),函数返回w数组中存放的字母串个数。3、编写函数main()。函数功能:声明一维字符数组str和二维字符数组w,用测试数据初始化str数组,以数组str和w为实参调用getcov函数,将w数组中所有字母串输出到屏幕及数据文件myf2.out中。最后将考生本人的准考证号字符串输出到文件myf2.out中。【测试数据与运行结果】测试数据:we12are3*45chinese.屏幕输出:we are chinese 【要求】1.源程序文件名为

22、myf2.c,输出结果文件名为myf2.out。2.数据文件的打开、使用、关闭均用c语言标准库中文件操作函数实现。3.源程序文件和运行结果文件均需保存到t盘上,供阅卷使用。4.不要复制扩展名为obj和exe的文件到t盘上。说明:由于豆丁网不容许存放压缩文档,所以练习用的江苏省高校计算机二级c02考试环境的安装包“江苏省高校计算机等级考试(二级)考试环境安装包2013秋_c02上机题_张柏雄.exe”放置在网站/user/admin/uuxzhang 上。该压缩包能自动释放在桌面上,双击执行文件,进入“练习模式”,帐户名及密码均为“0102400000”。待改

23、错文件“myf1.c”存放在桌面“二级考试”文件夹下。c02解答【改错题解答:c02套题的myf1.c】此题比较简单。按照标准,原程序存在4个错误,所以每个错误,若改正,则得4分。#include #include #include int prime(int n) int i; for(i=2; i=sqrt(n); i+) if(n%i=0) return 0; /*1、逻辑表达式错误:n%i=0n%i=0*/ return 1; int main() long n, i=1, k=3,a=1, p10=2; printf(if); scanf(%ld,&n); /*2、函数输入用变量地址

24、:scanf(%ld,n);scanf(%ld,&n);*/ do if(prime(k) /*3、函数调用错误:primekprime(k)*/ pi+=k; k+; while(in); for(i=0; in; i+) a=a*pi; /*4、题意错误:a=pi;a=a*pi;*/ printf(%ld ,a+1); getch(); return 0;【编程题解答:c02套题的myf2.c】解题思路:。编程的关键是需要知道库函数所需要的相应的头文件名。此题较简单。字符串处理可参考本次考试“c01”的改错题处理方法。#include #include /库函数exit(0)需要#incl

25、ude /库函数getch()需要#include #define n 20int gectcov(char str, char wn) int i,j,k,n=0; for(i=0;stri;i+) /字符串逐个字母检验,直到遇到结束符0 k=0; for(j=i; isalpha(strj); j+) /遇到字母,则连续处理,直到不是字母结束 if(k=0&islower(strj) wnk+=strj-32; /遇到字母串的第一个小写字母,则变换为大写 else wnk+=strj; /其他字母,则存入数组w i+; /字符串位置同步移动 wnk=0; /字母串结束时加结束符0 n+;

26、return n; /*满足条件的字母串个数存入变量k,并返回*/int main() int i,k; char str=we12are3*45chinese.,w10n; file *fp; if(fp=fopen(myf2.out,w)=null) printf(ncant open the file!); exit (0);k=gectcov(str, w); for(i=0;ik;i+) printf(%s ,wi),fprintf(fp,%s ,wi); printf(n);fprintf(fp,n); fprintf(fp,nmy number is:1292340n); fcl

27、ose(fp); /*操作结束,关闭文件fp 书p334 */getch(); return 0;附录:通用的自编函数【1、编程题中文件处理的通用格式】对任课教师建议:从考生临场发挥来看,学生对编程题中的“文件操作”部份比较生疏,有的考生错误认为,题目要求将本人准考号输出到文件“myf2.out”,错误将文件名myf2.c修改为123456789_myf2.c;有的考生错误新建“myf2.out”文件,然后输入本人准考号等。建议教师结合 “对文件输入和输出”,将下面标准程序段(结合c01题目蓝色字体)教给学生,并要求记忆。#include /库函数exit(0)需要#include /库函数getch()需要.int main() int a,b,c10,m,i; file *fp; if(fp=fopen(“myf2.out”,”w”)=null) printf(“ncant open the file!”); exit (0); scanf(“a=%d b=%d”,&a,&b); m=decend(a,b,c); for

温馨提示

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

评论

0/150

提交评论