类型一:调整个、十、百、千位
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
while(*p) a[j++]=*p++; a[j]=0;
填空:t[][N] i=0;i 改错:int fun(int a[],int m) else if(m > 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(j 填空:N substr 0 改错:fun(int x,int y, int z) return j; 16.请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个 串尾部*号不多于n个 char *p=a ; int j=0; while(*p) p++; p--; while(*p == '*') p--; p++; while(j 填空:a[i] % 2 a[j] j 改错:fun (int n) if(n==1) 17.请编写函数fun,它的功能是:使字符串的前导*号不得多于n个 前导*不多于n个 int i=0,j,k=0; while(a[k]=='*') k++; if(k>n) { 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 https://www.wendangku.net/doc/3414177736.html, 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 { if(strlen(a[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; i t[j] = 0 ; 填空:data next head 改错:while(*r) *a = *r; a++; r++; 23.编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。 除首尾外其余ASCII码降序 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 ; } } 填空:ss[i] n+j 1 改错:if(* p == ' ' ) *(p-1) = toupper( *( p - 1 ) ); 24.请编写函数fun,其功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。 ASCII码值为偶数删除 int i, j = 0 ; for(i = 0 ; i < strlen(s); i++) if(s[i] % 2) t[j++] = s[i] ; t[j] = 0 ; 填空:STU std[i].num std[i] 改错:r++; p++; if(*r==0)25.请编写函数fun,其功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。 ASCII值为奇数删除 int i, j = 0 ; for(i = 0 ; i < strlen(s); i++) if(s[i] % 2==0) t[j++] = s[i] ; t[j] = 0 ; 填空:s[i] k '\0' 改错:while(*w) if( *r == *p ) 26.请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除 除下标偶数同时ASCII码值偶数之外其余全部删除 int i, j = 0 ; for(i = 0 ; i < strlen(s) ; i += 2) if(s[i] % 2 == 0) t[j++] = s[i] ; t[j] = 0 ; 填空:*n next head 改错:a = NULL; if(*r==*p) 27.请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除 除下标奇数同时ASCII码也为奇数外其余字符删除 int i, j = 0 ; for(i = 1 ; i < strlen(s) ; i += 2) if(s[i] % 2) t[j++] = s[i] ; t[j] = 0 ; 填空:0 i++ 2.0*i 改错:void fun (char *s, char *t) t[2*d]=0; 28.请编写函数fun,其功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。 将下标为偶数同时ASCII码为奇数删除 int i, j = 0 ; for(i = 0 ; i < strlen(s) ; i++) if(!((i % 2) ==0 && (s[i] % 2))) t[j++] = s[i] ; t[j] = 0 ; 填空:j k p 改错:while(i if (*a) 103.请编写函数fun,函数的功能是查找x在s所指数组中下标的位置作为函数值返回,若x不存在,则返回-1 int i; for(i=0;i return -1; 填空:i%5 \n a[i] 改错:return t; for(i=0;i x[i+1]=findmid(a,b,c); 类型四:数组和矩阵操作 29.请编写函数fun,该函数的功能是:移动一维数组中的内容;若数组中有n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。 下标0-p移到数组最后 int i, j = 0, b[N] ; for(i = p + 1 ; i < n ; i++) b[j++] = w[i] ; for(i = 0 ; i <= p ; i++) b[j++] = w[i] ; for(i = 0 ; i < n ; i++) w[i]= b[i] ; 填空:p->next 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 https://www.wendangku.net/doc/3414177736.html, 改错: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++)