您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 自动化系新生C语言大赛样题
自动化系新生C语言大赛样题自动化系新生C语言大赛样题这份样题部分取自上届新生C语言大赛,仅作参考。出这份样题的目的只是让大家大致了解新生C语言大赛的答题模式。本次大赛题目的难度和范围请以下学期开学后发放的FAQ为准。这里给出的上届大赛的第2题,第3题和第4题。上届的题目是3人一组,在两个星期内完成,共5道题目。其中前4题要求由“.in”文件输入,“.out”文件输出。第5题为开放题,建议选手采用图形界面。另外,和上届一样,本届最后也可能会有一道开放题让大家自由发挥,建议假期有时间的同学可以适当地看一些C++和图形界面方面的书籍。本赛题的最终解释权归自动化系学生科协学习培训组。有疑问的同学可以联系大赛专用信箱cgame2005@gmail.com如果同学们在假期的自学中遇到什么问题,也欢迎通过上面的信箱和我们联系2.序言页码有一类书的序言是以罗马数字标页码的。传统罗马数字用单个字母表示特定的数值,以下是标准数字表:I=1V=5X=10L=50C=100D=500M=1000最多3个可以表示为10n的数字(I,X,C,M)可以连续放在一起,表示它们的和:III=3CCC=300可表示为5x10n的字符(V,L,D)从不连续出现。除了下一个规则,一般来说,字符以递减的顺序接连出现:CCLXVIII=100+100+50+10+5+1+1+1=268有时,一个可表示为10^n的数出现在一个比它大的数前(I在V或X前面,X在L或C前面,等等)。在这种情况下,数值等于后面的那个数减去前面的那个数:IV=4IX=9XL=40像XD,IC,和XM这样的表达是非法的,因为前面的数比后面的数小太多。对于XD(490的错误表达),可以写成CDXC;对于IC(99的错误表达),可以写成XCIX;对于XM(990的错误表达),可以写成CMXC。给定N(1=N3,500),序言的页码数,请统计在第1页到第N也中,有几个I出现,几个V出现,等等(从小到大的顺序)。不要输出并没有出现过的字符。比如N=5,那么页码1自动化系新生C语言大赛样题数为:I,II,III,IV,V.总共有7个I出现,2个V出现。INPUTFORMAT:一个整数N。SAMPLEINPUT:5OUTPUTFORMAT:每行一个字符和一个数字k,表示这个字符出现了k次。字符必须按数字表中的递增顺序输出。(下例中IV,因此I在前)SAMPLEOUTPUT:I7V23.分数化小数写一个程序,输入一个形如N/D的分数(N是分子,是分母),输出它的小数形式。如果小数有循环节的话,把循环节放在一对圆括号中。例如:1/3=.33333333写成0.(3)41/333=0.123123123...写成0.(123),用xxx.0表示整数。典型的转化例子:1/3=0.(3)22/5=4.41/7=0.(142857)2/2=1.03/8=0.37545/56=0.803(571428)INPUTFORMAT:单独的一行包括被空格分开的N和D,1=N,D=100000。SAMPLEINPUT:4556OUTPUTFORMAT小数的表示方法上面说的很明白了,如果输出的长度超过76个字符,每行输出76个。SAMPLEOUTPUT0.803(571428)4.跳棋的挑战检查一个如下的6x6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行,每列,每条对角线(包括两条主对角线的所有对角线)上都至多有一个棋子。列号123456|-----------|1||O||||||-----------|2||||O||||-----------|3||||||O||-----------|4|O|||||||-----------|5|||O|||||-----------|2自动化系新生C语言大赛样题6|||||O|||-----------|上面的布局可以用序列246135来描述,第i个数字表示在第i行的相应位置有一个棋子,如下:行号123456列号246135这只是跳棋放置的一个解。请编一个程序找出所有跳棋放置的解。并把它们以上面的序列方法输出。解按列号的字典顺序排列。请输出前3个解。最后一行是解的总个数。特别注意:对于更大的N(棋盘大小NxN)你的程序应当改进得更有效。不要事先计算出所有解然后只输出,这是作弊。INPUTFORMAT一个数字N(6=N=13)表示棋盘是NxN大小的。SAMPLEINPUT6OUTPUTFORMAT前三行为前三个解,每个解的两个数字之间用一个空格隔开。第四行只有一个数字,表示解的总数。SAMPLEOUTPUT24613536251441526343
本文标题:自动化系新生C语言大赛样题
链接地址:https://www.777doc.com/doc-20478 .html