c语言积分赛

上传人:n**** 文档编号:88889705 上传时间:2019-05-12 格式:DOC 页数:51 大小:446.50KB
返回 下载 相关 举报
c语言积分赛_第1页
第1页 / 共51页
c语言积分赛_第2页
第2页 / 共51页
c语言积分赛_第3页
第3页 / 共51页
c语言积分赛_第4页
第4页 / 共51页
c语言积分赛_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《c语言积分赛》由会员分享,可在线阅读,更多相关《c语言积分赛(51页珍藏版)》请在金锄头文库上搜索。

1、C语言积分赛热身赛题目部分A:世界题目描述:“古往今来曰世,上下四方曰界”,世界就是全部时间与空间的总称。时至今日。世界已然分为两种,一种二进制的世界,一种非二进制的世界。作为一个软件人,我们将生活在这二重世界里,接受他的祝福,接受他的残酷,接受他的温暖,接受他的冷酷。01的世界不会像生活一样时不时地和你开一个玩笑。无论你贫富与否、美貌与否、健康与否、地位高低与否,对即为对,错即为错,是非分明。在这里,智慧与勤劳决定你的价值。“Welcome to this new world!”软件工程存在的终极意义是什么?你为什么会来到软件工程这个专业呢?“创造美好,建设世界”。欲建设世界,必先学会改造世

2、界,欲改造世界,必先学会认识世界。那么,让我们在开始这一切之前,先向世界问个好吧!时间限制:1000MS空间限制:10000K 输入:无。输出:输出以回车结尾的一行字:”Hello World!”(不包括引号)。注释:此题只有一个测点,满分50分。B:你很快就会感到疼题目描述:“你很快就会感到疼”公司最近正在加紧研发一款游戏O、O、前夜,当然,这款游戏完全是自主开发研制,和星战前夜一点关系也没有。现在,游戏的开发设计师正在设计导弹的伤害公式。他看了一下星战前夜的导弹伤害公式:导弹最终伤害值=导弹伤害*min (1,(目标信号半径/导弹爆炸半径)*e -1x(目标速度 - 导弹爆炸速度)2/(1

3、5002)。他摇了摇头,感到压力很大。但是很快,他就完成了他们的公式设计:导弹最终伤害值=导弹伤害*(VIP等级)现在设计师又去设计超电磁炮的伤害公式去了,但是他需要一些导弹伤害的测试数据。如果你能帮他,将会赠送1个月的VIP Level 1哦!时间限制:1000MS空间限制:10000K 输入:输入只有一行,分别为两个非负数,导弹伤害n和VIP等级m。(0m,n=1000)输出:输出O、O、前夜导弹最终伤害值,精确到个位数。样例输入1:3.4 5样例输出1:17样例输入2:4.6 3样例输出2:14注释:给大家出个谜语猜一伟人名:山东急电。-答案是鲁迅。本题6个测点,每个10分。以后的所有输

4、出的最后一行都要以回车结尾,以免评测时出现误判。C:那年飘零满路的凤凰花题目描述:那年七月,忽尔今夏。我们在漳校,相遇、相知、相识。在芙蓉湖旁边,我们是奇怪的一对。我们没有互相牵手,却共同抒写精美的代码;我们没有背靠背数着天上的星星,却在为一段异常争论不休;我们没有莫名的忧伤,也不曾以45度角仰望天空泪流满面,却因共同Topcoder的进阶而欢笑。那天,你喝了一些果粒橙,却像喝了酒一样呵呵地傻笑。把你送回宿舍,却发现你比我还早上QQ。我敲开你的窗口,“我喜欢你”的四个字,删了写,写了删。我不知道应该怎么做。这时,你突然打出了一行字:“J!mpwf!zpv/”我笑了笑,你,还是那么一如既往的喜欢

5、用加密之后的话和我保持神秘。时间限制:1000MS空间限制:10000K 输入:输入有两行。第一行为一个正整数n。第二行为你发来的一行字(字符串)。输出:输出字符串的每个字符的(ACSII码-n)的对应字符串,既你解密之后的字符串。样例输入1:1J!mpwf!zpv/样例输出1:I love you.样例输入2:1Zpv!bsf!b!hppe!nbo/样例输出2:You are a good man.注释:众里寻她千百度,蓦然回首,那人却在灯火阑珊处。祝有情人终成眷属(家属?)。D:让通天大道如火焰般充满热情题目描述:“小傻瓜,果粒橙也能喝醉。”“似醉非醉心不醉,千杯皆可如水流。心醉神醉人亦醉

6、,白水已然胜似酒。”“A+B等于几?”“等于C。”“.”时间限制:1000MS空间限制:10000K 输入:输入只有一行,分别为两个字母(az或者A-Z)输出:输出两个字母的和,Z的下一个字母视作A,该规则同样适用于小写字母。样例输入1:A B样例输出1:C样例输入2:F Y样例输出2:E样例输入3:z z样例输出3:z注释:朝着科学研究的道路上前进,不避讳对金钱的追求,同时沉醉于爱情,为未来的生活而工作。E:铜锣烧题目描述:有一天Doraemon去铜锣烧店买铜锣烧的时候,发现店铺中有n种不同款式的铜锣烧,这时候,它想到了一个问题,如果每种款式的都各买一个,再分给它认识的n个人每人1个,总共有

7、几种情况呢?由于Doraemon只认识0到9之间的数字,再加上它的数学不好,所以它想请你帮它算算总共有几种情况,你只需告诉它答案的首位数字就可以了。时间限制:1000MS空间限制:10000K 输入:输入只有一个数字n,代表题述中的n(1=n=M,N=0)输出:M+N。样例输入1:1 2样例输出1:3样例输入2:12345678801234567 11111111111111111样例输出2:23456789912345678注释:Thats a big problem.G:浩劫观察者题目描述:让秘密成为一个家喻户晓的笑话,也是一个不错的保密方法。如果我说我看到了大船,会不会被人说成电影看太多

8、了呢?编写一个程序,计算距离2012年12月21日还有多少天。“世界走到尽头,还有一些守候”时间限制:1000MS空间限制:10000K 输入:输入为一个日期,年月日用“-”分离。这个日期不会比0000年1月1日更早,也不会比2012年12月21日更晚。输出:输出一个数字N,表示距离2012年12月21日还有N天。样例输入1:2012-12-21样例输出1:0注释:我们手牵手,一起走,直到世界的尽头。热身赛解题报告A题:#includeint main() printf(Hello World!n); return 0;这道题是非常入门的级别,唯一要注意的是,我们的评测机在评测的时候main(

9、)函数必须定义成int main(),这也是C语言的新标准。在main函数结束之前,必须加return 0;这样写无论是C98标准,还是C99标准都是可以接受的。有的同学忘记加感叹号。B题:#includeint main() double n,m; scanf(%lf%lf,&n,&m); printf(%.0lfn,n*m); return 0;这也是一道入门题,特别要注意的是四舍五入的问题。有的同学直接输出(int)m*n,这样的强制转换是直接去除小数位,不进行四舍五入的操作。C题:数组!#include#includeint main() char s100; int i,n; sca

