资源描述:
《实验问题详解--函数.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1.编一个带有函数的程序。在main()函数中输入一个字符串(长度<20),调用函数fun将该字符串中的所有字符按ASCII码升序排序,然后再输出排序后的字符串。例如,输入edcba,则应输出abcde.。#include#includeintmain(){voidfun(charx[],inty);inti;charc[20];printf("Pleaseinputchars:");gets(c);i=strlen(c);fun(c,i);return0;}voidfun
2、(charx[],inty){inti,j;charc;for(i=0;ix[j]){c=x[i];x[i]=x[j];x[j]=c;}puts(x);}2.下面程序的功能是依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串;(如:abcd123efg456变为123456)。修改该程序,要求将红色部分用一个函数来实现。#include"stdio.h"main(){chars[15];inti,j;scanf("%s",s);for(
3、i=0,j=0;s[i]!=' ';i++)if(s[i]>='0'&&s[i]<='9'){s[j]=s[i];j++;}s[j]=' ';printf("Theresult:");printf("%s",s);}#includeintmain(){voidfun(charx[]);chars[15];printf("Inputcharstofills[15]:");scanf("%s",s);fun(s);return0;}voidfun(charx[]){inti,j;for(i
4、=0,j=0;x[i]!=' ';i++)if(x[i]>='0'&&x[i]<='9'){x[j]=x[i];j++;}x[j]=' ';puts(x);}3.编写带有函数的程序(函数名为:intfun(ints[],int*k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。例如:输入如下整数876675896101301401980431451777则输出结果为:6,980。#includevoidfun(ints[],int*k){inti,max=s[0];fo
5、r(i=1;i<10;i++)if(max
6、,则插入后数组元素依次为4、6、8、41、42、56、77、89、102。#includevoidfun(ints[],intm){inti,j;for(i=0;;i++)if(s[i]m)break;for(j=6;j>i;j--)s[j+1]=s[j];s[i+1]=m;}intmain(){ints[8]={4,6,8,41,56,77,102};inti,m;puts("Pleaseinputm:");scanf("%d",&m);fun(s,m);for(i=0;i
7、<8;i++)printf("%d",s[i]);putchar('');return0;}5.下面程序的功能是将字符数组s2中的全部字符拷贝到字符数组s1中。拷贝时,’ ’也拷贝过去,但’ ’后面的字符不拷贝。修改该程序,要求将红色部分用一个函数来实现。main(){chars1[80],s2[80];inti;scanf("%s",s2);for(i=0;s2[i]!=’ ’;i++)s1[i]=s2[i];s1[i]=’ ’;printf("s1:%s",s1);}#include8、.h>voidxp(chars1[],chars2[]){inti;for(i=0;s2[i]!=' ';i++)s1[i]=s2[i];s1[i]=' ';}intmain(){chars1[80],s2[80];puts("Inputcharsofs2[]:");gets(s2);xp(s1,s2);printf("s1:%s",s1);retu