计算机等级考试_二级C语言上机考试题库及答案.pdf
1.填空给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号,姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKl.c中不得增行或删行,也不得更改程序的结构!void check();int fun(_1_*std)/*tound*/一 2 _ *fp;int i;if(fp=fopen(myfile5.dat,wb)=NULL)return(O);printf(nOutput data to file!n);for(i=0;iN;i+)fwrite(&stdi,sizeof(STYPE),1,3);fclose(fp);return(1);修改给定程序MODIl.C中函数fu n 的功能是:先将在字符串s 中的字符按正序存放到 t 串中,然后把s 中的字符按逆序连接到t 串后面。例如:当 s 中的字符串为:“ABCDE”时,则他中的字符串应为:“ABCDEEDCBA”。请改正程序中的错误,使他能得出正确的结果。注意:不要改动main函数,不能增行或删行,也不得更改程序的结构!void fun(char*s,char*t)int i,si;si=strlen(s);/*found*/for(i=0;i=s 1;i+)ti=si;for(i=0;isl;i+)tsl+i=ssl-i-l;/*found*/tsl=0;程序函 数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如:a=45,b=如时,调用该函数后,c=4152.注意:部分源程序存在文件PROG 1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。答案:B:STYPE FILE fpM:for(i=0;i si;i+)t2*sl=0;P:*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);2.填空给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标记。然后将文件的内容读出显示在屏幕上。文件的读写分别有自定义函数ReadText和WriteText实现。请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKl.c中不得增行或删行,也不得更改程序的结构!main()FILE*fp;if(fp=fopen(myfile4.txt,w)=NULL)printf(open fail!n);exit(O);)WriteText(fp);fclose(fp);if(fp=fopen(myfile4.txt,r)=NULL)printf(open fail!n);exit(O);ReadText(fp);fclose(fp);/*found*/void WriteText(FILE 1)char str81;printf(nEnter string with-1 to end:n”);gets(str);while(strcmp(str,n-1)!=0)/*found*/fputs(_2_,fw);fputs(n,fw);gets(str);void ReadText(FILE*fr)char str81;printf(nRead file and output to screen:n);fgets(str,81,fr);while(!feof(fr)/*found*/printf(”%s”,3);fgets(str,81,fr);修改给定程序MODIl.c中函数fun的功能是:从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。例如:当s中的数为:7654321时,t中的数为:7531请改正程序中的错误,使他能得出正确的结果。注意:不要改动main函数,不能增行或删行,也不得更改程序的结构!#include/*found*/void fun(long s,long t)long sl=10;*t=s%10;while(s 0)s=s/100;*t=s%10*si+*t;/*found*/si=si*100;程序函数fu n的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如:a=45,b=12时,调用该函数后,c=1524.注意:部分源程序存在文件PROG 1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数m ain和其他函数中的任何内容,仅在函数fu n的花括号中填入你编写的若干语句。2、B:*fw str strM:long*t si=si*10;P:*c=(b/10)*l 000+(a%10)*100+(b%10)*10+(a/10);3.填空给定程序中,函数fun的功能是:将自然数110以及它们的平方根写到名 为 myfile3txt的文本文档中,然后再顺序读出显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKl.c中不得增行或删行,也不得更改程序的结构!int fun(char*fname)FILE*fp;int i,nfloat x;if(fp=fopen(fname,wn)=NULL)return 0;for(i=l;i=10;i+)/*found*/fprintf(_1_,%d%fnH,i,sqrt(double)i);printf(nnSucceed!n);/*found*/2;printf(nnThe data in file:nn);/*found*/if(fp=fopen(3,rn)=NULL)return 0;fscanf(fp,%d%f,&n,&x);while(!feof(fp)printf(u%d%fnn,n,x);fscanf(fp,n%d%fu,&n,&x);fclose(fp);return 1;修改给定程序MODIl.c中 fun函数的功能是:将 n 个无序整数从小到大排序。fun(int n,int*a)int i,j,p,t;for(j=0;jn-l;j+)p=j;/*found*/for(i=j+l;iai)/*found*/t=i;if(p!=j)t=aj;aj=ap;afp=t;程序函数fu n的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如:a=45,b=如时,调用该函数后,c=25函注意:部分源程序存在文件PROG 1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数m ain和其他函数中的任何内容,仅在函数fu n的花括号中填入你编写的若干语句。3、B:fp fclose(fp)fnameM:i 0)d=s%10;/*found*/if(d%2=0)*t=d*sl+*t;si*=10;/*found*/s=10;程序函数fu n的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如:a=45,b=如时,调用该函数后,c=5142注意:部分源程序存在文件PROGLC中。数据文件IN.DAT中的数据不得修改。请勿改动主函数m ain和其他函数中的任何内容,仅在函数fu n的花括号中填入你编写的若干语句。4、B:r”fs ftM:(d%2=0)s/=10;P:*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);5.填空给定程序中已建立一个带有头结点的单向链表,链表中的各节点按结点数据域中的数据递增有序链表。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后结点数据域的值仍保持递增有序。typedef struct list int data;struct list*next;SLIST;void fun(SLIST*h,int x)SLIST*p,*q,*s;s=(SLIST*)malloc(sizeof(SLIST);/*found*/s-data=_1_;q=h;p=h-next;while(p!=NULL&xp-data)/*found*/q=2p=p-next;s-next=p;/*found*/q-next=_3_;修改给定程序MODI1.C中函数fun的功能是:计算正整数num的各位上的数字之积。例如,若输入:2 5 2,则输入应该是:20.若输入:2 0 2,则输出应该是:0.long fun(long num)/*found*/long k;do k*=num%10;/*found*/num=10;while(num);return(k);请编写一个函数fu n,它的功能是:它的功能是:计算n门课程的平均分,计算结果作为函数值返回。例如:若有5门课程的成绩是:90.5,72,80,61.5,55则函数的值为:71.805 B:x p sM:long k=l;num/=10;P:int i;float ave=0.0;for(i=0;inext;s=p;while(t-next!=NULL)s=t;/*found*/t=t-1 ;/*found*/printf(%d,2);s-next=NULL;/*found*/free(_3_);修改给定程序M0DI1.C中函数fun的功能是:将字符串中的字符按逆序输出,单补改变字符串中的内容。例如,若字符串味a b e d,则应输出:deba/*found*/fun(char a)if(*a)fun(a+l);/*found*/printf(%c*a);)程序请编写一个函数fu n,他的功能是:比较两个字符串的长度(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。例 如,输 入 beijingshanghai(为回车键),函数将返回shanghai6、B:next t-data tM:fun(char*a)printf(,%cM,*a);P:int i;char*p=s,*q=t;for(i=0;*p&*q;i+)(p+;q+;)if(*p=0&*q=0)return s;if(*p)return s;else return t;7.填空给定程序中建立一个带有头结点的单向链表,链表中的各节点按数据域递增有序连接。函 数 fu n 的功能是:删除链表中数据域值相同的结点,使之只保留一个typedef struct list int data;struct list*next;SLIST;void fun(SLIST*h)SLIST*p,*q;p=h-next;if(p!=NULL)q=p-next;while(q!=NULL)if(p-data=q-data)p-next=q-next;/*found*/free(_1_);/*found*/q=p-_2_:else p=q;/*found*/q=q-3-:修改给定程序M0DI1.C中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。void fun(int a,int n)int i,j,t,p;for(j=0;j n-l;j+)/*found*/P=Jfor(i=j;i n;i+)if(ai ap)/*found*/p=j;t=ap;ap=aj;aj=t;请编写一个函数f u n,它的功能是:求出1到m之 间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传3送给m的之位 5 0,则程序输出:7 11 14 21 22 18 33 35 42 44 49答案:7、B:q next nextM:p=j;p=i;P:int i;*n=0;for(i=7;inext;int n=0;*found*/while(p!=_ 1_)n+;/*found*/if(p-data=ch)return_2_;else p=p-next;)return 0;)修改给定程序MODI1.C中函数fun的功能是:删除p所指字符串中的所有空白字符(包括制表符,回车符及换行符)输入字符串是用“#结束输入。fun(char*p)int i,t;char c80;/*found*/For(i=0,t=0;pfi;i+)if(!isspace(*(p+i)ct+=pi;/*found*/ct=O;strcpy(p,c);)程序请编写一个函数fu n,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换成大写(若该位置上不是字母,则不转换)例如:若输入“abc4EFg,则应输出“aBc4Efg愉答案:8、B:NULL n head,chM:for ct=O;P:int i;for(i=1 ;i=a&ssi next;while(p)(*n)+;/*found*/P=p-2-;main()SLIST*head;int aN=12,87,45,32,91,16,20,48,num;head=creatlist(a);outlist(head);/*found*/fun(_3_,&num);printf(nnumber=%dnn,num);修改给定程序MODILC中函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数返回值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL例如:当字符串中的内容为“abcdefabcdx”t中的内容为“ab”时,输出的结果应是:abcdx当字符串中的内容为abcdefabcdx”t中的内容为“abd”时,则程序输出未找到信息 not be foundchar*fun(char*s,char*t)char*p,*r,*a;/*tound*/a=Null;while(*s)p=s;r=t;while(*r)/*found*/if(r=p)r+;p+;else break;if(*r=0)a=s;s+;return a;程序函数fun的功能是:将s所指字符串中除了下标间为偶数,同时ASCH值也为偶数的字符外,其余的全部删除:串中剩余字符所形成的一个新串放在t所指的数组中例如,若s所指的字符串中的内容为“ABCDEFG123456,其中字符A的ASCII码味奇数,因此应当删除,其中字符b的ASCII码值为偶数,但是在数组中的下标为基数,因此也当删除;答案9、B:*n next headM:a=NULL;*r=*pP:int i,j=0;for(i=0;i next;while(p)int s=0;/*found*/s+=p-_1_;/*found*/P=p-_ _ 2-;return s;修改给定程序M0DI1.C中函数fun的功能是:将s所指字符串中出现的与t l所指字符串相同的字串全部替换成t2所指字符串,所形成的新串放在w所指的数组中,在此处,要求t l和t2所指字符串的长度相同。int fun(char*s,char*tl,char*t2,char*w)int i;char*p,*r,strcpy(w,s);while(*w)p=w;r=tl;/*found*/while(r)if(*r=*p)r+;p+;else break;if(*r=)a=w;r=t2;while(*r)/*found*/*a=*r;a+;r+w+=strlen(t2);else w+;程序函数fun的功能是;将s 所指字符串下标为偶数的字符删除,串中剩余字符形成的新串放在t 所指的数组中例 如:当 s 所指字符串中的内容为:“ABCDEFGHIJK”在 t 所指数组中的内容应是“BDFHJ”10、B:data next headM:*r r+;P:int i,j=0;for(i=1 ;i strlen(s);i+=2)tfj+=si;tj=0;11.填空人员记录有编号和出生年月日组成,N 名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出数据中的编号为空串。_ 1_fun(STU*std,char*num)int i;STU a=”,9999,99,99;for(i=0;iN;i+)if(strcmp(_2_,num)=0)/*found*/return(_3_);return a;)修改给定程序M0DI1.C中函数fun的功能是:从 s 所指字符串中,找出与t所指字符串相同的字串的个数作为函数返回值例如,当s 所指字符串中的内容为:“abcdabfab,t 所指字符串的内容为:“ab”则函数返回整数3int fun(char*s,char*t)mt n;char*p,*r;n=0;while(*s)p=s;r=t;while(*r)if(*r=*p)/*found*/r+;p+)else break;/*found*/if(r=0)n+;s+;)return n;)函数fu n的功能是:将s所指字符串中ASCH值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中例如,若s所指字符串中的内容为“ABCDEFG12345,其中字符B的ASCII码值为偶数.答案:11、B:STU stdi.num stdiM:p+;*r=0;P:int i,j=0;for(i=0;i strlen(s);i+)if(si%2)tj+=si;tj=0;1 2.填空人员的记录由编号和出生年月日组成N名成员的数据已在主函数中存入结构体数组std中,函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同事有函数值返回满足指定条件的人数int fun(STU*std,STU*k,int int i,n=0;for(i=0;iN;i+)/*found*/year)if(_1_=year)/*found*/kn+=_2_;/*found*/return(_3_);)修改给定程序M0DI12。C的功能是:读入一个整数k(2k1 0 0 0),打印她的所有因子例如2 3 1 0,则应输出2,3,5,7,11/*found*/IsPrime(int n);int i,m;m=1;for(i=2;i n;i+)/*found*/if!(n%i)m=0;break;return(m);设计已知学生的记录有学号成绩构成,N 名学生的数据已经存入结构体数组a 中。编写函数f u n,函数功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数12、B:stdi.year stdi n M:分号去掉 if(!(n%i)P:int i,max=a0.s,j=0;for(i=1;i N;i+)if(max afi.s)j=i;max=ai.s;*s=aj;1 3.填空给定程序通过定义并赋初值的方式,利用结构体变量存储了 一名学生的学号,姓名 和 3 们课程的成绩,函数fun的功能是将该学生的各科成绩都乘以一个系数avoid show(STU tt)int i;printf(n%d%s:n,tt.num,tt.name);for(i=0;i3;i+)printf(”5.1fn,tt.scorei);printf(n,);/*found*/void modify(_1_ *ss,float a)int i;for(i=0;i2_*=a;main()STU std=1,Zhanghua,76.5,78.0,82.0;float a;printf(MnThe original number and name and scores:nn);show(std);printf(nnlnput a number:”);scanf(M%f;&a);/*found*/modify(3,a);printf(nA result of modifying:n);show(std);修改给定程序MODI。C中函数fun的功能是:求k!(k 0return(k*fun(k-l);/*ound*/else if(k=0)return IL;)设计程序定义了 N*N的二维数组。并在主函数中自动赋值,请编写函数fu n,函数的功能是:使数组左下三角元素的值乘以n例如:若n的值为3,a数组的值为13、B:STU scorei&std M:()k=0 P:int i,j;for(i=0;i N;i+)for(j=0;j stdl.num)temp=std0;stdO=stdl;if(std0.numstd2.num)temp=std0;std0=std2;if(std 1 .numstd2.num)temp=stdl;stdl=std2;)main()stdl=temp;std2=temp;std2=temp;PERSON std=5JZhanghiT,2JWangLi6,”LinMin”;int i;fun(_3_);printf(nThe result is:nM);for(i=0;i3;i+)printf(H%d,%snn,stdi.num,stdi.name);修改给定程序MODIl.c中函数fun的功能是:将m个字符串连接起来组成一个新串,放入p t所指存储区中int fun(char str10,int m,char*pt)/*found*/Int k,q,i;for(k=0;k m;k+)q=strlen(str k);for(i=0;iq;i+)/*found*/pti=strk,i;pt+=q;ptO=0;设计程序定义了 N*N的二维数组,并在主函数中自动赋值,请编写函数f u n,函数的功能是:使数组左下三角元素中的值全部值014、B:*std PERSON std M:int strki P:int i,j;for(i=0;i N;i+)for(j=O;j=i;j+)aifj=0;15.填空给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在主函数中输出STD fun(STD std,int n)STD max;int i;/*found*/max=1for(i=l;in;i+)/*found*/if(max.age B:*std stdi.age max.name M:int*b t=*b;*b=*a;*a=t;P:int i,j,min,k;for(i=0;i N;i+)min=ttOi;k=0;for(j=1 ;j tt|ji)min=ttji;k=j;ppi=ttki;16.填空程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息,函数fun的功能是输出这位学生的信息/*found*/void show(STU 1)int i;printf(nn%d%s%c%d-%d-%d tt.num,tt.name,tt.sex,tt.birthday.year,tt.birthday.month,tt.birthday.day);for(i=0;i3;i+)/*found*/printf(%5.1f,2);printf(n);main()STU std=l,Zhanghua;M,1961,10,8,76.5,78.0,82.0;printf(nA student data:n);/*found*/show(_3_);修改给定程序MO D Il.c中函数fu n的功能是:求出数组中最大数和次大数,并把最大数和a【0】中的数对调,次最大数和a【1】中的书对调int fun(int*a,int n)int i,m,t,k;for(i=0;i2;i+)/*found*/m=0;for(k=i+l;kam)k=m;t=ai;ai=am;am=t;设计请编写一个函数unsigned fun,w是一个大与10的无符号整数,若w是n为的整数,函数求出w的低n-1位的数作为函数值返回例 如w为5923则函数返回923;16 B:tt tt.scorefi std M:m=i m=kP:if(w 10000)w%=10000;else if(w1000)w%=1000;else if(w100)w%=100;else if(w10)w%=10;return w;17.填空给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。Ss所指字符串数组中共有M个字符串,且串长Nvoid fun(char(*ss)N)int i,j,k,nM;char tN;for(i=0;iM;i+)ni=strlen(ssi);for(i=0;i+)k=i;/*found*/for(j=_1_;jnrj)2if(k!=i)strcpy(t,ssi);strcpy(ssi,ssk);/*found*/strcpy(ssk,_3_);nk=ni;给定程序MODI。C中函数fun的功能是:判断c h中字符是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后#include/*found*/void fun(char str,char ch)while(*str&*str!=ch)str+;/*found*/if(*str=ch)str 0 =ch;/*found*/strl=0;设计请编制一个函数f u n,函数功能是吧s所指字符串中的内容逆值17、B:i+1 k=j t M:char*str!=0P:char bfN;int i=0,j;for(j=strlen(s)-1 ;j=0;j)bi+=sj;bi=0;strcpy(s,b);18.填空给定程序中,函数fun的功能是:求出形参ss所指的字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长,字符串数组中共有M个字符串void fun(char(*ss)NJ)int i,j,k=0,n,m,len;for(i=0;ivM;i+)len=strlen(ssi);if(i=0)n=len;if(lenn)/*found*/n=len;1_=i;)for(i=0;i=O;j-)ssim-=ssij;for(j=0;jl&n B:k len ssifj M:n result P:char*p=s;int i=0;while(*p)if(*p!=c)si+=*p;p+;si=0;19.填空给定程序中,函数fu n的功能是:求出形参s s所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。S s所指的字符串数组中共有M个字符串void fun(char(*ss)N)int i,j,n,len=0;for(i=0;in)n=len;for(i=0;ivM;i+)/*found*/n=strlen(_1_);for(j=0;jlen-n;j+)/*found*/ssi 2=*;/*found*/ssin+j+3=、();修改给定程序M0DI1。C中函数fun的功能是将:p所指字符串中每个单词的最后一个字母改成大写#include void fun(char*p)int k=0;for(;*p;p+)if(k)/*found*/if(P=)k=0;/*found*/*(p-1)=toupper(*(p-1 )elsek=1;设计请编写函数fu n,对长多为7个字符的字符串,除首,尾字符外,将其余5个字符按ASCII降序排列19 B:ssi n+j 1 M:*p;P:char ch;int i,j;for(i=1 ;i 6;i+)for(j=i+1 ;j 6;j+)if(*(s+i)*(s+j)ch=*(s+j);*(s+j)=*(s+i);*(s+i)=ch;20.填空给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。S s所指字符串数组中共有M个字符串#define N 20/*found*/int fun(char(*ss)_1_,int*n)int i,k=0,len=0;for(i=0;i*n)/*tound*/3return(k);修改给定程序MODIl.c中函数fun的功能是:根据形参m,计算如下公式的值1 1 1 1t=1+-+-+-+.+-2 3 4 m例如,若输入5,则应输出2.283333。double fun(int m)double t=1.0;int i;for(i=2;i B:N len*n=len M:t+=1.0/i;return t;P:int ent=0;char*p=str,*q;while(*p)q=strstr(p,substr);if(q=NULL)break;p=q+strlen(substr);cnt+;return ent;strstr:在前串中找出后串第一次出现的位置,若找到返回地址否则返回NULL21.填空给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中int fun(char(*ss)N,int*n)int i,k=0,len=N;/*found*/for(i=0;i_ 1_;i+)len=strlen(ssi);if(i=0)*n=len;/*tound*/if(len _2.*n=len;k=i;*n)/*found*/retum(_3_);修改给定程序MODILc中函数fun的功能是:将tt所指字符串中的小写字母都改为对应的大写字母,其他字符不变char*fun(char tt)int i;for(i=0;tti;i+)/*found*/if(a,=tti)11(tti=z)/*found*/tti+=32;return(tt);设计请编写函数f u n,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回21、B:M k M:&tti-=32;P:int i,j;*k=0;for(i=2;im;i+)for(j=2;j=i/2;j+)if(i%j=0)break;if(j=O&si=9)/*found*/t2U=si;1:else tlk+=si;t2j=0;tlk=O;/*found*/for(i=0;ik;i+)_2./*found*/for(i=0;i_3;i+)sk+i=t2i;)修改给定程序MODIl.c中函数fun的功能是:用冒泡法对6个字符串由小到大的顺序进行排序fun(char*pstr6)int i,j;char*p;for(i=0;i 5;i+)/*found*/for(j=i+1,j 0)p=*(pstr+i);(pstr+i)=pstr+j;(pstr+j)=p;设计请编写函数fu n,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值22 B:j+si=tlfi j M:;*(pstr+j)P:int ent=0;char*p=ss;while(*p)if(*p=c)cnt+;p+;23.填空给定程序中,函数fun的功能是:在形参所指字符串中的每个数字字符之后插入void fun(char*s)int i,j,n;for(i=0;si!=0;i+)/*found*/if(si=O-1 sii;j-)/*found*/Sj+1=3;i=i+l;修改给定程序MODIl.c中函数fun的功能是;根据整形形参m,计算如下公式的值y=1+-+-+-+.+-2*2 3*3 4*4 in*in例 如,若 in 中的值为:5,则应输出:1.463611。设计请编写函数fu n,函数功能是:实现B=A+A,即把矩阵A 加上A 的转职,存放至 UB中23、B:&0 sj M:=1.0P:int c33;int i,j;for(i=0;i 3;i+)for(j=0;j=0&si=2)n+;/*found*/.3.)修改给定程序MODIl.c中函数fun的功能是:通过某种方式实现俩个变量值的交换,规定不予许增加语句和表达式int fun(int*x,int y)int t;/*fou n d*/t=X ;x=y;/*found*/return(y);设计请编写函数f u n,它的功能是:求出1到1000之间能被7或11整除,但不能同时被7和11整除的所有整数并将他们放在a所指的数组中,通过n返回这些数的个数24、B:si,9*t=n;M:t=*x;*x=y;retum(t);P:int i;*n=0;for(i=7;i=l;i=i-2)si+2=si;/*found*/Sl=3给定程序MODIl.c中fun函数的功能是:求s=aa.aa-.aaa-aa-along fun(int a,int n)int j;/*found*/long s=0,t=1 ;for(j=0;j n;j+)t=t*10 4-a;s=t;for(j=1 ;j n ;j+)/*found*/t=t%10;s=s-1;return(s);设计请编写一个函数f u n,统计在tt所指字符串中H到*2 6个小写字母各自出现的次数,并依次放在pp所指数组中25、B:n-1 sk c M:t=0 t=t/10P:char*p=t t;int i;for(i=0;i =a&*p v=z)pp*p-a+=1 ;p+;26.填空给定程序中,函数fu n的功能是:对形参s所指字符串中下标为奇数的字符按ascii码大小递增排序,并将排序后下标为基数的字符取出,存入形参p所指字符数组中,形成个新串void fun(char*s,char*p)int i,j,n,x,t;n=0;for(i=0;si!=0;i+)n+;for(i=l;in-2;i=i+2)/*tound*/1/*found*/for(j=一 2 _+2 ;jsj)t=j;if(t!=i)x=si;si=st;st=x;for(i=l,j=0;ivn;i=i+2,j+)pjl=si;/*found*/p(j=一 3一;给定程序MODIl.c中函数fun的功能是:用下面公式求n 的近似值,直到最后一项的绝对值小于指定的数为止float fun(float num)int s;float n,t,pi;t=l;pi=0;n=l;s=1 ;/*found*/while(t=num)pi=pi+t;n=n+2;s=-s;/*found*/t=s%n;pi=pi*4;return p i;请编写一个函数f u n,其功能是:删除一个字符串中指定下标的字符,其中,a 指向原字符,删除指定字符后的字符串存在b 所指的数组中,n 中存放指定下标26、B:t=i;i 0 M:(fabs)s/n P:strcat(b,a+n+1);strncpy(b,a,n);bn=0;27填空给定程序中,相同的字符,做任何处理void fun(char int i,j,n;函数fun的功能是:在形参所指字符串中寻找一个字符串与参数c并在其后插入一个与之相同的字符,若找不到相同的字符则函数不*s,char c)/*found*/for(i=0;si!=1 ;i+)if(si=c)/*found*/n=_2_;while(si+1+n!=,0,)n+;for(j=i+n+1;ji;j-)sj+l=sj;/*found*/sU+H=一3 ;i=i+l;修改在主函数中从键盘输入若干个数放入数组中,用