2023年江苏省二级C语言上机考试模拟题.pdf
《2023年江苏省二级C语言上机考试模拟题.pdf》由会员分享,可在线阅读,更多相关《2023年江苏省二级C语言上机考试模拟题.pdf(95页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、江苏市二级C语言上机考成模拟题改错题第1题:【程序功能】函数int wo rd_so rt(c ha r s,c ha r w1 0 2 0)的功能是:将s指向的字符串(英文句子)中所有单词取出保存到W 指向的数组中,再对W 数组中的单词按字典序排序。函数返回W 数组中存储的单词个数。【测试数据与运营结果】测试数据:c is a pro gra mming la ngua ge.运营结果:a c is la ngua ge pro gra mming.【具有错误的源程序】#inc lude#inc lude#inc lude#inc ludeint wo rd_so rt(c ha r s,c
2、 ha r w1 0 2 0)!int i=0,j=0,k=0;c ha r b 2 0;while(si)(if(isa lpha(si)wk j=si;else(wkj=0 ;k+;j=0;i+;)fo r(i=0;i k-l;i+)fo r(j=O;j 0)(strc py(b,wj);strc py(wj+1,wj);strc py(wj+1,b);)return k;)vo id ma in()(c ha r sent 8 0 =c is a pro gra mming la ngua ge./z;c ha r wo rd2 0;int i,n;n=wo rd_so rt(sent,
3、wo rd);fo r(i=0;i n;i+)printf(%s,wo rdi);)【规定】1 .将上述程序录入到文献myfL c 中,根据题目规定及程序中语句之间的逻辑关系对程序中的错误进行修改。2 .改错时,可以修改语句中的一部分内容,调整语句顺序,增长少量的变量说明或编译预解决命令,但不能增长其他语句,也不能删去整条语句。3.改正后的源程序(文献名myfl.c)保存在考生文献夹中供阅卷使用,否则不予评分。第 2 题:【程序功能】函数vo id ring(int a,int m,int n,int*ma x)的功能是:将a 指向数组中前n个正整数看作一个圆环,在a 数组中查找相邻四个元素之
4、和最大的四个元素(用下标表达)及其和值,将这四个元素的下标依次保存到m指向的数组中,最大值(和值)保存到ma x指向的变量中。ma in函数调用ring函数,在a 数组的2 0 个元素中找出四个元素,并按运营结果的格式输出这四个元素的标记及和值。【测试数据与运营结果】测试数据:int a 2 0 =1 3,1 8,4,1,6,1 0,1 5,2,1 7,3,5,7,1 6,8,1 1,1 4,9,1 2,1 9,2 0 ;运营结果:ma x=7 0,a 1 8+a 1 9+a 0+a l=1 9+2 0+1 3+1 8=7 0【具有错误的源程序】#inc lude#inc ludevo id
5、ring(int a,int m,int n,int*ma x)(int i,j,ni,t;*ma x=0;fo r(i=0;i n;i+)t=0;fo r(j=0;j *ma x)ma x=t;ni=i;m0 =ni;fo r(i=1;i 4;i+)mi=mi-1 +1;)vo id ma inO(int a 2 0 =1 3,1 8,4,1,6,1 0,1 5,2,1 7,3,5,7,1 6,8,1 1,1 4,9,1 2,1 9,2 0);int i,n,m4,ma x,sum=0;ring(a,m,2 0,&ma x);printf(ma x=%d,ma x);fo r(i=0;i 3
6、;i+)printf(/za%d mi);printf(a%d=,mi);fo r(i=0;i 3;i+)(sum=sum+a mi;if(i=3)printf(%d=,a mi);else printf(%d+”,a mi);printf(/dn,sum);)【规定】1.将上述程序录入到文献myfl.c中,根据题目规定及程序中语句之间的逻辑关系对程序中的错误进行修改。2.改错时,可以修改语句中的一部分内容,调整语句顺序,增长少量的变量说明或编译预解决命令,但不能增长其他语句,也不能删去整条语句。2.改正后的源程序(文献名myfl.c)保存在考生文献夹中供阅卷使用,否则不予评分。第 3 题:【
7、程序功能】函数c ha nge从a 数组存储的字符串中取出所有十六进制数字字符依次存入字符数组b 中,然后再将b 数组中的数字字符串转换成一个整数并返回。提醒:库函数isxdigit(c h)的功能是检查c h是否是十六进制数字字符,若是则返回1,否则返回0。【测试数据与运营结果】测试数据:输入xyz3 F 4 tq k”运营结果:输出1 0 1 2【具有错误的源程序】#inc lude#inc lude#inc ludelo ng c ha nge(c ha r a)(int i,j=0;lo ng int k=0;c ha r b 1 0 =0 ;fo r(i=0;a i!=O ;i+)i
8、f(isxdigit(a i)b i+=a i;b j=M ;i=0;doif(isdigit(b i)k=k*1 6 +b i-O ;i+;else(b i=i supper(b i)?b i:b i-a +A;k=k*1 6 +b i-A;i+;)while(b i 1=O);return k;)vo id ma in0(c ha r c 8 0 =xyz3 F 4 tq k”;lo ng m;i n =c ha nge(c 8 0);printf(/z%ld,z,m);)【规定】1 .将上述程序录入到文献myfl.c 中,根据题目规定及程序中语句之间的逻辑关系对程序中的错误进行修改。2
9、.改错时,可以修改语句中的一部分内容,调整语句顺序,增长少量的变量说明或编译预解决命令,但不能增长其他语句,也不能删去整条语句。3 .改正后的源程序(文献名myfl.c)保存在考生文献夹中供阅卷使用,否则不予评分。第 4 题:【程序功能】函数H o la ndF la g的功能是:已知在fla g指向的有n个元素的字符数组中,每个元素的值是字符R 、w或B中的一个。函 数 按 照 R 、w、B的顺序重新排列flag数组中所有元素的值。算法提醒:若flag数组初始值为R BW BR W R BW则在flag数组中出现数据互换的环节与效果为:第1 步:与flag8 互换后数据为R W W BR W
10、 R BB第2 步:flag 3 与flag 6 互换后数据为R W W R R W BBB第3 步:与flag4 互换后数据为R R W R W W BBB第4 步:匕8 2 与门2 8 3 互换后数据为口!神8 8【测试数据与运营结果】测试数据:R BW BR W R BW运营结果:R R R W W W BBB【具有错误的源程序】#include#include#include#define 1 0 Nvoid H olandF lag(char flag,int num)(int i,j,k,m;char c,color 3 =B,W,R;mnum;for(k=0;k 2;k+)for
11、(i=0;i i;j-)if(flagj=colork)(c=flagi;flag E i=flagj;flagj=c;m一;break;)if(i=j)m=i;)void main()(char flagN =R BW BR W R BW”;int i,k,n=strlen(flag);H olandF lag(flagN,n);for(i=0;i n;i+)printf(z/%cz/,flagi);)【规定】1 .将上述程序录入到文献myfl.c中,根据题目规定及程序中语句之间的逻辑关系对程序中的错误进行修改。2 .改错时,可以修改语句中的一部分内容,调整语句顺序,增长少量的变量说明或编译
12、预解决命令,但不能增长其他语句,也不能删去整条语句。3.改正后的源程序(文献名myfl.c)保存在考生文献夹中供阅卷使用,否则不予评分。第 5 题:【程序功能】分类汇总求平均值。函数sort_aver的形参a指向的二维数组(简称a数组)第一列元素的值代表类别,a数组己按第一列元素的值从小到大有序排列。sort aver函数对a数组的n行元素中第一列元素值相同的所有行按列求平均值(第一列除外),并将类别值和除第一列外的各列平均值依次保存到b指向的数组(简称b数组)中,函数返回b数组中数据的行数。【测试数据与运营结果】a数组:b数组:133113 1 2 3235 2 3 5354 3 4 533
13、6【具有错误的源程序】#include#includeint sort_aver(int a3,n,b3)(int i,j,k=0,c1 0;for(i=0;i 3;i+)b0 i=a0 i;c0 =1;for(i=1;i n;i+)if(bk0=a i 0)for(j=l;j 3;j+)+=a ij;ck+;)elsec+k=0;for(j=0;j 3;j+)bk j=a ij;)for(i=0;i=k;i+)for(j=l;j 3;j+)b ij/=c i;return k;void main 0(int x10 3=1,3,3,1,1,3,2,3,5,3,5,4,3,3,6,i,j,n;
14、n=sort aver(x,5,b);for(i=0;i n;i+)for(j=0;j n;j+)printf(编3d”,bi j);printf(n);【规定】1.将上述程序录入到文献myfl.c中,根据题目规定及程序中语句之间的逻辑关系对程序中的错误进行修改。2.改错时,可以修改语句中的一部分内容,调整语句顺序,增长少量的变量说明或编译预解决命令,但不能增长其他语句,也不能删去整条语句。3.改正后的源程序(文献名myfl.c)保存在考生文献夹中供阅卷使用,否则不予评分。第 6 题:【程序功能】函数merge的功能是:合并两个字符串集合为一个新集合,每个字符串在新集合中仅出现一次,函数返回新
15、集合中字符串的个数。【测试数据与运营结果】测试数据:si集合:t while,tor,switch,if,break,continue)s2集合:for,case,do,else,char,switch)运营结果:whi1e for switch if break continue case do else char【具有错误的源程序】#include#include#includeint merge(char si 10,char s210,char s310,int m,int n)int i,j,k=0;for(i=0;i m;i+)s3k+=si i;for(i=0;i n;i+)(f
16、or(j=0;j m)strcpy(s3k+,s2i);Ireturn k;)void main()(int i,j;char si6 10=“while”,for,“switch”,if,“break,continue,s26 10=for,case,do,else,char,switch,s32010;j=merge(si10,s210,s310,6,6);for(i=0;i j;i+)printf(s,s3i);)【规定】1.将上述程序录入到文献myfl.c中,根据题目规定及程序中语句之间的逻辑关系对程序中的错误进行修改。2.改错时,可以修改语句中的一部分内容,调整语句顺序,增长少量的变
17、量说明或编译预解决命令,但不能增长其他语句,也不能删去整条语句。3 .改正后的源程序(文献名myfl.c)保存在考生文献夹中供阅卷使用,否则不予评分。第7题:【程序功能】已知x数组中存储的n阶矩阵有一个鞍点(鞍点是指该位置上的数是所在行的最大数,同时也是所在列的最小数),程序实现将矩阵中鞍点所在列移动到最右侧。【测试数据与运营结果】测试数据:13 2 04 6 5-17 9 8 0-1 1 0 3 2运营结果:An d ian:a0 1 12 0 34 5-167 8 0 9-1 3 2 1 0【具有错误的源程序】#in cl u d e#in cl u d e#d efin e N=4v o
18、 id ex chan ge(in t aN)int i,j,k,f,t,m,mj;for(i=0;i N;i+)(m =ai0;mj=0;f=1;for(j=0;j m)m =aij;m j=j;for(k=0;k m)f=0;if(k=N)break;if(f)(printf(,zAn dian:a%d%dn/z,i,mj);for(i=0;i N;i+)(t=ai mj;for(j=mj;j N -1;j+)ai mj=ai mj+1;aiN-1=t;void main()in t x N N=1,3,2,0 ,4,6,5,-1 ,7,9,8,0 ,-1,1 0,3,2 ,i,j;fo
19、r(i=0;i N;i+)(fo r(j=0;j N;j+)p rin t f(%3d ,x ij);p rin t f(n );)p rin t f(n );ex chan ge(in t x NN);fo r(i=0;i N;i+)(fo r(j=0;j N;j+)p rin t f(%3d ,x i j);p rin t f(n );)【规 定】1.将上述程序录入到文献m y fl.c中,根据题目规定及程序中语句之间的逻辑关系对程序中的错误进行修改。2.改错时,可以修改语句中的一部分内容,调整语句顺序,增长少量的变量说明或编译预解决命令,但不能增长其他语句,也不能删去整条语句。3.改正后
20、的源程序(文献名m y fl.c)保存在考生文献夹中供阅卷使用,否则不予评分。第8题:【程序功能】creat e函数的功能是:创建一个有N个元素的动态整型一维数组(N及N个整数由键盘输入),对该数组N个元素从小到大排序,函数返回该动态数组的首地址。in sert 函数的功能是:在p 指向的有n 个元素的有序数组中插入整数x,使得p 数组的n+1 个元素仍按从小到大有序。【测试数据与运营结果】测试数据:N=1 03 6 8 1 2 0 1 8 2 1 0 5 7运营结果:1 2 3 5 6 7 8 1 0 1 8 2 0【具有错误的源程序】#in cl u d e#in cl u d e#in
21、cl u d ein t N;v o id in sert (in t *p,in t x,in t n)(in t i=0,j;w hil e(x *p i&i i;j-)p j=p j-1;p j+1 =x;)in t creat e()(in t *head,*p,i;p rin t f(n N二 );s c a nf&N);head =in t *m al l o c(N*siz eo f(in t);p rin t f Cen t er n u m bers:);p =head;fo r(i=0;i N;i+)s c a nf p i );fo r(i=1;i N;i+)in ser
22、t(p,p i,i);ret u rn head;)v o id m ain()!in t *head,*p,i,x;head =creat e();p =head;fo r(i=0;i N;i+)p rin t f r%3dz,,*p+);free(head);)【规定】1 .将上述程序录入到文献m y fL c中,根据题目规定及程序中语句之间的逻辑关系对程序中的错误进行修改。2 .改错时,可以修改语句中的一部分内容,调整语句顺序,增长少量的变量说明或编译预解决命令,但不能增长其他语句,也不能删去整条语句。3.改正后的源程序(文献名m y fl.c)保存在考生文献夹中供阅卷使用,否则不予评分
23、。第 9 题:【程序功能】rep l ace_w o rd 函数的功能是对s指向的数组所存储的一个英文句子中的每个单词作如下解决:在w o rd t ab数组中查找该单词,若未找到则保持原单词不变;若找到则用w o rd t ab数组中该单词后面的第一个单词替换句子中的原单词(假如该单词是w o rd _t ab数组中的最后一个单词则用第一个单词替换)。【测试数据与运营结果】测试数据:I accu se y o u r m ist ak es.运营结果:I fo rgiv e y o u r m ist ak es.【具有错误的源程序】#in cl u d e#in cl u d ev o i
24、d rep l ace_w o rd(char s)!char w o rd _t ab41 0 =sad ,“hap p y ,accu se,fo rgiv e ;char t,t m p 80;in t i,j,k,n;fo r(i=0;si;i+)(fo r(j=i,k =0;isal p ha(sj);k+,j+)t k =sj;t k =0;if(k 0)(fo r(n =0;n 4;n+)if(st rcm p(t,w o rd _t abn)=0)break;if(n 4)st rcp y(t m p,s+i+st rl en(t);st rcp y(s+i,w o rd t
25、ab(n +1)%4);st rcp y(s,t m p);i=i+st rl en(w o rd t ab(n +1)%4);)el sei=i+st rl en(t);)m ain()(char l in e80 =I accu se y o u r m ist ak es.;rep l ace_w o rd(l in e);p u t char(l in e);【规定】1.将上述程序录入到文献m y fl.c中,根据题目规定及程序中语句之间的逻辑关系对程序中的错误进行修改。2.改错时,可以修改语句中的一部分内容,调整语句顺序,增长少量的变量说明或编译预解决命令,但不能增长其他语句,也不能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 江苏省 二级 语言 上机 考试 模拟
限制150内