中国海洋大学春上机试题高档题答案.docx

上传人:b****9 文档编号:25475096 上传时间:2023-06-09 格式:DOCX 页数:16 大小:19.22KB
下载 相关 举报
中国海洋大学春上机试题高档题答案.docx_第1页
第1页 / 共16页
中国海洋大学春上机试题高档题答案.docx_第2页
第2页 / 共16页
中国海洋大学春上机试题高档题答案.docx_第3页
第3页 / 共16页
中国海洋大学春上机试题高档题答案.docx_第4页
第4页 / 共16页
中国海洋大学春上机试题高档题答案.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

中国海洋大学春上机试题高档题答案.docx

《中国海洋大学春上机试题高档题答案.docx》由会员分享,可在线阅读,更多相关《中国海洋大学春上机试题高档题答案.docx(16页珍藏版)》请在冰豆网上搜索。

中国海洋大学春上机试题高档题答案.docx

中国海洋大学春上机试题高档题答案

高等

1

【问题描述】将整型参数x中每一位上为偶数的数依次取出,构成一个新数返回。

高位仍在高位,低位仍在低位。

【输入形式】从标准输入中输入一个长整形数

【输出形式】将生成的序列输出到标准输出中

【样例输入】x=124578902

【样例输出】y=24802

#include

voidmain()

{

longfun(long);

longx,y;

scanf("%ld",&x);

y=fun(x);

printf("%ld",y);

}

longfun(longx)

{

inti,num,wei;

longs=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;

}

returns;

}

2

【问题描述】

计算并返回满足表达式:

1+(1+2)+(1+2+3)+(1+2+3+4)+……+(1+2+3+……+n)<=m最大的n。

【输入形式】

从标准输入中输入一个长整形数m

【输出形式】

将生成的最大n输出到标准输出中

【样例输入】

m=10000

【样例输出】

n=38

#include

voidmain()

{

intm,n;

printf("m=");

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

#include

voidmain()

{

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(;j

{

for(i=2;i<=sqrt(n);i++)

{

if(n%i==0)break;

}

if(i>sqrt(n))

{

printf("%d",n);

j++;

}

}

}

4

【问题描述】字符串str中单词以空格作分隔,如果单词之间不止一个空格,则删除多余的空格,使单词之间只保留一个空格。

字符串开始的空格也只保留一个。

【输入形式】从标准输入中输入字符串

【输出形式】将生成的序列输出到标准输出中

【样例输入】It's  10:

10 o'clock , I am late. 

【样例输出】It's10:

10o'clock,Iamlate.  

#include

#include

#include

voidmain()

{

inti,n;

chars[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]=s[n+1];

i--;//因为可能有两个以上空格相连的情况,需要退位检测接下来还有没有空格

}

}

puts(s);

}

5

【问题描述】

有int型5×6二维数组,分别将每一行的最大值与本行的最后一个数据(第6-1列数据)对调,其余数据保持不变。

然后按每一行的最大值对二维数据各行降序排序并输出变换后的数组。

【输入形式】

从标准输入中输入一个5*6的二维数组

【输出形式】

将生成的二维数组输出到标准输出中

【样例输入】(输入的数据的范围【999,-999】)

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 

【样例输出】(输出时用格式符%5d)

45 2 17 18 39 96

 0 42 54 26 47 83

22 33 46 47 16 58

11 22 43 4 25 52

 4 5 6 7 8 9

#defineM5

#defineN6

#include

intmain()

{

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}};

intm,n;//m:

记录行;n:

记录列

fun(a);

