《c语言题库(9).docx》由会员分享,可在线阅读,更多相关《c语言题库(9).docx(4页珍藏版)》请在优知文库上搜索。
1、1:请编写函数fun,其功能是:将S所指字符串中除了下标为偶数、同时ascii值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。答案:voidfun(char*s,chart)(i11tI,j=0,n;n=strlen(s);for(i=0;I,n;i+)if(i%2=0&si%2=0)(tj=si;j+;)tj=t0,;)2:请编写函数fun,其功能是:将S所指字符串中除了下标为奇数、同时ascii值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的一个数组中。答案:voidfun(char*s,chart)(intI,j
2、=0,n;n=strlen(s);for(i=0;I,n;i+)if(i%2!=0&si%2!=0)(tj=si;j+;)tj=i0,;)3:假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。答案:voidfun(char*a,intn)(inti=Ojk=O;char*p,*t;P=t=a;while(*t)t+;t;while(*t=i*f)(k+;t;)t+;if(kn)(while(*pftt+n)(ai=*p;i+;p+;)ai=t0,;)4:
3、学生的记录由学号和成绩组成,n名学生的数据已在主函数中放入结构体数组S中,请编写函数fun,它的功能使:把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。答案:intfun(STREC*a,STREC*b)(int1,j=0,n-0,max;max=a0.s;for(i=0;imax)max=ai.s;for(i=0;iN;i+)if(ai.s=max)(*(bj)=ai;j+;n+;)returnn;)5:请编写一个函数,用来删除字符串中的所有空格。答案:voidfun(char*str)(inti=0;char*p=str;while(
4、*p)(if(*p!=tf)stri=*p;i+;)P+;)stri=0;)6:假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。答案:voidfun(char*a)inti=0,n=O;char*p;P=a;while(*p三=*)(n+;P+;while(*p)(ai=*p;i+;P+;)while(n!=O)(ai=;i+;n;)ai=tO,;)7:某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。答案:
5、voidfun(STREC*p)(doubleav=0.0;inti:for(i=0;isi;av=N;p-ave=av;)8:请编写函数fun,它的功能是:求出SS所指字符串中指定字符的个数,并返回此值。答案:intfun(char*ss,charc)(intn=0;while(*ss)(if(*ss=c)n+;ss+;)returnn;)9:请编写函数fun,该函数的功能是:移动一维数组中的内容,若数组中由n个整数,要求把下标从0到p(p小于等于n-l)的数组元素平移到数组的最后。答案:voidfun(int*w,intp,intn)(intbN,i,j=0;for(i=0;i=p;i+)(bi=wi;j+;for(i=0;i=p;i+)wj=bi;j+;)10:请编写函数fun,该函数的功能是移动字符串中内容,移动的规则如下:把第1到第In个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。答案:voidfun(char*w,intm)charbN;intI,j=0;for(i=0;im;i+)(bj=wi;j+;for(i=0;istrlen(w)-m;i+)wi=wi+m;for(j=0;jm;j+)(wi=bj;i+;)wi=40,;)