1. 请编一个函数fun(char *s),函数的功能是把字
符串中的内容逆置。例如:字符串中原有的内容为:4. 要求程序的功能是:把20个随机数存入一个数
组,然后输出该数组中的最小值。其中确定最小值abcdefg,则调用该函数后,串中的内容为:gfedcba。
fun(char *s)
{ int i,n=strlen(s); char ch;
for(i=0;i { ch=s[i];s[i]=s[n-1-i];s[n-1-i]=ch;} } 2. 编写程序,实现矩阵(3行3列)的转置(即行列 互换)。例如,输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 100 400 700 200 500 800 300 600 900 int fun(int array[3][3]) { int i,j,t; for(i=0;i<3;i++) for(j=i;j<3;j++) { t=array[i][j];array[i][j]=array[j][i]; array[j][i]=t; } } 3. 请编一个函数fun(int *a,int n,int *odd,int *even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n给出数组中数据的个数;利用指针odd返回奇数之和,利用指针even返回偶数之和。 例如:数组中的值依次为:1,9,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even返回偶数之和8。 fun( int *a,int n,int *odd,int *even) { int i; *odd=*even=0; for(i=0;i *even=*even+a[i]; } 的下标的操作在fun函数中实现,请给出该函数的定义。 int fun(int list[],int size) {int i,j; j=0; for(i=0;i return(j); } 5. 请编一个函数float fun(double h),函数的功 能是对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值为正数)。 例如:h值为8.32433,则函数返回8.32; h值为8.32533,则函数返回8.33。 float fun(float h) { long w; h=h+0.005; h=h*100; w=h; h=w/100.0; return(h); } 6. 编写函数fun,函数的功能是:从字符串中删除 指定的字符。同一字母的大、小写按不同字符处理。若程序执行时,输入字符串为:turbo c and borland c++,从键盘上输入字符:n,则输出后变为:turbo c ad borlad c++,如果输入的字符字符串中不存在,则字符串照原样输出。 int fun(char s[],int c) {int i,j=0; for(i=0;s[i]!='\\0';i++) if(s[i]!=c) s[j++]=s[i]; s[j]='\\0'; } 7. 请编写一个函数unsigned fun(unsigned w),w 是一个大于10的无符号整数,若w是n(n≥2)位的整数,函数求出w的后n-1位的数作为函数值返回。 unsigned fun(unsigned w) { long t=1,m=w; while(m) { m=m/10;t=t*10; } return(w%(t/10)); } 8. 编写函数 int fun(int lim,int aa[MAX]),该 函数的功能是求出小于lim的所有素数并放在aa数组中,该函数返回求出素数的个数。 int fun(int lim,int aa[MAX]) { int i,j,n=0; for(i=2;i aa[n++]=i; } return(n); } 9. 请编写函数fun,函数的功能是求出二维数组周 边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 例如:二维数组中的值为 1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 则函数值为61。 int fun (int a[M][N]) { int i,j,sum=0; for(i=0;i if(i==0||i==M-1||j==0||j==N-1) sum=sum+a[i][j]; return(sum); } 10. 请编写函数fun,对长度为7个字符的字符串, 除首、尾字符外,将其余5个字符按降序排列。例如,原来的字符串为CEAedca,排序输出为CedcEAa。 int fun(char *s,int num) {int i,j; char ch; for(i=1;i for(j=i+1;j if(s[i] {ch=s[i];s[i]=s[j];s[j]=ch;} } 11. 请编一个函数 void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。 void fun(int tt[M][N],int pp[N]) {int i,j,n=0,min; for(j=0;j 12. 编写一个函数,从传入的num个字符串找出最 长的一个字符串,并通过形参指针max传回该串地址。(注意:用****作为结束输入的标志。) fun(char(*a)[81],int num,char **max) { int i; *max=a[0]; for(i=0;i if(strlen(*max) 13. 请编一个函数fun,其中n所指存储单元中存放 了数组中元素的个数。函数的功能是:删除所有值为y的元素。数组元素中的值和y的值由主函数通过键盘输入。 void fun(int bb[],int *n,int y) {int i,j=0; for(i=0;i<*n;i++) if(bb[i]!=y) bb[j++]=bb[i]; *n=j; } 14. 编写一个函数,该函数可以统计一个长度为2 的字符串在另一个字符串中出现的次数。 例如,假定输入的字符串为:asd asasdfg asd as zx67 ask mklo,子字符串为:as,则应输出6。 int fun(char *str,char *substr) { int i,j,k,n=0,s1=strlen(str),t1=strlen(substr); for(i=0;i while(str[k]==substr[j]&&j if(j>=t1) n++; } return(n); } 15. 请编写一个函数int fun(int x),它的功能是: 判断整数x是否是同构数。若是同构数,函数返回1;否则返回0。所谓\同构数\是指这样的数,它出现在它的平方数的右边。 例如:输入整数5,5的平方数是25,5是25中右侧的数,所以5是同构数。x的值由主函数从键盘读入,要求不大于100。 int fun(int x) {if(x<10) return !((x*x-x)); if(x<100&&x>10) return !((x*x-x)0); } 16. 请编写函数fun,函数的功能是:在字符串中 的所有数字字符前加一个$字符。 例如,输入A1B23CD45,则输出为:A$1B$2$3CD$4$5。 void fun(char *s) {int i,j=0,a[100]; for(i=0;s[i]!='\\0';i++) { if(s[i]>='0'&&s[i]<='9') a[j++]='$'; a[j++]=s[i]; } a[j]='\\0'; for(i=0;i<=j;i++) s[i]=a[i]; } 17. 请编一个函数fun(char *s),函数的功能是把 字符串中所有的字符前移一个位置,串中的第一个字符移到最后。 例如:原有的字符串为:Mn.123xyZ,则调用该函数后,串中的内容为:n.123xyZM。 fun(char *s) {int i,n=strlen(s); char t; t=s[0]; for(i=0;i 18. 请编写函数fun,函数的功能是:将所有大于1 小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。 例如,若输入:17,则应输出:9和4 6 8 9 10 12 14 15 16。 void fun(int m,int *k,int xx[]) {int i,j,n=0; for(i=2;i for(j=2;j xx[n++]=i; } *k=n; } 19. 请编写一个函数fun(char *s),函数的功能是 把字符串中所有的字母改写在该字母的下一个字母,最后一个字母z改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他的字符不变。 例如,原有的字符串为:Mn.123xyZ,则调用该函数后,串中的内容为:No.123yzA。 fun(char *s) {int i; for(i=0;s[i]!='\\0';i++) {if(s[i]=='Z'||s[i]=='z') s[i]=s[i]-25; else if((s[i]>='a'&&s[i]<'z')||(s[i]>='A'&&s[i]<'Z')) s[i]=s[i]+1; } } 20. 请编写函数fun,函数的功能是:将s所指字符 串中下标为奇数位置上的大写字母转换为字母序列中的下一个小写字母;若该位置上是小写字母,则不转换;若该位置上是大写字母Z,则仅转换成 小写字母z。 例如,输入:ABCdXZZZZ,则输出为:AcCdXzZz。 return(j); } void fun(char *s) { int i; for(i=0;s[i]!='\\0';i++) if(i%2!=0) { if(s[i]=='Z') s[i]='z'; else if(s[i]>='A'&&s[i]<'Z') s[i]=s[i]+33; } } 21. 程序定义了N×N的二维数组,并在主函数中赋 值。请编写函数fun,函数的功能是:给数组周边元素置0值。 例如:a数给中的值为 |0 11 12 7 9| |1 9 7 4 5| |20 13 18 3 1| a= |14 5 6 8 2| |15 9 17 4 1| 则返回主程序后a数组中的值应为 |0 0 0 0 0| |0 4 7 9 0| |0 3 18 18 0| |0 8 6 5 0| |0 0 0 0 0| fun( int w[][N]) {int i,j; for(i=0;i if(i==0||i==N-1||j==0||j==N-1) w[i][j]=0; } 22. 请编写函数fun,它的功能是:求出ss所指字 符串中指定字符的个数,并返回此值。 例如,若输入字符串:123412132,输入字符为:1,则输出:3。 int fun(char *ss,char c) {int i,j=0; for(i=0;ss[i]!='\\0';i++) if(ss[i]==c) j++; 23. 程序定义了N×N的二维数组,并在主函数中赋 值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。 例如:a数组中的值为 |0 1 2 7 9| |1 9 7 4 5| a= |2 3 8 3 1| |4 5 6 8 2| |5 9 1 4 1| 则返回主程序后s的输出结果为:3.375000。 double fun(int w[][N]) {int i,j; double ave,sum=0; for(i=0;i if(i==0||i==N-1||j==0||j==N-1) sum=sum+w[i][j]; ave=sum/(4*N-4); return(ave); } 24. 编写一个函数fun,它的功能是:实现两个字 符串的连接(不使用库函数strcat)。 例如,分别输入下面两个字符串: FirstString-- SecondString 程序输出: FirstString--SecondString void fun(char p1[],char p2[]) { int i,j; for(i=0;p1[i]!='\\0';i++); for(j=0;p2[j]!='\\0';j++) p1[i++]=p2[j]; p1[i]='\\0'; } 25. 程序定义了N×N的二维数组,并在主函数中自 动赋值。请编写函数fun(int a[][N]),函数的功能是:使数组中第一列元素中的值与最后一列元素中的值对调、第二列元素中的值与倒数第二列元素中的值对调、……、其他依次类推。 例如:a数组中的值为
相关推荐: