标题：顶嵌杯
简介
顶嵌杯　
  “顶嵌杯”全国嵌入式系统c语言编程大赛全名：“顶嵌杯”全国嵌入式系统C语言编程大赛 
承办单位：北京顶嵌开源科技有限公司
主办单位：中国软件行业协会嵌入式系统分会和中国嵌入式系统产业联盟联合主办
比赛规则：在线竞赛（初赛、决赛）
比赛奖品设置：
特等奖（1名）：现金10000元；
一等奖（2名）：高性能笔记本电脑；
二等奖（5名）：数码相机；
三等奖（10名）：MP5播放器（3名）、手机（2名）、顶嵌嵌入式免费实训2周（5名）；
注：上述奖项除奖品之外还颁发中国软件行业协会嵌入式系统分会相应证书以及针对每位参赛选手均赠送价值500元的嵌入式课程的代金券。
比赛方式：排名制。
对于嵌入式系统的研发来说最为基础的技术无疑是软件编程。C语言是嵌入式系统软件编程采用的最多的计算机语言之一。为了普及和推广C语言，培养和选拔C语言编程人才，中国软件行业协会嵌入式系统分会和中国嵌入式系统产业联盟联合主办首届“顶嵌杯”全国嵌入式系统C语言编程大赛。大赛由北京顶嵌开源科技有限公司承办，联合国内专业媒体，共同提倡学习和使用嵌入式系统软件编程的技术基础——C语言。大赛通过参赛者自愿报名、申请相关题目、按时提交答题、专家和阅卷系统结合阅卷、向社会公布大赛结果方式来进行。大赛得到了业内人士和专家的关注和大力支持。
参赛院校入录名单
为前为止已经有数百家高校或单位代表参赛，他们分别如下：
贵州 铜仁职业技术学院（新校区）
江西师范大学
北华大学
华中师范大学
山东大学
电子科技大学
五邑大学
鲁东大学
安徽大学
北京北大方正软件技术学院
西安培华学院
石家庄铁道学院
中国科学院高能物理研究所
北京邮电大学
上海理工大学
西安邮电学院
青松科技
中山大学
北京理工大学
西安邮电学院信息与控制系
福建工程学院
大连东软信息学院
深圳市潮流网络技术有限公司
重庆科技学院
电信科学技术研究院
清华大学
上海大学
湘南学院
山东科技大学信息学院
华北电力大学
陕西理工学院
中国科学院数学与系统科学研究院
北京市精雕科技有限公司
中国科学技术大学
安徽工程科技学院
华中科技大学
清华大学深圳研究生院
中达电子
郑州轻工业学院
山东东营胜动集团
新大陆
深圳市金文通电子科技有限公司
航天恒星科技有限公司
西北工业大学
路通世纪（中国）科技有限公司
凯博迅捷科技（北京）有限公司
山东省滨州市滨州学院
兰州交通大学
桂林电子科技大学
西安交通大学
辽宁大连东软信息技术职业学院
南京航运学校
山东理工大学
炬力北方微电子公司
厦门大学
成都理工大学
长安大学
西南科技大学
华南理工大学
北京工商大学
上海俊泽
中国空间技术研究院
福建工程学院电子信息与电气工程系
中国传媒大学
辽宁工程技术大学
南方医科大学
辽宁大学信息学院
四川大学
湖南人文科技学院
大连理工大学
重庆大学
沈阳理工大学
上海海事大学
北京天路纵横交通科技有限公司
上海市医疗器械高等专科学校
西安邮电大学
浙江林学院
西安工业大学
哈尔滨工程大学
北京航空航天大学
中科院高能所
南京邮电大学
泰山医学院
大庆石油学院
山东科技大学
大连交通大学软件学院
南昌大学
普罗特电子设备有限公司
河北理工大学
南京航空航天大学
攀枝花学院
西南交通大学
河南农业大学
烟台大学
深圳盛达软件
东北大学秦皇岛分校
深圳摩森达自动化科技
江西农业大学
北京大学
中国科学技术大学苏州研究院
首都机场股份有限公司
成都信息工程学院
深圳超宇视通科技有限公司
东莞理工学院
河北科技大学
宁波市科技园区三合数码有限公司
中国石油大学
西安工业大学北方信息工程学院
中科大软件学院
东北林业大学
南京大学
昆明理工大学
湘潭大学
华中农业大学
伟易达公司
漳州师范学院
西安电子科技大学
福建师范大学
厦门大学信息科学与技术学院
东南大学
西安文理学院
厦门大学计算机科学系
待业中
常州海亿文化传播有限公司
中国海洋大学
北京无限立通有限公司
自由职业
安徽理工大学
南京金陵科技学院
江西农业大学软件学院
华南农业大学
武汉大学
沙市职业大学
三峡大学
山东省济南大学
黄河科技大学
中北大学
华东理工大学
苏州中磊研发中心
哈尔滨工业大学
江南所
同济大学
吉林医药学院
北京交通大学
河南理工大学
湖南大学电气与信息工程学院
建汉科技广州研发中心
诺基亚西门子通信技术有限公司
四川成都电子科技大学
浙江大学
金陵科技学院
辽宁大学
广州大学华软软件学院
湖南农业大学
西北大学
燕山大学
西南石油大学
湖北第二师范学院
四川大学计算机学院
海康威视
西安建筑科技大学
河池学院
厦门华厦职业学院
西北工业大
哈尔滨理工大学
北京科技大学
武汉科技学院
四川农业大学
四川电子科技大学
皖西学院
中国矿业大学（北京）
公安部第一研究所
北京电子科技职业学院
武夷学院
北航
中山芝川电子有限公司
长江大学
中国地质大学（武汉）
北京信息科技大学
烽火通信科技股份有限公司
中国计量学院
北京飞天诚信科技有限公司
厦门华夏职业学院
成都阿尔卡特通讯系统有限公司
辽宁装备制造职业技术学院
苏州瑞中电子
天津大学
苏州大学
山东信通电器有限公司
华北水利水电学院
九江学院
华南师范大学
湖北开特汽车电子电器系统有限公司
湖北中移鼎讯通讯有限公司
北京航空航天大学北海学院
青花瓷软件
广州大学
航天信息股份有限公司
丹东东方测控技术有限公司
拉阔游戏
中国农业大学
西安机电信息技术学院
南京农业大学
河海大学
桂林航天工业高等专科学校
东北农业大学
成都电子科技大学
洛阳理工学院
湖北工业大学
哈尔滨工业大学华德应用技术学院
大连理工大学软件学院
福州大学
西北农林科技大学
湖州师范学院
中南大学
中南大学软件学院
中国地质大学（北京）
南京理工大学
浙江理工大学
软通动力信息技术有限公司
北京师范大学
华东师范大学
湖南大学
中国华路集团有限公司
中科院计算技术研究所
北京理工大学珠海学院
杭州电子科技大学
中南林业科技大学
吉林大学
东北大学
长春理工大学
南京智达康
长沙理工大学
河北大学数学与计算机学院
河北大学
山东大学威海分校
天津商业大学
安徽工业大学
上海师范大学
徐州工程学院
肇庆学院
南开大学
四川大学锦江学院
广东工业大学
上海航天电子技术研究所
广州市华南理工大学
湖南师范大学
华南理工大学
大连职业技术学院
上海交通大学
阿里巴巴（中国）网络技术有限公司
中科院研究生院
复旦大学
北京大学软件与微电子学院
内蒙古大学
温州大学
东北师范大学软件学院
河海大学（常州校区）
上海第二工业大学
湖南长沙雅礼中学
台州学院
哈尔滨理工大学（西区）
浙江工业大学
浙江海洋学院
沈阳航空工业学院
鞍山师范学院
西南科技大学/广州弈鑫网络科技
江西农业大学软件学院
郑州大学
华中科技大学文华学院
东软
东北师范大学
怀化学院
中国科学院研究生院
湖北省三峡大学
河南省许昌学院
三峡大学科技学院
湖北省宜昌市三峡大学
河南大学
山东省烟台南山学院东海校区
电子科技大学中山学院
北京理工大学软件学院
诺基亚西门子网络
济南大学
德州学院
天津大学仁爱学院
建荣集成电路科技（珠海）有限公司
济南大学（西校区）
湖南工业大学
湖南省衡阳市八中
北京大学数学科学学院
南通大学
黑龙江大学
武汉软件工程职业学院
江西农大
南华大学
广东省中山大学
北方工业大学
重庆邮电大学
东莞理工学院
湖北宜昌市三峡大学
合肥工业大学
辽宁工程技术大学葫芦岛校区
东华理工大学
电子科技大学（成都）
辽宁工程技术大学（葫芦岛校区）
晋江市宏达电子
常州信息职业技术学院
浙江越秀外国语学院
温州大学物理与电子信息工程学院
中国科技大学
西南民族大学
深圳市麦驰智能技术有限公司
大连理工
湖南工业大学计算机与通信学院
徐州师范大学
长沙理工大学城南学院
华北计算技术研究所
三峡大学（湖北）
福建师范大学福清分校
大连民族学院
三峡大学计算机科学与技术系
浙江大学宁波理工学院
捷开通讯
山东省烟台大学
四川成都东软信息职业技术学院
华侨大学
360安全卫士
北京建筑工程学院
太原工业学院
无锡商业职业技术学院
徐州医学院
湖北宜昌三峡大学
三峡大学电气信息学院
武汉维格英科技有限公司
洛阳师院
中国矿业大学
长春理工大学光电信息学院
中南民族大学
天津南开大学
湖北三峡大学
暨南大学
创锐兴技术（深圳）有限公司
安徽师范大学
常州市超力电器有限公司
黄石理工学院计算机学院
重庆理工大学
西南大学
辽宁工程技术大学（葫）
贵州省贵阳学院
紫环电子有限公司
湖南文理学院计算机学院
中科院计算所
中国计量学院
湛江师范学院
中国矿业大学/Nationalchip
东北大学软件学院
湖南文理学院
湖南城市学院（新校区）
华南理工大学广州汽车学院
广西工学院
西北工业大学
国网电力科学研究院/南京南瑞集团公司
西藏民族学院
天津唐图科技有限公司
睿智教育
甘肃兰州理工大学
成都东软信息技术职业学院
杨泽原
正利科技公司
索贝数码科技
泰戈特工程技术有限公司
哈尔滨理工大学 荣成校区
上海亿人通信
哈尔滨理工大学（荣成校区）
北京理工大学/天地伟业数码科技有限公司
安徽师范大学 化学与材料科学学院
长沙学院
上海机床厂
初赛题目：
Problem A: 位操作Description
假设你工作在一个32位的机器上，你需要将某一个外设寄存器的第X位设置成0(最低位为第0位，最高位为第31位)，将第Y位开始的连续三位设置成110（从高位到低位的顺序），而其他位保持不变。对给定的寄存器值R，及X，Y，编程计算更改后的寄存器值R。
Input
仅一行，包括R,X,Y，以逗号","分隔，R为16进制表示的32位整数，X,Y在0-31之间且Y>=3，(Y-X)的绝对值>=3，保证两次置位不会重合
Output
更改后的寄存器值R（16进制输出）
Sample Input
12345678,0,3
Sample Output
1234567cProblem B: 破译密码Description
据说最早的密码来自于罗马的凯撒大帝。消息加密的办法是：对消息原文中的每个字母，分别用该字母之后的第5个字母替换（例如：消息原文中的每个字母A都分别替换成字母F）。而你要获得消息原文，也就是要将这个过程反过来。 
密码字母：A B C D E F G H I J K L M N O P Q R S T U V W X Y Z M 
原文字母：V W X Y Z A B C D E F G H I J K L M N O P Q R S T U 
注意：只有字母会发生替换，其他非字母的字符不变，并且消息原文的所有字母都是大写的。
Input
最多不超过100个数据集组成，每个数据集之间不会有空行，每个数据集由3部分组成: 
起始行：START 
密码消息：由1到200个字符组成一行，表示凯撒发出的一条消息.
结束行：END
在最后一个数据集之后，是另一行：ENDOFINPUT
Output
每个数据集对应一行，是凯撒的原始消息。
Sample Input
START
NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX
END
START
N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ
END
START
IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ
END
ENDOFINPUT
Sample Output
IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES
I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME
DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE小孩报数问题Description
有N个小孩围成一圈，给他们从1开始依次编号，现指定从第W个开始报数，报到第S个时，该小孩出列，然后从下一个小孩开始报数，仍是报到S个出列，如此重复下去，直到所有的小孩都出列（总人数不足S个时将循环报数），求小孩出列的顺序。
Input
第一行输入小孩的人数N（N<=64） 
接下来每行输入一个小孩的名字(人名不超过15个字符) 
最后一行输入W,S (W < N)，用逗号","间隔
Output
按人名输出小孩按顺序出列的顺序，每行输出一个人名
Sample Input
5
Xiaoming
Xiaohua
Xiaowang
Zhangsan
Lisi
2,3
Sample Output
Zhangsan
Xiaohua
Xiaoming
Xiaowang
Lisi时间日期格式转换Description
世界各地有多种格式来表示日期和时间。对于日期的常用格式，在中国常采用格式的是“年年年年/月月/日日”或写为英语缩略表示的”yyyy/mm/dd”，此次编程大赛的启动日期“2009/11/07”就是符合这种格式的一个日期，而北美所用的日期格式则为“月月/日日/年年年年”或”mm/dd/yyyy”，如将“2009/11/07”改成这种格式，对应的则是”11/07/2009”。对于时间的格式，则常有12小时制和24小时制的表示方法，24小时制用0-24来表示一天中的24小时，而12小时制只采用1-12表示小时，再加上am/pm来表示上午或下午，比如”17:30:00”是采用24小时制来表示时间，而对应的12小时制的表示方法是”05:30:00pm”。注意12:00:00pm表示中午12点，而12:00:00am表示凌晨12点。 
对于给定的采用”yyyy/mm/dd”加24小时制（用短横线”-”连接）来表示日期和时间的字符串，请编程实现将其转换成”mm/dd/yyyy”加12小时制格式的字符串。
Input
第一行为一个整数T（T<=10），代表总共需要转换的时间日期字符串的数目。 
接下来的总共T行，每行都是一个需要转换的时间日期字符串。
Output
分行输出转换之后的结果
Sample Input
2
2009/11/07-12:12:12
1970/01/01-00:01:01
Sample Output
11/07/2009-12:12:12pm
01/01/1970-12:01:01am
Hint
注意中午和凌晨时间的特殊表示字母旋转游戏Description
给定两个整数M，N，生成一个M*N的矩阵，矩阵中元素取值为A至Z的26个字母中的一个，A在左上角，其余各数按顺时针方向旋转前进，依次递增放置，当超过26时又从A开始填充。例如，当M=5，N=8时，矩阵中的内容如下：
A   B   C   D   E   F   G   H
V   W   X   Y   Z   A   B   I
U   J   K   L   M   N   C   J
T   I   H   G   F   E   D   K
S   R   Q   P   O   N   M   L
Input
M为行数，N为列数，其中M，N都为大于0的整数。
Output
分行输出相应的结果
Sample Input
4 9
Sample Output
A   B   C   D   E   F   G   H   I
V   W   X   Y   Z   A   B   C   J
U   J   I   H   G   F   E   D   K
T   S   R   Q   P   O   N   M   L