2012年计算机二级C语言50套程序编写上机题及答案
1、请编写函数fun,其功能是:统计s所指字符串中的数字字符个数,并作为函数值返回。 例如,s所指字符串中的内容是:2def35adh25 3kjsdf 7/kj8655x, 函数fun返回值为:11
注意: 部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include void
int fun(char *s)
{ int count=0; while(*s!='\\0') {
if(*s>=48 && *s<=57) count++; s++; }
return count;
}
main()
{ char *s=\ printf(\ printf(\
}
2、编写一个函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。(注意: 主函数中用****作为结束输入的标志,函数fun中给出的语句仅供参考。) 注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include
void fun(char(*a)[81],int num,char **max) {
/* 以下代码仅供参考 */
int i,k=0,len, maxlen; /* k为a数组中最长串所在元素的下标,初始为0,maxlen为其串长 */ maxlen=strlen(a[k]); for(i=1;i
{ len=strlen(a[i]) ; if(maxlen
{k=i ;maxlen=len ;}
/* 以下完成查找最长串 */ }
*max=a[k]; } main() {
char ss[10][81],*ps;void int n,i=0;
printf(\输入若干个字符串:\ gets(ss[i]); puts(ss[i]);
while(!strcmp(ss[i],\ { i++; gets(ss[i]); puts(ss[i]); } n=i;
fun(ss,n,&ps);
printf(\ }
3、请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串: 123412132,输入字符为: 1,则输出:3。 注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include #define M 81
int fun(char *ss, char c)
{
int count=0 ;
while(*ss != '\\0') {
if(*ss = = c) count++ ; ss++ ; }
return count;
} main() { char a[M], ch; void
printf(\ printf(\ printf(\ }
4、规定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。
例如,字符串中的内容为:*******A*BC*DEF*G****,删除后,字符串中的内容应当是:A*BC*DEF*G****。在编写函数时,不得使用C语言提供的字符串函数。 注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include
void fun( char *a )
{ int i, ,len=0;
while(a[len] == '*') len++; i=len;
while(a[i]!= '\\0') {
a[i-len]=a[i]; i++; }
} main() { char s[81]; void
printf(\ fun( s );
printf(\ }
5、请编写一个函数void fun (char a[],char b[],int n),其功能是:删除一个字符串中指定下标的字符。其中, a指向原字符串, 删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。 例如,输入一个字符串: World,然后输入3,则调用该函数后的结果为: Word。 注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。