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

2019-08-02 00:16

}

7. 编写函数int countw(char *str),统计字符串str中单词的个数。单词之间以空格,逗号,句号作分隔,数字也看做单词。单词之间可能不止一个分隔符。如输入: It's 10:10 o'clock ,I am late.屏幕上输出\ #include int countw(char *str) { int w=0,i,k=0;

for(i=0;str[i]!='\\0';i++)

if(str[i]==' '||str[i]==','||str[i]=='.') { w=0; 前面一个是‘ ’或‘,’或‘。’且后面一个为 } 字母或数字就可以说明有一个单词。

Else

if(w==0) { w=1; k++; }

return k; }

void main() { char s[200]; gets(s); printf(\}

8. 编写函数void fun(char *str),功能:字符串str中单词以空格作分隔,如果单词之间不止一个空格,则删除多余的空格,使单词之间只保留一个空格。字符串开始的空格也只保留一个。例如,程序运行时若输入: It's 10:10 o'clock , I am late. 输出: It's 10:10 o'clock , I am late. #include void fun(char *str) { int i,t; for(i=0;str[i]!='\\0';i++) if(str[i]==' '&&str[i+1]==' ') { for(t=i+1;str[t]!='\\0';t++) str[t]=str[t+1]; str[t+1]='\\0'; i--; } }

void main() { char s[100]; puts(\ gets(s); fun(s); puts(s); }

发现两个空格则将后面的前移,前移后注意i后退一 位。

9. 函数void fun(int x,int k,int *p)的功能是:求出比x大的最初k(k<1000)个素数,放入p所指数组中。例如:程序运行时输入:10 10,输出:11 13 17 19 23 29 31 37 41 43 #include #include

void fun(int x,int k,int *p) { int t=0; long i,j; double m; if(x>=1) for(i=x+1;tm) { p[t]=i; t++; } } else for(i=2;tm) { p[t]=i; t++; } } }

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

}

{ printf(\}

puts(\

10. 编写函数int fun(int a,int b),在[a,b]范围内统计满足下面条件的数的个数。条件:该数是素数,且该数逆序后形成的数也是素数。例如,在[100,150]范围内101 107 113 131 149 满足条件,则下面程序运行时输入100 150,输出:num=5。 #include #include int fun(int a,int b) { int i,j,c,k=0,w,n,sum; double m,d; for(i=a;i<=b;i++) { m=sqrt(i); for(j=2;j<=m;j++) if(i%j==0)break; if(j>m)

{

for(w=i,sum=0;w>0;) { c=w; sum=10*sum+c; w=w/10; } d=sqrt(sum); for(n=2;n<=d;n++) if(sum%n==0)break; if(n>d) { k++; } } } return k; }

void main() { int num,a,b; scanf(\ num=fun(a,b); printf(\}

判断原数是不是质数 倒序 倒序后是不是质数

11. 编写函数void fun(char *s),功能:在s所指字符串中每两个字母之间加一个*,其余字符保持不变。

例如,下面程序运行时,若输入:I had 123_book. 输出:I h*a*d 123_b*o*o*k. #include #include void fun(char *s) { int i,j,L; L=strlen(s); for(i=1;i='a' && s[i] <='z' || s[i] >='A' && s[i] <='Z' ) && (s[i-1] >='a' && s[i-1] <='z' || s[i-1] >='A' && s[i-1] <='Z' )) { for(j=L;j>=i;j--) s[j+1]=s[j]; s[i]='*'; L++; } }

void main() { char x[80]; gets(x); fun(x); puts(x); }


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

下一篇:心得体会

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

马上注册会员

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