C语言程序大赛试题.doc_第1页
C语言程序大赛试题.doc_第2页
C语言程序大赛试题.doc_第3页
C语言程序大赛试题.doc_第4页
C语言程序大赛试题.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

姓名 学院班级 手机号码 学号A1描述 有一种特殊的日历法,它的一天和我们现在用的日历法的一天是一样长的。它每天有10个小时,每个小时有100分钟,每分钟有100秒。10天算一周,10周算一个月,10个月算一年。现在要你编写一个程序,将我们常用的日历法的日期转换成这种特殊的日历表示法。这种日历法的时、分、秒是从0开始计数的。日、月从1开始计数,年从0开始计数。秒数为整数。假设 0:0:0 1.1.2000 等同于特殊日历法的 0:0:0 1.1.0。 输入 第一行是一个正整数 N ,表明下面有 N 组输入。每组输入有一行,格式如下:hour:minute:second day.month.year表示常规的日期。日期总是合法的。2000 = year = 50000。 输出 每组输入要求输出一行。格式如下:mhour:mmin:msec mday.mmonth.myear 是输入日期的特殊日历表示方法。 样例输入 70:0:0 1.1.200010:10:10 1.3.20010:12:13 1.3.240023:59:59 31.12.20010:0:1 20.7.74780:20:20 21.7.747815:54:44 2.10.20749样例输出 0:0:0 1.1.04:23:72 26.5.00:8:48 58.2.1469:99:98 31.8.00:0:1 100.10.20000:14:12 1.1.20016:63:0 7.3.6848B1 描述 给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。 比如给定1 4 3 2 9 7 18 22,得到的答案是3,因为2是1的两倍,4是2个两倍,18是9的两倍。 关于输入 输入包括多组测试数据。每组数据包括一行,给出2到15个两两不同且小于100的正整数。每一行最后一个数是0,表示这一行的结束后,这个数不属于那2到15个给定的正整数。输入的最后一行只包括一个整数-1,这行表示输入数据的结束,不用进行处理。 关于输出 对每组输入数据,输出一行,给出有多少个数对满足其中一个数是另一个数的两倍 例子输入 1 4 3 2 9 7 18 22 02 4 8 10 07 5 11 13 1 3 0-1 例子输出 320A2描述 问题描述:宇航员在太空中迷失了方向,在他的起始位置现在建立一个虚拟xyz坐标系,称为绝对坐标系,宇航员正面的方向为x轴正方向,头顶方向为z轴正方向,则宇航员的初始状态如图所示:现对六个方向分别标号,x,y,z正方向分别为0,1,2,负方向分别为3,4,5;称它们为绝对方向。宇航员在宇宙中只沿着与绝对坐标系xyz轴平行的方向行走,但是他不知道自己当前绝对坐标和自己面向的绝对方向。任务描述:请根据宇航员对自己在相对方向上移动的描述确定宇航员最终的绝对坐标和面向的绝对方向。对在相对方向上移动的描述及意义如下:forward x 向前走x米。back x先转向后,再走x米。left x 先转向左,再走x米。right x 先转向右,再走x米。up x 先面向上,再走x米。down x 先面向下,再走x米。其中向上和向下如下图所示:输入 第一行一个正整数m,表示测试数据的组数。每组测试数据第一行是一个正整数n(1=n=10000)表示宇航员行走的次数,下面n行每行输入一次相对行走,格式如上所述,其中( 1 = x = 10000 为正整数)。 输出 对于每组输入数据输出一行,x y z p, 中间用空格隔开,x y z是宇航员的位置的绝对坐标,p是宇航员面向的绝对方向编号(0=p =5)。 样例输入 16left 10right 11up 12down 13forward 14back 15样例输出 23 -10 12 3B2描述 根据参数,画出矩形。关于输入 输入由多行组成,每行四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行,宽不少于5行);第三个参数是一个字符,表示用来画图的矩形符号;第四个参数为1或0,0代表空心,1代表实心。 当用户输入0时表示输入结束。 关于输出 输出画出的图形 例子输入 6 5 * 17 7 00 例子输出 * A3描述 数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根。如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。比如,对于24来说,把2和4相加得到6,由于6是一位数,因此6是24的数根。再比如39,把3和9加起来得到12,由于12不是一位数,因此还得把1和2加起来,最后得到3,这是一个一位数,因此3是39的数根。 输入 输入包括一些正整数(小于101000),每个一行。输入的最后一行是0,表示输入的结束,这一行不用处理。 输出 对每个正整数,输出它的数根。每个结果占据一行。 样例输入 24390样例输出 63B3 描述在N*N的迷宫内,“#”为墙,“.”为路,“s”为起点,“e”为终点,一共4个方向可以走。从左上角((0,0)“s”)位置处走到右下角((n-1,n-1)“e”)位置处,可以走通则输出YES,不可以走则输出NO。关于输入输入的第一行为一个整数m,表示迷宫的数量。其后每个迷宫数据的第一行为一个整数n(n16),表示迷宫的边长,接下来的n行每行n个字符,字符之间没有空格分隔。关于输出输出有m行,每行对应的迷宫能走,则输出YES,否则输出NO。例子输入17s.#.#.#.#.#.#.e例子输出YESA4描述 n 位的一个整数是循环数(cyclic)的条件是:当用一个 1 到 n 之间的整数去乘它时, 会得到一个将原来的数首尾相接循环移动若干数字再在某处断开而得到的数字。也就是说,如果把原来的数字和新的数字都首尾相接,他们得到的环是相同的。只是两个数的起始数字不一定相同。例如,数字 142857 是循环数,因为: 142857 *1 = 142857 142857 *2 = 285714 142857 *3 = 428571 142857 *4 = 571428 142857 *5 = 714285 142857 *6 = 857142 输入 写一个程序确定给定的数是否是循环数。输入包括多个长度为 2 位到 60 位的整数。(注意,先导的0也是合理的输入不应该被忽略,例如 01是 2 位数,1 是 1 位数。)输出 对于每一个输入的整数,输出一行表明它是否是循环数。样例输入 142857142856142858010588235294117647样例输出 142857 is cyclic142856 is not cyclic142858 is not cyclic01 is not cyclic0588235294117647 is cyclicB4 描述 一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1*1, 2*2, 3*3, 4*4, 5*5, 6*6。这些产品通常使用一个 6*6*h 的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。 输入 输入文件包括几行,每一行代表一个订单。每个订单里的一行包括六个整数,中间用空格隔开,分别为1*1至6*6这六种产品的数量。输入文件将以6个0组成的一行结尾。 输出 除了输入的最后一行6个0以外,输入文件里每一行对应着输出文件的一行,每一行输出一个整数代表对应的订单所需的最小包裹数。 样例输入 0 0 4 0 0 1 7 5 1 0 0 0 0 0 0 0 0 0 样例输出 2 1A5描述 给定两个正整数a和b。可以知道一定存在整数x,使得x = logab x + 1输出x 输入 第1行是测试数据的组数n,每组测试数据占2行,分别是a和b。每组测试数据之间有一个空行,每行数据不超过100个字符 输出 n行,每组测试数据有一行输出,也就是对应的x。输入数据保证x不大于20 样例输入 3100001000000000001100009999999999999999999999999999999999999999999999999999999999991样例输出 320B5 描述“相关月”是指哪些在一年中月份的第一天星期数相同的月份。例如,九月和十二月是相关的,因为九月一日和十二月一日的星期数总是相同的。两个月份相关,当且仅当两个月份第一天相差的天数能被7整除,也就是说,这两天相差为几个整星期。又如,二月和三月一般都是相关月,因为二月有28天,能被7整除,也恰好为4个星期。而在闰年,一月和二月的相关月与它们在平年的相关月是不同的,因为二月有29天,其后每个月份的第一天星期数都推后了一天。 关于输入输入的第一行为整数n(n200),其后n行,每行三个整数,依次为一个年份和两个月份,整数之间用一个空格分隔。关于输出输出有n行,对应于每个输入的年份和相应两个月份,如果这两个月份是相关的,则输出YES;否则,输出NO。例子输入51994 10 91935 12 11957 1 91917 9 121948 1 4例子输出NONONOYESYESA6描述 如上图,有3个方格,每个方格里面都有一个整数a1,a2,a3。已知0 = a1, a2, a3 = n,而且a1 + a2是2的倍数,a2 + a3是3的倍数, a1 + a2 + a3是5的倍数。你的任务是找到一组a1,a2,a3,使得a1 + a2 + a3最大。输入 输入的第一行是一个数t,表示测试数据的数目。接下来的t行,每行给出一个n (0 = n = 100)的值。 输出 对于每一个n的值,输出a1 + a2 + a3的最大值。 样例输入 203样例输出 05B6描述 N盏灯排成一排,从1到N依次编号。有N个人也同样编号。第一个人将灯全部熄灭;第2个人将对应2和2的倍数的灯打开;第3个人将对应着3和3的倍数的灯做反向操作(如果原来是开,则关掉它,否则就打开它);以后的人和3做同样的操作,即第i个人将对应着i和i的倍数的灯做反向操作。 输入 灯的总数N, 1=N=1000 输出 在第N个人操作后,顺序输出还亮着灯的编号。 样例输入 8样例输出 2 3 5 6 7 8A7 描述 有一个正方形的墙,由N*N个正方形的砖组成,其中一些砖是白色的,另外一些砖是黄色的。Bob是个画家,想把全部的砖都涂成黄色。但他的画笔不好使。当他用画笔涂画第(i, j)个位置的砖时, 位置(i-1, j)、 (i+1, j)、 (i, j-1)、 (i, j+1)上的砖都会改变颜色。请你帮助Bob计算出最少需要涂画多少块砖,才能使所有砖的颜色都变成黄色。输入 第一行是个整数t(1t 20),表示要测试的案例数。然后是t个案例。每个案例的首行是一个整数n (1n 15),表示墙的大小。接下来的n行表示墙的初始状态。每一行包含n个字符。第i行的第j个字符表示位于位置(i,j)上的砖的颜色。“w”表示白砖,“y”表示黄砖。 输出 每个案例输出一行。如果Bob能够将所有的砖都涂成黄色,则输出最少需要涂画的砖数,否则输出“inf”。 样例输入 2 3 yyy yyy yyy 5wwwww wwwww wwwww wwwww wwwww 样例输出 0 15B7描述 a的立方 = b的立方 + c的立方 + d的立方为完美立方等式。例如12的立方 = 6的立方 + 8的立方 + 10的立方 。编写一个程序,对任给的正整数N (N100),寻找所有的四元组(a, b, c, d),使得a的立方 = b的立方 + c的立方 + d的立方,其中a,b,c,d 大于 1, 小于等于N。 输入 正整数N (N100) 输出 每行输出一个完美立方,按照a的值,从小到大依次输出。当两个完美立方等式中a的值相同,则依次按照b、c、d进行非降升序排列输出,即b值小的先输出、然后c值小的先输出、然后d值小的先输出。 样例输入 24样例输出 Cube = 6, Triple = (3,4,5) Cube = 12, Triple = (6,8,10) Cube = 18, Triple = (2,12,16) Cube = 18, Triple = (9,12,15) Cube = 19, Triple = (3,10,18) Cube = 20, Triple = (7,14,17) Cube = 24, Triple = (12,16,20)A8 描述 有9个时钟,排成一个3*3的矩阵。现在需要用最少的移动,将9个时钟的指针都拨到12点的位置。共允许有9种不同的移动。如右表所示,每个移动会将若干个时钟的指针沿顺时针方向拨动90度。移动 影响的时钟1 ABDE2 ABC3 BCEF4 ADG5 BDEFH6 CFI7 DEGH8 GHI9 EFHI输入 从标准输入设备读入9个整数,表示各时钟指针的起始位置。1=12点、1=3点、2=6点、3=9点。 输出 输出一个最短的移动序列,使得9个时钟的指针都指向12点。按照移动的序号大小,输出结果。 样例输入 3 3 0 2 2 2 2 1 2 样例输出 4 5 8 9B8描述 判断一个由a-z这26个字符组成的字符串中哪个字符出现的次数最多 输入 第1行是测试数据的组数n,每组测试数据占1行,是一个由a-z这26个字符组成的字符串每组测试数据之间有一个空行,每行数据不超过1000个字符且非空 输出 n行,每行输出对应一个输入。一行输出包括出现次数最多的字符和该字符出现的次数,中间是一个空格。如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符样例输入 2abbcccadfadffasdf样例输出 c 3f 4A9描述 1 2 3 4 5 6 7 # 1 # | # | # | | # #-#-#-#-# 2 # # | # # # # # #-#-#-#-# 3 # | | # # # # # #-#-#-#-# 4 # # | | | | # # # (图 1) # = Wall | = No wall - = No wall图1是一个城堡的地形图。请你编写一个程序,计算城堡一共有多少房间,最大的房间有多大。城堡被分割成mn(m50,n50)个方块,每个方块可以有04面墙。输入 程序从标准输入设备读入数据。第一行是两个整数,分别是南北向、东西向的方块数。在接下来的输入行里,每个方块用一个数字(0p50)描述。用一个数字表示方块周围的墙,1表示西墙,2表示北墙,4表示东墙,8表示南墙。每个方块用代表其周围墙的数字之和表示。城堡的内墙被计算两次,方块(1,1)的南墙同时也是方块(2,1)的北墙。输入的数据保证城堡至少有两个房间。 输出 城堡的房间数、城堡中最大房间所包括的方块数。结果显示在标准输出设备上。样例输入 4 7 11 6 11 6 3 10 6 7 9 6 13 5 15 5 1 10 12 7 13 7 5 13 11 10 8 10 12 13 样例输出 59B9描述 写一个函数,使给定的一个矩阵数组转置,即行列互换。 比如输入 1 2 3 4 5 6 7 8 9 输出 1 4 7 2 5 8 3 6 9 关于输入 先输入一个正整数n代表矩阵式n行n列的 n的大小不会超过100 关于输出 输出转置之后的矩阵 例子输入 31 2 34 5 6 7 8 9 例子输出 1 4 7 2 5 83 6 9A10描述 已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵。比如,如下4 * 4的矩阵0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2的最大子矩阵是9 2-4 1-1 8这个子矩阵的大小是15。 输入 输入是一个N * N的矩阵。输入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论