类型一:调整一个数的个、十、百、千位 1.请编写函数fun,其功能是:将两个两位数的正整数a、b合并2.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a=45,b=12,调用该函数后在c数的千位和十位上。例如,当a=45,b=12,调用该函数后c=4152。 c=1524。 *c=(a/10)*1000+(b/10)*100+(a)*10+(b); *c=(b/10)*1000+(a)*100+(b)*10+(a/10); *fw str str STYPE FILE Fp void fun(long s,long *t) for( i=0; i<=sl; i ++) 把s后字母改为小写L sl=sl*10; t[2*sl] = '\\0'; 3.请编写函数fun,其功能是:将两个两位数的正整数a、b合并4.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a=45,b=12,调用该函数后在c数的百位和个位上。例如,当a=45,b=12,调用该函数后c=2514。 c=5142。 *c=(b)*1000+(a)*100+(b/10)*10+(a/10); *c=(a)*1000+(b/10)*100+(a/10)*10+(b); fp fclose(fp) fname \ if (d%2==0) for ( i=j+1; i<=n-1 ; i++ ) s /= 10; p=i; 5.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12,调用该函数后c=5241。 *c=(a)*1000+(b)*100+(a/10)*10+(b/10); k N-1 temp fun(int a[][M], int m) a[j][k]=(k+1)*(j+1); 7.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a=45,b=12,调用该函数后c=1425。 *c=(b/10)*1000+(a/10)*100+(b)*10+(a); 0 x t++ int i,s1; s后面是小写的L t[i] = s[sl-i-1]; 6.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a=45,b=12,调用该函数后c=2415。 *c = (b)*1000+(a/10)*100+(b/10)*10+a; struct student * a->score[i] a char *fun(char (*sq)[M]) return sp; 8.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12,调用该函数后c=4251。 *c=(a/10)*1000+(b)*100+(a)*10+(b/10); 1 s i*10 int fun(int n,int xx[][M]) printf(\
类型二:与*号有关的操作
1
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); 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) 13.请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。 删除串尾*号 char *p = a ; while(*p) p++ ; p-- ; while(*p == '*') p-- ; p++ ; *p = 0 ; N i -1 a2=k/10; return i; 15.请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。 删除前导和尾部* char *p=a ; int j=0,len=0; while(*p) {p++; len++;} while(j
10.请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后的一个字母。 除尾部*号,其余*删除 char *q=a; int j=0; while(*q && q
a[mid]) 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); 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 ) 16.请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个 串尾部*号不多于n个 char *p=a ; int j=0; while(*p) p++; p--; while(*p == '*') p--; p++; while(j
t=1; return(2*s); s[j]=0; 19.编写一个函数,从传入的num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址 (用****作为结束输入的标志)。 int i,k=0,maxlen; maxlen=strlen(a[k]); for(i=1;i 3 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 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; 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(\ 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; 42.请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。 数组周边元素的平均值 int i, j, n=0; double sum=0; for ( i =0; i