函数实验
01:编写带有函数的程序,函数fun功能是求出能整除x且不是偶数的各个整数,顺序存放在数组pp中,这些除数的个数通过形参返回。
例如:若x值为30,则有4个数符合要求,是1,3,5,15。 void fun(int x,int pp[],int *n) { }
main()
{ int x,aa[100],n,i;
printf(\ scanf(\ fun(x,aa,&n); for(i=0;i printf(\ printf(\} 02: 编写带有函数的程序(函数名为:int fun(int s[],int *k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。 例如:输入如下整数876 675 896 101 301 401 980 431 451 777 则输出结果为:6,980。 int fun(int s[],int *k) { } main() { int a[10]={876,675,896,101,301,401,980,431,451,777}; int k; fun(a,&k); printf(\} 03: 编写带有函数的程序(函数名为:void fun(char ss[])),功能是将ss所指字符串中下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换,注意下标是从右向左0开始的)。 例如:输入abbcc45ghNj,则应输出aBbCc45GhNj。 #include \void fun(char ss[]) { } main() { char tt[81]; printf(\ gets(tt); fun(tt); printf(\} 04: 编写带有函数的程序(函数名为:int fun()),功能是从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。 结果应该是:15 45 51 54 int fun( ) { } main() { int a[100],k,m; m=fun(a); printf(\ for(k=0;k printf(\} 05: 编写带有函数的程序(函数名为fun),功能是求出ss所指字符串中指定字符的个数,并返回此值。 例如:输入123412132,再输入字符1则应输出3。 #include \int fun( ) { } main() { char a[20],ch; printf(\ gets(a); printf(\ ch=getchar(); printf(\ } 06.:利用函数方法编程序:函数fun功能是,找出100至1000之间三位数字相等的所有整数(如:111、222、333、……),把这些整数放在s所指数组中,个数作为函数值返回。 int fun( ) { } main() { int a[50],num=0,i; num=fun(a); printf(\ for(i=0;i printf(\ } 07:编一个带有函数的程序。在main()函数中输入一个字符串(长度<20),调用函数fun将该字符串中的所有字符按ASCII码升序排序,然后再输出排序后的字符串。例如,输入edcba,则应输出abcde.。 e d c a g s f \\0 \\0 \\0 #include \void fun( ) { } main() { char s[20]; printf(\ gets(s); fun(s); printf(\ string: %s\} 08 在main()函数中,已有一个已排好序的整型数组,今输入一个整数,调用函数fun(),其功能是按原来排序的规律将它插入数组中。例如:原来数组的元素 依次为4、6、8、41、56、77、102。若将42插入数组中,则插入后数组元素依次为4、6、8、41、42、56、77、89、102。 fun( ) { } main() { int s[8]={ 4,6,8,41,56,77,102}; int m,i; scanf(\ fun(s,m); for(i=0;i<8;i++) printf(\} 9 在main()函数中,先从键盘上输入一个3行3列整型数组的各个元素的值,然后调用函数fun(),其功能是计算并返回主对角线元素之和。 int fun( ) { } main() { int a[3][3],sum; int i,j; printf(\ for (i=0;i<3;i++) for (j=0;j<3;j++) scanf(\ sum=fun(a); printf(\} 10 调用函数fun(),其功能是用选择法对10个整数按降序进行排序。 fun( ) { } main() { int a[11],i,j,k,x; printf(\ for(i=1;i<11;i++) scanf(\ printf(\ fun(a); printf(\ for(i=1;i<11;i++) printf(\} 11 下面程序的功能是用冒泡法对10个整数按降序进行排序。修改该程序,要求将红色部分用一个函数来实现。 main() { int a[11],i,j,t; printf(\ for(i=1;i<11;i++) scanf(\ printf(\ for(j=1;j<=9;j++) for(i=1;i<=10-j;i++) if(a[i] {t=a[i]; a[i]=a[i+1]; a[i+1]=t;} printf(\ for(i=1;i<11;i++) printf(\ 12 下面程序的功能是将字符数组s2中的全部字符拷贝到字符数组s1中。拷贝时,’\\0’也拷贝过去,但’\\0’后面的字符不拷贝。修改该程序,要求将红色部分用一个函数来实现。 main() { char s1[80],s2[80]; int i; scanf(\ for(i=0;s2[i]!=’\\0’;i++) s1[i]=s2[i]; s1[i]=’\\0’; printf(\} 13 下面程序的功能是将两个字符串连接起来,不要用strcat函数。修改该程序,要求将红色部分用一个函数来实现。 main() { char s1[80],s2[80]; int i=0,j; scanf(\ scanf(“%s”,s2);