高等1【问题描述】将整型参数 x 中每一位上为偶数的数依次取出,构成一个新数返回。高位仍在高位,低位仍在低位。【输入形式】从标准输入中输入一个长整形数【输出形式】将生成的序列输出到标准输出中【样例输入】x=124578902【样例输出】y=24802#includevoid main(){long fun(long);long x,y;scanf("%ld",&x);y=fun(x);printf("%ld",y);}long fun(long x){int i,num,wei;long s=0;wei=1;for(i=0;x>0;i++){num=x%10;if(num%2==0){s=s+num*wei;wei=wei*10;}x=(x-num)/10;}return s;}2【问题描述】计算并返回满足表达式: 1+(1+2)+(1+2+3)+(1+2+3+4)+……+(1+2+3+……+n)<=m 最大的 n。【输入形式】从标准输入中输入一个长整形数 m【输出形式】将生成的最大 n 输出到标准输出中【样例输入】m=10000【样例输出】n=38#includevoid main(){int m,n;printf("m=");scanf("%d",&m);n=fun(m);printf("n=%d",n);}int fun(int m){int n,i;int s=0;for(n=1;s<=m;n++){for(i=1;i<=n;i++)s=s+i;}return n-2;}3【问题描述】输出比 x 大的最初 k(k<1000)个素数,x 和 k 键盘输入,输出时用一个空格分隔数据。注意最小的素数是 2 。【样例输入】7 10【样例输出】11 13 17 19 23 29 31 37 41 43【样例说明】-7 10【样例输出】2 3 5 7 11 13 17 19 23 29#include#includevoid main(){void fun(int,int);int x,k;scanf("%d%d",&x,&k);if(x<=2) //x<=2 时素数由 2 找起{x=2;fun(x,k);}if(x>2) //x>2 时素数由 x+1 开始找起;{x=x+1;fun(x,k);}}void fun(int n,int k){int j,i;j=0; //记录输出的素数数量for(;jsqrt(n)){printf("%d ",n);j++;}}}4【问题描述】字符串 str 中单词以空格作分隔,如果单词之间不止一个空格,则删除多余的空格,使单词之间只保留一个空格。字符串开始的空格也只保留一个。【输入形式】从标准输入中输入字符串【输出形式】将生成的序列输出到标准输出中【样例输入】It's 10:10 o'clock ,I am late.【样例输出】It's 10:10 o'clock , I am late.#include#include#includevoid main(){int i,n;char s[1000]; //测试数据或许很长gets(s);for(i=0;s[i]!='\0';i++){if(s[i]==' '&&s[i+1]==' '){for(n=i;s[n]!='\0';n++)s[n]...