类型一:调整一个数的个、十、百、千位
1.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a=45,b=12,调用该函数后c=4152。
*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);
填空:STYPE FILE Fp
改错:for( i=0; i<=sl; i ++) 把s后字母改为小写L
t[2*sl] = '\0';
2.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a=45,b=12,调用该函数后c=1524。
*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);
填空:*fw str str
改错:void fun(long s,long *t)
sl=sl*10;
3.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a=45,b=12,调用该函数后c=2514。
*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);
填空:fp fclose(fp) fname
改错:for ( i=j+1; i<=n-1 ; i++ )
p=i;
4.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a=45,b=12,调用该函数后c=5142。
*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);
填空:"r" fs ft
改错:if (d%2==0)
s /= 10;
5.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12,调用该函数后c=5241。
*c=(a%10)*1000+(b%10)*100+(a/10)*10+(b/10);
填空:k N-1 temp
改错:fun(int a[][M], int m)
a[j][k]=(k+1)*(j+1);
6.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a=45,b=12,调用该函数后c=2415。
*c = (b%10)*1000+(a/10)*100+(b/10)*10+a%10;
填空:struct student * a->score[i] a
改错:char *fun(char (*sq)[M])
return sp;
7.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a=45,b=12,调用该函数后c=1425。
*c=(b/10)*1000+(a/10)*100+(b%10)*10+(a%10);
填空:0 x t++
改错:int i,s1; s后面是小写的L
t[i] = s[sl-i-1];
8.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12,调用该函数后c=4251。
*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);
填空:1 s i*10
改错:int fun(int n,int xx[][M])
printf("%d ",xx[i][j]);
类型二:与*号有关的操作
9.请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。
删除前导*号
int j=0; char *p = a ;
while(*p == '*') p++ ;
while(*p) { a[j++] = *p ; p++; }
a[j]=0 ;
填空:[N] t[i][j] t[j][i]
改错:#define FU(m,n) ((m)/(n))
return(value);
10.请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后的一个字母。
除尾部*号,其余*删除
char *q=a; int j=0;
while(*q && q
a[mid])
11.请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。
只删除中间*号
int j=0; char *q=a;
while(*q && q < h) a[j++] = *q++ ;
while(*h && *p && h < p)
{ if(*h != '*') a[j++] = *h ; h++; }
while(*p) a[j++] = *p++ ;
a[j] = 0 ;
填空:sum=0 t[i][i] 1
改错:double r;
while(fabs(m-n)>0.001)
12.请编写函数fun,它的功能是:删除字符串中所有的*号。
删除串中所有*号
int j =0 ; char *p=a;
while(*p)
{if(*p != '*') a[j++]=*p ; p++ ; }
a[j]=0;
填空:1 j++ j
改错:t=a;a=b;b=t;
return(b);
13.请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。
删除串尾*号
char *p = a ;
while(*p) p++ ; p-- ;
while(*p == '*') p-- ;
p++ ;
*p = 0 ;
填空:N i -1
改错:a2=k/10;
return i;
14.请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。
除前导*外其他删除*
int i=0,k;
while(a[i]=='*') i++;
k=i;
while(a[i]!='\0') { if(a[i] != '*') a[k++]=a[i]; i++; }
a[k]='\0';
填空:N k ss[i]
改错:int k=0;
while( *p || *q )
15.请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。
删除前导和尾部*
char *p=a ; int j=0,len=0;
while(*p) {p++; len++;}
while(jn)
{ i=n;j=k;
for(; a[j] !=0 ; j++) a[i++]=a[j];
a[i] = 0; }
填空:M N 0
改错:t=1;
return(2*s);
18.请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。
串前*移至串尾
char *p,*q; int n=0; p=a;
while(*p=='*') {n++; p++;}
q=a;
while(*p) { *q=*p; p++;q++; }
for(;n>0;n--) *q++='*';
*q='\0';
填空:a b.name score[i]
改错:s[j++]=s[i];
s[j]=0;
19.编写一个函数,从传入的num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址
(用****作为结束输入的标志)。
int i,k=0,maxlen;
maxlen=strlen(a[k]);
for(i=1;i maxlen)
{ maxlen = strlen(a[i]) ; k = i ; } }
*max=a[k];
填空:[N] i i+1
改错:aa[i]=m%k;
printf("%d",aa[i-1]);
类型三:与下标或ASCII码有关
20.请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
下标奇数位置子母改大写
int i ;
for(i = 1 ; i < strlen(*ss) ; i+=2)
{
if(ss[i]>= 'a' && ss[i]<= 'z') ss[i]-=32;
}
填空:k N a[k][i]
改错:for( i = strlen( t )-1; i; i-- )
if(t[j]>t[j+1])
21.请编写—个函数void fun(char *ss),其功能是:将字符串ss中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
下标奇数位置子母改大写
char *p = ss ; int i = 0 ;
while(*p) {
if((i % 2) && (*p >= 'a' && *p <= 'z')) *p -= 32 ;
p++ ; i++ ; }
return ss ;
填空:NULL n head,ch
改错:for (i = 0,t = 0; p[i] ; i++)
c[t]= '\0';
22.请编写函数fun,其功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。
下标为偶数字符删除
int i, j = 0 ;
for(i=1; inext q p->next
改错:while(*s)
s++;
30.请编写函数fun,该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。
删除一维数组相同的数
int i, j = 1, k = a[0] ;
for(i = 1 ; i < n ; i++)
if(k != a[i]) { a[j++]=a[i] ; k = a[i] ; }
a[j] = 0 ;
return j ;
填空:FILE * fclose(fp) fp
改错:t=(STU *)calloc(sizeof(STU),m);
t[k]=b[j];
31.请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。
找出一维数组最大值及其下标
int i ;
*max=a[0];*d = 0 ;
for(i = 1; i < n; i++)
if(*max < a[i]) { *max = a[i]; *d = i ; }
填空:1 2*i (-1)
改错:k++;
if (m == k )
32.请编写一个函数int fun(int *s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
求数组最大元素及下标
int i, pos = 0, max = *s ;
for(i = 1 ; i < t ; i++)
{ if(max < *(s + i))
{ max = *(s + i) ; pos = i ; } }
*k = pos ;
填空:n++ 0 s++
改错:t+=s[k];
*ave=ave;
33.请编写函数fun(inta[][N],int n),该函数的功能是:使数组左下半三角元素中的值乘以n。
左下三角元素乘n
int i, j;
for(i = 0 ; i < N ; i++)
for(j = 0 ; j <= i; j++) a[i][j] *= n ;
填空:STU score[i] &std
改错:if(k>0)
else if(k==0)
34.请编写函数fun(int a[][N],int n),该函数的功能是:使数组右上半三角元素中的值乘以m。
右上三角元素同乘m
int i, j;
for(i = 0 ; i < N ; i++)
for(j = i ; j < N ; j++) a[i][j] *= m ;
填空:*av i x[j]
改错:float fun(int n)
for (i=2; i<=n; i++)
35.请编写函数fun(int a[][N]),该函数的功能是:使数组左下半三角元素中的值全部置成0。
左下三角元素置0
int i, j;
for(i = 0 ; i < N ; i++)
for(j = 0 ; j <= i; j++) a[i][j] = 0 ;
填空:*std PERSON std
改错:int k,q,i;
pt[i] = str[k][i] ;
36.请编一个函数求出二维数组每列中最小元素,并依次放入pp所指一维数组中。
二维数组每列最小元素
int i,j, min, k ;
for(i = 0 ; i < N ; i++)
{ min = tt[0][i] ; k = 0 ;
for(j = 1 ; j < M ; j++)
if(min > tt[j][i]) {min=tt[j][i] ; k = j ; }
pp[i] = tt[k][i] ; }
填空:*std std[i].age max.name
改错:void fun ( int*a, int*b )
t=*b;*b=*a;*a=t;
37.请编写一个函数fun,它的功能是:求出—个2×M整型二维数组中最大元素的值,并将此值返回调用函数。
求二维数组中最大元素的值
int i, j, max=a[0][0];
for(i=0; i<2; i++)
for(j=0; j 2*i+1
改错:double fun (int n)
s = s + (double)a / b;
38.编写程序,实现矩阵(3行3列)的转置(即行列互换)。
矩阵转置
int i,j,arr[3][3] ;
memcpy(arr, array, 9*sizeof(int)) ;
for(i = 0 ; i < 3 ; i++)
for(j = 0 ; j < 3 ; j++)
array[i][j] = arr[j][i] ;
填空:N break n
改错:sum=0;
scanf("%d",&a[i][j]);
39.请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。
按列顺序33 44 55 33 44 55
int i,j,np=0;
for(i = 0 ; i < nn ; i++)
for(j = 0 ; j < mm ; j++)
{ b[np] = s[j][i] ; np = i * mm + j + 1; }
*n=np;
填空:NODE * next r
改错:if(i%2 || s[i]%2==0)
t[j]=’\0’;
40.请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中。
按行顺序33 33 33 33 44 44 44 44
int i, j, k ;
for(i = 0 ; i < mm ; i++)
for(j = 0 ; j < nn ; j++)
{k = i * nn + j ; b[k] = s[i][j] ; }
*n = mm * nn ;
填空:h->next p->next >
改错:p=h->next;
p=p->next;
41.请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。
按列顺序wshwshwsh
for(j = 0 ; j < M ; j++)
{ b[n] = s[j][i] ; n = i * M + j + 1; }
填空:FILE * fp ch
改错:s[j++]=s[i];
s[j]='\0';.
42.请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。
数组周边元素的平均值
int i, j, n=0; double sum=0;
for ( i =0; i
upfst(char *p)
43.请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。
二维数组周边元素之和
int tot = 0, i, j ;
for(i = 0 ; i < N ; i++)
{tot += a[0][i] ; tot += a[M-1][i] ; }
for(i = 1 ; i < M - 1 ; i++)
{tot += a[i][0] ; tot += a[i][N-1] ; }
return tot ;
填空:x[i]/N j++ i++
改错:num[k]=0;
switch(*s)
44.请编写函数fun,该函数的功能是:实现B=A+A’,即把矩阵A加上矩阵A的转置,存放在矩阵B中。
B=A+A’
int c[3][3] ; int i, j ;
for(i = 0 ; i < 3 ; i++)
for(j = 0 ; j < 3 ; j++)
{ c[i][j] = a[j][i] ;
b[i][j] = a[i][j] + c[i][j] ; }
填空:&& '\0' s[j]
改错:for(i=2; i<=m; i++)
y+=1.0/(i*i);
类型五:学生分数操作
45.请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为71.80。
n门课程平均分71.8
int i;
float ave=0.0;
for(i=0; inext;
double av=0.0; int n = 0 ;
while(p!=NULL)
{ av = av + p->s ; p=p->next; n++; }
av /= n ; return av ;
填空:char ch<='9' '0'
改错:b[k]=*p;
b[k++]= ‘ ’;
47.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。
8门课程平均分78.875
int i ;
for(i = 0 ; i < N ; i++)
a->ave = a->ave + a->s[i] ;
a->ave /= N ;
填空:a[i] a[j] a[j]
改错:switch(g)
case 1: case 2:return 1;
48.请编写函数fun,该函数的功能是:找出成绩最高的学生记录。
找出成绩最高学生纪录(规定只有一个最高分)
int i, max = a[0].s, j = 0;
for(i = 1 ; i < N ; i++)
if(max < a[i].s) { j = i ; max = a[i].s ; }
*s = a[j] ;
填空:std[i].year std[i] n
改错:IsPrime ( int n )
if(!( n%i ))
49.请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中。
低于平均分的学生数据
int i ; double ave = 0.0 ; *n = 0 ;
for(i = 0 ; i < N ; i++) ave = ave + a[i].s ;
ave /= N ;
for(i = 0 ; i < N ; i++)
if(a[i].s < ave) { b[*n]=a[i] ; (*n)++; }
return ave ;
填空:*a 2 i+1
改错:sum=0.0;
if((i+1)%5==0)
50.请编写函数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不只一个,函数返回分数最高的学生的人数。
把分数最高学生数据放在b所指数组中,分数最高的学生可能不只一个
int i, max = a[0].s, n=0;
for(i = 1; i < N; i++) if(max < a[i].s) max = a[i].s ;
for(i = 0; i < N; i++) if(max==a[i].s) b[n++] = a[i] ;
return n;
填空:1 i a[p+i]
改错:float k;
if(*a<*c)
51.请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。
找出学生最高分由函数值返回
double max=h->s;
STREC *p;
p=h->next;
while(p)
{ if(p->s>max ) max=p->s;
p=p->next; }
return max;
填空:fp == fp
改错:n=strlen(aa) ;
ch=aa[i];
52.请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。
低于平均分的人作为函数值返回
float av=0.0 ; int i, j=0 ;
for(i=0; iscore[i]) below[j++]=score[i];
return j;
填空:j 0 i++
改错:for(i=2; i<=m; i++)
y-=1.0/(i*i);
53.请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。
高于等于平均分的学生数据
double t=0 ; int i ;
*n = 0 ;
for(i = 0 ; i < N ; i++) t = t + a[i].s ;
t = t / N ;
for(i = 0 ; i < N ; i++) if(a[i].s > t) b[(*n)++] = a[i] ;
return t ;
填空:->sno ->name &t
改错:double fun(double a, double x0)
if( fabs(x1-x0)>0.00001 )
54.请编写函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。
分数最低学生数据放在b所指数组
int i, j = 0, min=a[0].s ;
for(i = 0 ; i < N; i++) { if(min > a[i].s) {
j = 0 ; b[j++] = a[i] ; min = a[i].s ; }
else if(min == a[i].s)
b[j++] = a[i] ; }
return j ;
填空:struct student a.name a.score[i]
改错:if(p==n) return -1;
a[i]=a[i+1];
55.请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。
找出成绩最低学生纪录
int i, min = a[0].s, j = 0;
for(i = 1 ; i < N ; i++)
if(min > a[i].s) { j = i ; min = a[i].s ; }
*s = a[j] ;
填空:0 x[i]/N j++
改错:double fun(int m)
for( i = 100;i <= m;i += 100 )
56请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。
按分数高低排列学生纪录,高分在前
STREC tmp; int i,j;
for(i = 0; i < N; i++)
for(j = i+1; j < N; j++)
if(a[i].s < a[j].s)
{tmp = a[i]; a[i] = a[j]; a[j] = tmp; }
填空:999 t/10 x
改错:void fun (long s, long *t)
while(s>0)
57.请编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。
返回指定学号学生数据
STREC c ; int i ;
c.num[0] = '\0' ; c.s = -1 ;
for(i = 0 ; i < N ; i++)
if(strcmp(a[i].num, b)==0)
{ strcpy(c.num, a[i].num) ;
c.s=a[i].s; break ; }
return c ;
填空:n/2 i a[n-i-1]
改错:n= *p-'0';
n=n*8+*p-'0';
58.请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
指定分数范围内的数据
int i,j = 0 ;
for(i = 0 ; i < N ; i++)
if(a[i].s >= l && a[i].s <= h) b[j++] = a[i] ;
return j ;
填空:struct student
n-1
a[i].name,a[j].name
改错:q=p+i;
while(q>p)
类型六:字符和字符串操作
59.请编写一个函数fun,它的功能是:比较两个字符串的长度,返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。
返回较长字符串
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 ;
填空:next t->data t
改错:fun (char *a)
printf("%c" ,*a) ;
60.编写函数fun,该函数的功能是:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。
删除给定的字符
char *p = s ; int i = 0 ;
while(*p)
{ if(*p != c) s[i++] = *p ;
p++ ; }
s[i] = 0 ;
填空:k len ss[i][j]
改错:result *=n--;
result
61.请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。
求ss指定字符个数
int cnt = 0 ; char *p = ss ;
while(*p) {
if(*p == c) cnt++ ;
p++ ; }
return cnt ;
填空:j++ s[i]=t1[i] j
改错:for (j = i + 1;j < 6;j++)
*(pstr+i)=*(pstr+j);
62.请编写一个函数void fun(char *tt,int pp[]),统计在字符串中'a'到'z'26个字母各自出现的次数,并依次放在pp所指数组中。
统计26个字母出现次数
char *p = tt ; int i ;
for(i = 0 ; i < 26 ; i++) pp[i] = 0 ;
while(*p) {
if(*p >= 'a' && *p <= 'z') pp[*p - 'a'] += 1 ;
p++ ; }
填空:1 s[k] c
改错:long s = 0, t = 0 ;
t=t/10;
63.请编写一个函数void fun(char a[],char b[],int n),其功能是:删除一个字符串中指定下标的字符。
删除指定下标字符
strncpy(b, a, n) ;
b[n] = 0 ;
strcat(b, a + n + 1) ;
填空:t=i i '\0'
改错:while(fabs(t)>=num)
t=s/n;
64.请编写函数fun,该函数的功能是:统计一行字符串中单词的个数,作为函数值返回。
统计一行串中单词个数
int k = 1 ;
while(*s) { if(*s == ' ') k++ ;
s++ ; } return k ;
填空:filename fp fp
改错:p=(NODE *)malloc(sizeof(NODE));
return h;
65.请编写函数fun,该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。
M个字符串合并成新串
int i; *b=0;
for(i = 0 ; i < M ; i++) strcat(b, a[i]) ;
填空:next 0 r
改错:r=t;
if(*r==0)
66.请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出YES,否则返回0,主函数中输出N0。回文
int i, j = strlen(str) ;
for(i = 0 ; i < j / 2 ; i++)
if(str[i] != str[j - i - 1]) return 0 ; return 1 ;
填空:double f1 f2
改错:p=h->next;
p=p->next;
67.编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。
实现两个字符串连接
char *p=p1;
while(*p)p++;
while(*p2) *p++=*p2++;
*p=0;
填空:0 10*x n/10
改错:*t=0;
if(d%2!=0)
68.请编写一个函数,用来删除字符串中的所有空格。
删除字符串中所有空格
char *p = str ;
int i = 0 ;
while(*p) {
if(*p != ' ') str[i++] = *p ;
p++ ; }
str[i] = 0 ;
填空:0 || 1
改错:t-=1.0/i;
return t;
69.请编一个函数fun(char *s),该函数的功能是把字符串中的内容逆置。
字符串逆置
strrev(s);
填空:i+1 k=j t
改错:void fun(char *str, char ch)
if(*str!=ch)
str[1] = 0;
70.请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数 -1234
数字字符串转换为整数
int i, len, t; long x=0; len=strlen(p);
if(p[0]=='-') { t=-1; len--; p++; } else t=1;
while(*p) x = x*10-48+(*p++);
填空:10 0 x
改错:if (n==0)
result *= n--;
71功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。
1第m个字符移到串后
int i,j; char t; for(i=1;i<=m;i++) {t=w[0];
for(j=1;w[j]!='\0';j++) w[j-1]= w[j] ; w[j-1] =t; }
填空:double f1 f2
改错:char *fun(char *s,char *t)
ss++;
tt++;
72.编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。
统计子串出现的次数
int cnt = 0 ; char *p = str, *q ;
while(*p) { q = strstr(p, substr) ;
if(q == NULL) break;
p = q + strlen(substr) ; cnt++ ; } return cnt ;
填空:N len *n=len
改错:
t += 1.0/i;
return t;
101. 请编写函数fun,其功能是:统计s所指字符串中的数字字符个数,并作为函数值返回。
数字字符个数
int n=0;char *p=s;
while(*p)
{if(*p>='0'&&*p<='9') n++;p++;}
return n;
填空:b[k] N/2 <
改错:int t[N] ,i, num=0;
t[num++]=b[i];
for(i=0; idata p->next
改错:int i, one=0, zero=0;
switch( s[i] )
case 0:zero++;break;
104请编函数fun,其功能是将一个数字字符串转换成与其面值相同的长整型整数。可调strlen函数求字符串长度。例如:在键盘输入字符串2345210,函数返回长整型数2345210。
数字字符串转换为整数
int len, t; long x=0; len=strlen(s);
if(s[0]=='-') { t=-1; len--; s++; } else t=1;
while(*s) x = x*10-48+(*s++);
return x*t;
填空: 0 t (t-1)*(t+2)/2
改错:b[i]=0;
b[a[i] - 'a']++;
if (b[max] 0.000001);
return x1;
填空:i++ m m
改错:while ((high >= 2) && (n < 10) )
yes=0; break;
75.
若m的值为20,则fun函数