for(m=0;m

{

for(n=0;n

printf("\n");

}

}

voidfun(inta[M][N])

{

intm,n,k,i,t;

for(m=0;m

{

k=0;//k:

记录第二下标

for(n=1;n

{

if(a[m][k]

t=a[m][k];

a[m][k]=a[m][N-1];

a[m][N-1]=t;

}

}

for(m=0;m

{

k=m;//k:

记录第一下标

for(n=m+1;n

{

if(a[k][N-1]

if(m!

=k)

{

for(i=0;i

{

t=a[k][i];

a[k][i]=a[m][i];

a[m][i]=t;

}//将第k行与第m(m=0,1,2,3,4)行交换;

}

}

}

}

6

【问题描述】在字符串s中,每两个字母之间加一个*,其余字符保持不变并输出字符串。

【输入形式】从标准输入中输入一个字符串

【输出形式】将生成的字符串序列输出到标准输出中

【样例输入】Ihad123_book.

【样例输出】Ih*a*d123_b*o*o*k.

#include

#include

voidmain()

{

chars[1000];

intl,i;

gets(s);

l=strlen(s);

for(i=0;i

{

if(((s[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')))

printf("%c*",s[i]);

elseprintf("%c",s[i]);

}

}

7

【问题描述】实现十进制长整型数x到二进制的转换。

输入一个十进制数,将其转换为二进制数以字符串形式存放于数组中并输出。

【输入形式】

从标准输入中输入一个长整型数

【输出形式】

将转换后的二进制数输出

【样例输入】

13

【样例输出】

1101

【样例说明】

考虑正数、负数和零的情况

//除2取余,倒序输出

#include

voidmain()

{

intx,num,n[100],i=0;

scanf("%d",&x);

if(x==0)n[0]=0;

if(x<0)

{

x=-x;

while(x!

=0)

{

num=x%2;

n[i]=num;

i++;

x=x/2;

}

i--;

n[i]=-n[i];//x<0时把最后一位转为负数即可(输出时的第一位)

}

if(x>0)

{

while(x!

=0)

{

num=x%2;

n[i]=num;

i++;

x=x/2;

}

i--;//因为上方的i++最终多加一位

}

for(;i>=0;i--)printf("%d",n[i]);

}

8

【问题描述】统计字符串str中不同字符的个数输出。

【输入形式】从标准输入中输入一个字符串

【输出形式】将生成的个数输出到标准输出中

【样例输入】Oneworld,Onedream!

【样例输出】13

【样例说明】统计包含标点符号和空格,大写和小写视为不同字符。

#include

#include

voidmain()

{

chars[100],key;//由s[0]开始一个个作为key,扫描其后的字符是否为key

intl,i,j,num;

gets(s);

l=strlen(s);

num=l;//num初始值为字符串长度,扫描到相同字符时才减

for(i=0;i

{

key=s[i];

if(s[i]!

=NULL)

{

for(j=i+1;j

{

if(s[j]==key)

{

num--;

s[j]=NULL;//若s[j]与之前字符相同,在总数中减去其后将其置为NULL,以防再次成为key

}

}

}

}

printf("%d",num);

}

9

【问题描述】输入一个正整数n,计算1-1/4+1/7-1/10+1/13-1/16+……的前n项之和,输出时保留3位小数。

【输入形式】从键盘输入一个正整数n。

【输入输出样例1】(下划线部分表示输入)

Entern:

3

sum=0.893

#include

voidmain()

{

intfm=-2,i,n;

doublesum=0;

printf("Entern:

");

scanf("%d",&n);

for(i=1;i<=n;i++)

{

fm=fm+3;

if(i%2!

=0)

{

sum=sum+1.0/fm;

}

else

{

sum=sum-1.0/fm;

}

}

printf("sum=%.3lf",sum);

}

10

【问题描述】输入2个正整数m和n(m≥1,n≤1000),输出m~n之间所有Fibonacci数的个数及值。要求定义并调用函数fib(k),它的功能是返回第k项Fibonacci数。例如,fib(7)的返回值是13。

【输入形式】从标准输入中输入一个范围mn(mn之间用空格分隔)

【输出形式】将生成的个数输出到标准输出中,并输出fibonacci数列(冒号后无空格)

【样例输入】15

【样例输出】5fib:

11235 

#include

voidmain()

{

intfib(int);

intm,n,num,i,j=0;//num为斐波那契数列的数,j用于计数

inta[100];

scanf("%d%d",&m,&n);

for(i=1;;i++)

{

num=fib(i);

if(num>=m&&num<=n)

{

a[j]=num;

j++;

}

if(num>n)break;

}

printf("%dfib:

",j);

for(i=0;i

}

intfib(intn)

{

if(n==1||n==2)return1;

elsereturnfib(n-2)+fib(n-1);

}

11

【问题描述】统计字符串str中单词的个数。

单词之间以空格,逗号,句号作分隔,数字也看做单词。

单词之间可能不止一个分隔符。

【输入形式】从标准输入中输入一组字符串 

【输出形式】将生成的个数输出到标准输出中

【样例输入】It's 10:

10 o'clock ,Iamlate.

【样例输出】6

#include

#include

11、在淡水资源短缺的情况下,水污染更给人类和其他生物造成了威胁。

绝大多数的水污染都是由人类的活动引起的。

voidmain()

10、日食:

当月球运动到太阳和地球中间,如果三者正好处在一条直线上时,月球就会挡住太阳射向地球的光,在地球上处于影子中的人,只能看到太阳的一部分或全部看不到,于是就发生了日食。

日食时,太阳被遮住的部分总是从西边开始的。

{

5、在咀嚼米饭过程中,米饭出现了甜味,说明了什么?

inti,l,flag=0,num=0;//flag显示是否为单词,初始置0

答:

当月球运行到地球和太阳的中间,如果月球挡住了太阳射向地球的光,便发生日食。

chars[100];

一、填空:

gets(s);

l=strlen(s);

13、以太阳为中心,包括围绕它转动的八大行星(包括围绕行星转动的卫星)、矮行星、小天体(包括小行星、流星、彗星等)组成的天体系统叫做太阳系。

for(i=0;i

{

if(s[i]==''||s[i]==','||s[i]=='.')flag=0;

20、在观星过程中,我们看到的天空中有一条闪亮的“银河”光带,实际是由许许多多的恒星组成的一个恒星集团,被人们称为银河系。

我们生活的地球在银河系。

elseif(flag!

=1)//flag!

=1表示上一个字符并不也是字母

{

二、问答:

flag=1;

num++;

7、食盐、白糖、碱面、味精的颗粒都是有规则几何外形的固体,人们把这样的固体物质叫做晶体。

自然界中的大部分固体物质都是晶体或由晶体组成。

}

}

4、如何借助大熊座找到北极星?

(P58)printf("%d",num);

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1