《2023年江苏省二级C语言上机考试模拟题.pdf》由会员分享,可在线阅读,更多相关《2023年江苏省二级C语言上机考试模拟题.pdf(95页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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.改错时,可以修改语句中的一部分内容,调整语句顺序,增长少量的变量说明或编译预解决命令,但不能增长其他语句,也不能
26、删去整条语句。3.改正后的源程序(文献名m y fl.c)保存在考生文献夹中供阅卷使用,否则不予评分。第10题:【程序功能】求三个城市中的每个城市某年前3个月旅游的平均人数,再按平均人数从高到低的顺序输出三个城市三个月的旅游人数和平均人数。【测试数据与运营结果】三个城市某年前3个月的旅游人数如下表所示(单位:万人):测试数据citym0mlm|2|averNanjing36.743.640.9Xian35.439.841.7Guangzhou39.540.238.2运营结果:Na njing:36.7 43.6 40.9 40.4G u a ngz hou:39.5 40.2 38.2 39.
27、3Xia n:35.4 39.8 41.7 39.0【具有错误的源程序】#inclu de#inclu de#define N 10s t r u ct lis t(cha r cit y 10;floa t m3,a v er;;v oid a v er s or t(s t r u ct lis t a,int n)Iint i,j,k;int t emp;for (i=0;i n;i+)for (j=0;j 3;j+)a i.a v er +=a j.mi;a i.a v er /=3;)for (i=0;i n-l;i+)(k=i;for (j=i+l;j a k.a v er)k=j
28、;if(k!=i)t emp=a j;a j=a k;a k=t emp;)v oid ma in()!s t r u ct lis t a N 二 Na njing,36.7,43.6,40.9,0,Xia n,35.4,39.8,41.7,0),G u a ngz hou,39.5,40.2,38.2,0);int i,j;a v er s or t(a,3);for (i=0;i 3;i+)pr int f(z z%10s:”,a i.cit y);for (j=0;j 3;j+)pr int f(%6.I f,a i.mj);pr int f C%6.lfn,a i.a v er);)
29、【规定】1.将上述程序录入到文献my fl.c中,根据题目规定及程序中语句之间的逻辑关系对程序中的错误进行修改。2.改错时,可以修改语句中的一部分内容,调整语句顺序,增长少量的变量说明或编译预解决命令,但不能增长其他语句,也不能删去整条语句。3.改正后的源程序(文献名my fl.c)保存在考生文献夹中供阅卷使用,否则不予评分。第11题:【程序功能】在被称为Scr a bble的纵横猜字游戏中,字母表中的每一个字母都有一个分值,如下表所示:分值字母1A,E,I,L,NQ,R,S,T,U2D,G3B,C,M,P4F,H,V,W,Y5K8J,X10Q,Z依据上表,每个单词都有一个Scr a bble
30、分值。例如,单词 FARM的Scr a bble分值为9分(F为4分,A和R各1分,M为3分)。以下程序中,函数cou nt的功能是计算w or d指向的数组中所存储单词的Scr a bble分值,并返回该分值。在计算分值时,除大写字母外的任何字符的分值均按0分计算。【测试数据与运营结果】测试数据:FARM运营结果:s cor e for FARM is 9【具有错误的源程序】#inclu de#inclu de#inclu det y pedef s t r u ctIcha r *a lpha;int s cor e;)L et t er;v oid ma in()Iint s cor e
31、;cha r w or d20=FARM;s cor e=int cou nt(cha r w or d);pr int f(s cor e for%s is%dn,z,w or d,s cor e);)int cou nt (cha r *w or d)L et t er a 6=AEI L NORSTU,1,DG ,2,BCMP,3,FH VWY,4,K ,5,J X ,8,Q Z ,1 0);i n t s c o re =0,i;w h i l e (*w o rd)f o r(i =0;i 7;i+)i n t k;w h i l e (a i .a l p h a k )(i f
32、(*w o rd =a i ,a l p h a k )s c o re =a i .s c o re;k+;)w o rd+;re t u rn s c o re;【规定】1.将上述程序录入到文献m y f l.c中,根据题目规定及程序中语句之间的逻辑关系对程序中的错误进行修改。2.改错时,可以修改语句中的一部分内容,调整语句顺序,增长少量的变量说明或编译预解决命令,但不能增长其他语句,也不能删去整条语句。3 .改正后的源程序(文献名m y f l.c)保存在考生文献夹中供阅卷使用,否则不予评分。第12题:【程序功能】函数i n t e rs e c的功能是:找出所有在s i和s 2两个字符
33、串集合中都出现的字符串,将这些字符串放入一个新集合S 3中,函数返回新集合中字符串的个数。【测试数据与运营结果】测试数据:si集合:while,for,switch,if,break,continue)s2集合:for,case,do,else,char,switch运营结果:for switch【具有错误的源程序】#include#include#includeint intersec(char s i10,char s210,char s310,int m,int n)int i,j,k=0;for(i=0;i m;i+)for(j=i;j n;j+)if(sli=s2j)Istrcpy(
34、s3k+,s ii);break;)return k;)void main()Iint i,j;char s i610=while,for,switch,if,break,continue),s2610=for,case,do,else,char,switch,s32010;j=intersec(si,s2,s3,6,6);f o r(i =0;i j;i+)p ri n t f (,/%c/z,s 3 i );)【规定】1 .将上述程序录入到文献m y f l.c 中,根据题目规定及程序中语句之间的逻辑关系对程序中的错误进行修改。2 .改错时,可以修改语句中的一部分内容,调整语句顺序,增长少
35、量的变量说明或编译预解决命令,但不能增长其他语句,也不能删去整条语句。3 .改正后的源程序(文献名m y f l.c)保存在考生文献夹中供阅卷使用,否则不予评分。第 13:【程序功能】判断一个英文句子是否是回文。回文原指一个正读和反读都完全同样的单词,例如l e v e l 是一个回文。若忽略标点符号、空格及字母大小写的差异,回文的概念可以扩展到一个英文句子,例如,M a d a m,I m A d a m 就是一个回文句子。下列程序中,函数p a l i n 的功能是判断一个英文句子是否是回文,假如是返回1,否则返回0。【测试数据与运营结果】测试数据:M a d a m I m A d a
36、m.,No t a p a l i n d ro m e.”运营结果:M a d a m I m A d a m.:Y e s.No t a p a l i n d ro m e.:No.【具有错误的源程序】#i n c l u d e#i n c l u d e#i n c l u d e#i n c l u d e v o i d m a i n Oc h a r s 8 0 =M a d a m I m A d a m.,“No t a p a l i n d ro m e.,z;i n t i,o k;f o r(i =0;i 2;i+)(o k =p a l i n(s i );p
37、ri n t f(o k?s:Y e s.n:%s:No.n,s i );)v o i d p a l i n(c h a r*s)Ii n t i,j,k,o k;c h a r*s p,c h;k =s t rl e n(s);s p =(c h a r*)m a l l o c(k +1);i f (s p =NU L L)(p ri n t f(e rro r!n);e x i t (0);)k =0;w h i l e (*s)(c h =*s;i f (!(A =c h&c h =Z )s p k+=c h -A +a ;e l s e i f (a =c h&c h j;i+,j
38、)i f (s p i !=s p j )(o k =0;b re a k;)f re e(s p);re t u rn o k;)【规定】1.将上述程序录入到文献m y f 1.c中,根据题目规定及程序中语句之间的逻辑关系对程序中的错误进行修改。2.改错时,可以修改语句中的一部分内容,调整语句顺序,增长少量的变量说明或编译预解决命令,但不能增长其他语句,也不能删去整条语句。3 .改正后的源程序(文献名m y f 1.c)保存在考生文献夹中供阅卷使用,否则不予评分。第14题:【程 序 功 能】对N行N列二维数组的每一行排序,偶 数 行(0当作偶数)由小到大排序,奇数行由大到小排序。【测试数据与
39、运营结果】测试数据:3 4 2 18 7 5 61 2 1 0 1 1 91 5 1 4 1 6 1 3运营结果:12 3 48 7 6 59 1 0 1 1 1 21 6 1 5 1 4 1 3【具有错误的源程序】#i n c l u d e#i n c l u d e#d e f i n e N 4v o i d s w a p(i n t*p l,i n t *p 2)i n t p;P =p l;p lp 2;p 2 =p;v o i d s o r t (i n ta N N )i n t i,j,k;f o r (i =0;i N;i+)f o r (j =0;j N -1;j+)
40、f o r (k=j+l;kN-l;k+)i f (i%2 =0?a i j a i k )s w a p(a i +j,a i +k);)v o i d m a i n O(i n t a N N =3,4,2,1 ,8,7,5,6 ,1 2,1 0,1 1,9 ,1 5,1 4,1 6,1 3);i n t i,j;s o r t(a N N );f o r (i =0;i N;i+)(f o r (j =0;j N;j+)p r i n t f a i j );p r i n t f(n);)【规定】1 .将上述程序录入到文献m y f l.c 中,根据题目规定及程序中语句之间的逻辑关系
41、对程序中的错误进行修改。2 .改错时一,可以修改语句中的一部分内容,调整语句顺序,增长少量的变量说明或编译预解决命令,但不能增长其他语句,也不能删去整条语句。3.改正后的源程序(文献名m y f l.c)保存在考生文献夹中供阅卷使用,否则不予评分。第15题:【程序功能】根据转换说明字符的含义将以某-进制表达的数字字符串转换为一个整型数。转换说明字符与数字字符串中数字的进制表达规定如下:d表达十进制;0(小写字母)表达八进制;x(小写字母)表达十六进制。在函数v o i d c o n v e r t (c h a r y ,c h a r t y p e,i n t*x)被调用时,t y p
42、e中存储转换说明字符,y指向的数组中存储一个以某一进制表达的数字字符串,x指向的变量中存储转换后的整型数。若y字符串中出现与t y p e规定的进制不相符合的非法字符时,只取非法字符之前的字符作转换。主函数接受并保存键盘输入的一个转换说明字符和一个以某种进制表达的数字字符串,调用c o n v e r t函数根据转换说明字符将数字字符串转换为整型数,输出转换后的整型数。【测试数据与运营结果】输入d 31时应输出3 1,输入d-31时应输出-31。输入。37时应输出3 1,输入。-37时应输出-31,输入o 37 8时应输出31。输入x I f时应输出3 1,输入x-l f时应输出-31,输入x
43、 I f g时应输出31。【具有错误的源程序】#i n c l u d e#i n c l u d e#i n c l u d e v o i d c o n v e r t(c h a r y,c h a r t y p e,i n t *x)(i n t i =0,f l a g,b a s e,x x,s i g n;i f (y i =-)s i g n =T;i+;e l s e s i g n =1;x x =0;f l a g =1;f o r (;y i !=0&f l a g;i+)s w i t c h ()c a s e d:i f (i s d i g i t (y i
44、 )x x =x x *1 0 +y i -O;e l s e f l a g =0;b r e a k;c a s e o:i f (y i =O&y i =a&y i S u n d a y.2 0 2 3/5 /2 0”【具有错误的源程序】#i n c l u d e#i n c l u d e#i n c l u d e#i n c l u d e v o i d i n s e r t _ d a t e(i n t y,i n t m,i n t d,c h a r s,i n t n)(i n t l e a p,i;c h a r t l l ,w 8 0 :f o r (i
45、=0;i 9)t i+=m /1 0 +,0,;t i+=m%1 0 +O;t i+=;i f (d 9)t i+=d /1 0 +,0,;t i+=d%1 0 +O;t i =0;i f (i n t)s t r l e n(s)n -1)s t r c p y(s,t);e l s e s t r c p y(w,s +n -1);s t r c p y(s +n -1,t);s t r c a t(s,w);)m a i n()i n t y,m,d,n;c h a r s t r 8 0 =T o d a y i s,S u n d a y.;p r i n t f (z,I n p
46、u t y e a r-m o n t h-d a y:n);s c a n f (,%d-%d-%d/,&y,&m,&d);p r i n t f (z zI n p u t n:n);s c a n f(%d,&n);i n s e r t d a t e(y,m,d,s t r);p u t s(s t r);)【规定】1 .将上述程序录入到文献m y f l.c 中,根据题目规定及程序中语句之间的逻辑关系对程序中的错误进行修改。2 .改错时,可以修改语句中的一部分内容,调整语句顺序,增长少量的变量说明或编译预解决命令,但不能增长其他语句,也不能删去整条语句。3.改正后的源程序(文献名m
47、 y f l.c)保存在考生文献夹中供阅卷使用,否则不予评分。第17题:【程序功能】通信簿(结构数组lis t)中存有5 个联系人的信息,每个联系人的信息由位置号、姓名和电话号码组成。下列程序的功能是:输入姓名,若通信簿中存在该联系人信息则删除,显示通信簿中剩余人员信息,若不存在则输出 Not fou nd。【测试数据与运营结果】测试数据:liu运营结果:The infor mat ion aft er delet ing:1 z hang 2 3 0 12 z hao 2 3 0 24 li 2 3 0 45 s u n 2 3 0 5测试数据:w ang运营结果:Not fou nd【具有
48、错误的源程序】#inclu de#inclu de#inclu de#define N 5struct addressint no;char name10;char phone15;int delphone(char delname,struct address list)int i=0,j=0;for(i=0;i N;i+)if name 二二 delname)break;if(i N)(for(j=0;j N;j+)listj=listj+1;return N-1;)return N;)main()struct address listN二1,zhang,2301,2,zhao,2302)
49、,3,liu,2303,4,li,2304,5,sun,2305;int i=0,k;char delname10;printf(Please input the name of deleting:);get s(delname);k=delp hone(delname,lis t);if(k N)(p r int f(The infor mat ion aft er delet ing:r T);for (i=0;i k;i+)p r int f(z,%5 d%1 5 s%1 5 s n/,,no,name,p hone);)els e p r int f(?,Not fou nd n);【
50、规定】1 .将上述程序录入到文献myfl.c中,根据题目规定及程序中语句之间的逻辑关系对程序中的错误进行修改。2 .改错时,可以修改语句中的一部分内容,调整语句顺序,增长少量的变量说明或编译预解决命令,但不能增长其他语句,也不能删去整条语句。3 .改正后的源程序(文献名myfl.c)保存在考生文献夹中供阅卷使用,否则不予评分。第18题:【程序功能】结构数组排序。函数v oid s or t _cou nt(PS p,int r ow,int *f,int *m)对p 指向的结构数组中前r ow 个元素按gender (性别)排序,f(女性)在前,m(男性)在后;对于gender 相同的那些元素