资源描述:
《中国海洋大学2017春上机试题高档题答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、高等1【问题描述】将整型参数x中每一位上为偶数的数依次取出,构成一个新数返回。高位仍在高位,低位仍在低位。【输入形式】从标准输入中输入一个长整形数【输出形式】将生成的序列输出到标准输出中【样例输入】x=124578902【样例输出】y=24802#includevoidmain(){longfun(long);longx,y;scanf("%ld",&x);y=fun(x);printf("%ld",y);}longfun(longx){inti,num,wei;longs=0;wei=1;for
2、(i=0;x>0;i++){num=x%10;if(num%2==0){s=s+num*wei;wei=wei*10;}x=(x-num)/10;}returns;}2【问题描述】计算并返回满足表达式:1+(1+2)+(1+2+3)+(1+2+3+4)+……+(1+2+3+……+n)<=m最大的n。【输入形式】从标准输入中输入一个长整形数m【输出形式】将生成的最大n输出到标准输出中【样例输入】m=10000【样例输出】n=38#includevoidmain(){intm,n;printf("m=
3、");scanf("%d",&m);n=fun(m);printf("n=%d",n);}intfun(intm){intn,i;ints=0;for(n=1;s<=m;n++){for(i=1;i<=n;i++)s=s+i;}returnn-2;}3【问题描述】输出比x大的最初k(k<1000)个素数,x和k键盘输入,输出时用一个空格分隔数据。注意最小的素数是2。【样例输入】710【样例输出】11131719232931374143【样例说明】-710【样例输出】2357111317192329#include<
4、stdio.h>#includevoidmain(){voidfun(int,int);intx,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);}}voidfun(intn,intk){intj,i;j=0;//记录输出的素数数量for(;jsq
5、rt(n)){printf("%d",n);j++;}}}4【问题描述】字符串str中单词以空格作分隔,如果单词之间不止一个空格,则删除多余的空格,使单词之间只保留一个空格。字符串开始的空格也只保留一个。【输入形式】从标准输入中输入字符串【输出形式】将生成的序列输出到标准输出中【样例输入】It's 10:10 o'clock , I am late. 【样例输出】It's10:10o'clock,Iamlate. #include#include#include6、.h>voidmain(){inti,n;chars[1000];//测试数据或许很长gets(s);for(i=0;s[i]!=' ';i++){if(s[i]==''&&s[i+1]==''){for(n=i;s[n]!=' ';n++)s[n]=s[n+1];i--;//因为可能有两个以上空格相连的情况,需要退位检测接下来还有没有空格}}puts(s);}5!【问题描述】有int型5×6二维数组,分别将每一行的最大值与本行的最后一个数据(第6-1列数据)对调,其余数据保持不变。然后按每一行的最大值对二维数
7、据各行降序排序并输出变换后的数组。【输入形式】从标准输入中输入一个5*6的二维数组【输出形式】将生成的二维数组输出到标准输出中【样例输入】(输入的数据的范围【999,-999】)11 52 43 4 25 2222 33 46 58 16 4783 42 54 26 47 0 4 5 6 7 8 9 45 96 17 18 39 2 【样例输出】(输出时用格式符%5d)45 2 17 18 39 96 0 42 54 26 47 8322 33 46 47 16 5811 22 43 4 25 52 4 5
8、 6 7 8 9#defineM5#defineN6#includeintmain(){voidfun(inta[M][N]);inta[M][N]={{11,52,43,4,25,22},{22,33,46,58,16,47},{83,42,54,26,47,0},{4,5,6,7,8,9},{45,96,17,18,39,2}};int