10、nf(%dn,&n); gets(s); for (i=0;istrlen(s);i+) printf(%c,si-n); printf(n); return 0;此题仍然是一道简单题,gets()函数用来读取一整行的可以包括空格的字符串。D题:#includechar A,B;int main() scanf(%c %c,&A,&B); if (A=A&A=a&A=z) printf(%cn,(A+B-194)%26+98); return 0;这道题主要考察大家对ASCII码的熟悉程度,其实只要记住几个常用的就可以了,A是65,a是97,0是48。E题:#include#include#i

11、ncludeint main()int n,i;double sum=0;scanf(%d,&n);for(i=1;i=n;i+)sum += log10(double)i);n = (int)floor(pow(10.0,fmod(sum,1.0)+1e-10);printf(%dn,n);return 0;这题最容易想到的是高精度算法,但是其实还有一种更为简单易行的方法,先对n!取log10,累乘的形式变成了累加的形式,最后求得的和设为sum,那么题目转变为求10sum(表示10的sum次方)的首位数字,其实如果我们把sum分成整数t 和小数部分s,那么10sum = 10t * 10s,

12、而判断首位数字只需对10s取整即可,这里用到了几个数学函数fmod与floor在C语言书本后都有的,大家看看吧。其实从这道题开始,题目就变得比较难了。因为积分赛既要照顾初学者,又要保证有基础的同学可以更公平的竞争,前四题初学者完全可以做出来,后两题(包括附加题),则需要些简单的算法基础。这道题出的本意就是用数学方法来解决问题。而且很多同学好高骛远,挑难的题目去做。EF题和前面的不同,一个测点错误就意味着该题为0分。我在评测的时候,看到很多同学EF两题只错了1、2个测点,感到十分遗憾。最后这些同学的分数反而没有做ABCD四道题的同学多。正式比赛的题目数量会减少,题目构成是前三题很简单且按测点给分

13、,后两题较难,并且严格要求通过所有测点才回取得满分。F题:这道题题目叫简单加法,其实是高精度加法。高精度加法的原理是用数组存储每一位数,来处理大数字的加法运算。同理还有高精度减法、乘法和除法。网上有较为详细的资料,这里不再赘述。#include#includechar s1100,s2100;int n1100,n2100;int max(int a,int b)if (ab) return a;return b;int main() int i,l1,l2,l,JinWei; scanf(%s %s,s1,s2); l1=strlen(s1); l2=strlen(s2); l=max(l1,l2); /初始化数组,使其值为0; for(i=0;i100;i+)n1i=0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号