海大c程上机题附答案及附加题(4)

2019-08-02 00:16

17. 编写函数int fun(int m,int n,int *p),要求将范围[m,n]之间所有的fibonacci数写入p所指的一维数组中,fibonacci数的个数通过函数返回值带回。例如,[0,30]之间的fibonacci数有7个,它们是:1 2 3 5 8 13 21 ;[1000,32767]之间有7个,它们是:1597 2584 6765 10946 17711 28657 。

#include

int fun(int m,int n,int *p) { int t,num=0; long f,f1=1,f2=1; if(m>n){t=m;m=n;n=t;} for(f=1,t=0;f<=n;) { if(f>=m) { p[t]=f;t++;num++; } f1=f2; f2=f ; f=f1+f2; }

return num; }

void main() { int a,b,n,c[22],i; scanf(\ n=fun(a,b,c); for(i=0;i

18. 编写函数char *fun(char *s1,char *s2,int n),将字符串s1中后面的n个字符复制到s2所指数组中,若s1不足n个字符,则用*在前端补齐至n个字符,写入s2中。函数返回字符串s2的指针。例如,下面程序运行时, 若输入:“abcd1234”和6,则输出“cd1234” 若输入:“abcd1234”和10,则输出“**abcd1234” #include #include

char *fun(char *s1,char *s2,int n) { int i,k; k=strlen(s1); if(n=n) s1[i]='\\0'; } strcpy(s2,s1); if(n==k) strcpy(s2,s1); if(n>k) { for(i=n-1;i>=0;i--) { s1[i]=s1[i-n+k]; if(i<=n-k-1) s1[i]='*'; } s1[n]='\\0'; } strcpy(s2,s1); return s2; }

void main() { char c1[80],c2[80]; int n; gets(c1);

}

scanf(\fun(c1,c2,n); puts(c2);

19. 编写函数void fun(char *s,char *b,char *c),逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串应为:aBcdeFgH。 #include #include

void fun(char *a,char *b,char *c) { int i,l,m,k=0; if(strlen(a)>strlen(b))

{l=strlen(a);m=strlen(b);} else {m=strlen(a);l=strlen(b);k=1;} for(i=0;i=b[i]) c[i]=a[i]; else c[i]=b[i]; } if(k==0)

for(;i

for(;i

c[i]='\\0'; }

void main() { char s1[80],s2[80],s3[80]; gets(s1); gets(s2); fun(s1,s2,s3); puts(s3); }

20. 编写函数void fun(char *s),将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符和非数字字符原有的前后次序。

例如,若输入:num is 0532-66ouc78,OK. 执行结果为:num is -ouc,OK.05326678 #include #include

void swap(char *a,char *b) { char temp; temp=*a; *a=*b; *b=temp; }

void fun(char *s) { char i; int n; int num,m=0,o=0; num=strlen(s); for (i=0;s[i]!='\\0';i++) { if ((s[i]>='0') && (s[i]<='9')) m++; } for (i=0;s[i]!='\\0';i++) {

if ((s[i]>='0') && (s[i]<='9')) { o++; if(o>m) break;

for (n=i;n+1

swap(&s[n],&s[n+1]); } i--; }

} }

void main() {

}

char a[80]; gets(a); fun(a); puts(a);

选做1:编写函数int fun(char *str,char ch),统计字符串str中指定字符ch的个数,统计结果作为函数返回值带回。 #include #include

int fun(char *str,char ch) { int i=0,k,j; k=strlen(str); for(j=0;j

if(ch==str[j])i++; }

return(i); }

void main() { char a[100],b; puts(\ gets(a); puts(\ b=getchar(); printf(\}

选做2 编写函数float fun(int m),功能是:根据正整型形参m,计算如下公式的值:

y=1-1/2+1/3-1/4+1/5...+(-)1/m ,该值作为函数返回值。 #include #include float fun(int m) {

float s=0; int i=1;

for(i=1;i


海大c程上机题附答案及附加题(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:心得体会

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: