资源描述:
《2010~2012年江苏省计算机二级c上级考试试题及答案上机》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2012春江苏省高校计算机等级考试二级C语言上机试卷1(本试卷完成时间为70分钟)一、改错题(16分)【程序功能】以下程序中函数voidcsort(charstr[][N],intn)对str指向的二维数组前n行中存储的n个字符串分别作如下处理:从中间将字符串一分为二,左半部分字符子串按字符的ASCII码值从大到小排序(若字符串的长度为奇数,则中间字符不参加排序)。【测试数据与运行结果】测试字符串:"abcdefgh","123498765"屏幕输出:dcbaefgh432198765【含有错误的源程序】以下源程序已保
2、存在T盘myf1.c文件内,考生可直接打开该文件的调试程序。1#include2#include3#include4#defineN805voidcsort(charstr[][N],intn);6voidmain()7{chars[2][N]="abcdefgh","123498765";8inti;9csort(s,2);10for(i=0;i<2;i++)11puts(s);12getch();13}14voidcsort(charstr[][N],intn
3、)15{inti,j,k,len,half;16chartemp;17for(i=0;i4、文件中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。3.将改正后的源程序(文件名myf1.c)保存在T盘中供阅卷使用,否则不予评分。二、编程题(24分)【程序功能】对于所给的一个自然数n,查找并输出所有满足以下条件的等差数列:(1)公差为1;(2)数列中各项数值之和等于n。【编程要求】1.编写函数intfound(inta[][30],intn)。函数的功能:查找满足上述条
5、件的所有等差数列并依次将其保存到a指向的数组中(一行保存一个数列),函数返回找到的数列个数。2.编写函数main()。函数的功能:声明一个二维整型数组用于保存查找结果,输入一个整数并保存到变量n中(n≤600)。用n和整型数组作实参调用found函数,将找到的所有等差数列输出到屏幕及数据文件myf2.out中。最后将考生本人的准考证号输出到文件myf2.out中。【测试数据与运行结果】输入:n=500屏幕输出:8910111213141516171819202l222324252627282930313259606l6
6、2636465669899100101102500【要求】1.源程序文件名为myf2.c,输出结果文件名为myf2.out。2.数据文件的打开、使用、关闭均用C语言标准库中的文件操作函数实现。3.源程序文件和运行结果文件均需保存在T盘中供阅卷使用。4.不要复制扩展名为obj和exe的文件到T盘中。参考答案一、改错题第7行{chars[2][N]="abcdefgh","123498765";改为{"abcdefgh","123498765"}第11行puts(s);改为puts(s[i])第18行{len=strlen
7、(str[i][0]);改为str[i]第21行for(k=j+1;k#includeintfound(inta[][30],intn)’{inti,k=0,s=0,j,count,l=0;for(i=1;i<=n;i++){for(s=0,j=i;s8、(){inti,j,n,m,a[10][30]={0};FILE*fp;fp=fopen("myf2.out","w");printf("inputn:");scanf("%d",&n);m=found(a,n);for(i=0;i