2012国信蓝点杯_软件程序设计大赛真题课件
百度之星Astar2012程序设计大赛初赛试题及参考答案
百度之星Astar2012程序设计大赛初赛试题(第一场)————及B题答案比赛说明百度之星初赛:2012年6月2日、6月3日10:00Am~12:00Pm本次大赛的初赛的初赛采取在线答题、编译,离线判题的形式,选手报名后,可以在6月2日、6月3日任选一天参加比赛,也可选择两场都参加。
针对每题,交题后,系统将给出程序编译是否正确的结果,但不会给出程序是否通过全部测试数据的评价;当场比赛结束后,所有选手的针对每题所写的程序将被离线评判,每题根据程序通过测试数据的数目计算得分。
每场初赛根据单场所有题目总分计算成绩,选出当场成绩在前400名的选手进入复赛(第一场已经进入复赛的选手参加第二场比赛如果再次晋级,将被不在第二场参与排名)。
2012年6月2日,2012百度之星Astar2012程序设计大赛初赛打开大幕。
这里提供了初赛第一场的题目,供有未进初赛和其它有兴趣的朋友研究。
初赛第一场共4题。
分别是度度熊就是要第一个出场、小小度刷礼品、集合的交与并、轮子上的度度熊。
目录比赛说明······················· 1·A:度度熊就是要第一个出场·············· 2·B:小小度刷礼品··················· 5·C:集合的交与并····················6·D:轮子上的度度熊···················6·A:度度熊就是要第一个出场题目描述Baidu年会安排了一场时装秀节目。
第二届“国信蓝点”软件设计大赛_C语言模拟题(附程序题答案)
第二届“国信蓝点” C语言软件设计以下是简答题:1、代码填空形如:“abccba”,“abcba”的串称为回文串,下列代码判断一个串是否为回文串。
请补充空白的部分。
char buf[] = "abcde11edcba";int x = 1;for(int i=0; i<strlen(buf)/2; i++)if(___________________){x = 0;break;}printf("%s\n", x ? "是":"否");(3分)2、代码填空下列代码把一个二进制的串转换为整数。
请填写缺少的语句;char* p = "1010110001100";int n = 0;for(int i=0;i<strlen(p); i++){n = __________________;}printf("%d\n", n);(4分)3、代码填空假设a,b,c是3个互不相等的整数。
下列代码取出它们中居中的数值,记录在m中。
其中的swap()函数可以交换两个变量的值。
请完善代码。
if(a>b) swap(&a, &b);if(b>c) swap(&b, &c);______________________;int m = b;(4分)4、代码填空下面函数的目的是求出某个日期是该年度的第几天。
试完善之。
如果传入:year=1980,month=1, day=1则返回 1如果传入:year=1980,month=2, day=1则返回32int getDayOfY ear(int year, int month, int day){int days _____________________;int flag =(year%4==0 && year%100!=0) || year%400 == 0 ? 1 : 0;int sum = day ;for(int i=0;i<month;i++) {sum += days[flag][i];}return sum;}(8分)5、代码填空计算3个A,2个B可以组成多少种排列的问题(如:AAABB, AABBA)是《组合数学》的研究领域。
2011国信蓝点杯软件大赛模拟题java本科组答案
2011"国信蓝点杯"软件大赛模拟题java本科组(答案)2011 模拟 java 本科注意:本套模拟题主要模拟命题形式与考核范围。
真实竞赛题的数量、难度可能与此套模拟题有差异。
说明:本试卷包含两种题型:“代码填空”与“程序设计”。
填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。
所填写的代码不多于一条语句(即不能出现分号)。
编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。
注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
1. 代码填空(满分2分)在A B C D E F 六人中随机抽取3人中奖,要求中奖人不能重复。
请完善以下代码:public class MyTest{public static void main(String[] args){Vector a = new Vector();for(char i='A'; i<='F'; i++) a.add("" + i);for(int k=0; k<3; k++){int d=____(int)(Math.random()*(6-k));_______________;System.out.println(a.remove(d));}}}2. 代码填空(满分3分)不同进制的数值间的转换是软件开发中很可能会遇到的常规问题。
下面的代码演示了如何把键盘输入的3进制数字转换为十进制。
试完善之。
BufferedReader br = new BufferedReader(newInputStreamReader(System.in));String s = br.readLine();int n = 0;for(int i=0; i<s.length(); i++){char c = s.charAt(i);if(c<'0' || c > '2') throw newRuntimeException("Format error");n = ____ n+(c-48)*(int)Math.pow(3,s.length()-i-1)__________;}System.out.println(n);3. 代码填空(满分4分)有如下程序,完成的功能为:找出数组中的最大元素。
十二届省赛1蓝桥杯_单片机_程序设计
第十二届蓝桥杯单片机设计与开发项目省赛第二部分程序设计试题(70分)1、基本要求1.1使用大赛组委会提供的国信长天单片机竞赛实训平台,完成本试题的程序设计与调试。
1.2选手在程序设计与调试过程中,可参考组委会提供的“资源数据包”。
1.3请注意:程序编写、调试完成后选手应通过考试系统提交完整、可编译的Keil工程文件压缩包。
选手提交的工程文件应是最终版本,要求Keil工程文件以准考证号(7位数字)命名,工程文件夹内应包含以准考证号命名的hex文件,该hex文件是成绩评审的依据。
不符合以上文件提交要求和命名要求的作品将被评为零分或者被酌情扣分。
举例说明:选手准考证号为1234567,hex文件应命名为:1234567.hex。
1.4请勿上传与作品工程文件无关的其它文件。
2、竞赛板配置要求2.1将IAP15F2K61S2单片机内部振荡器频率设定为12MHz。
2.2键盘工作模式跳线J5配置为KBD键盘模式。
2.3扩展方式跳线J13配置为IO模式。
2.4请注意:选手需严格按照以上要求配置竞赛板,编写和调试程序,不符合以上配置要求的作品将被评为零分或者被酌情扣分。
3、硬件框图数码管显示单元DS18B20IAP15F2K61S2单片机按键输入DA输出LED指示灯图1 系统硬件框图4、功能描述4.1功能概述1)通过获取DS18B20温度传感器的温度数据,完成温度测量功能。
2)通过PCF8591 AD/DA芯片完成DAC输出功能。
3)通过数码管完成题目要求的数据显示功能。
4)通过按键完成题目要求的显示界面切换和设置功能。
5)通过LED指示灯完成题目要求的指示功能。
4.2性能要求1)温度数据刷新时间:≤1秒。
2)DAC输出电压刷新时间:≤0.5秒。
3)按键动作响应时间:≤0.2秒。
4.3显示功能1)温度显示界面温度数据界面如图2所示,显示内容包括标识符C和温度数据,温度数据保留小数点后2位有效数字,单位为摄氏度。
图2 温度显示界面2)参数设置界面参数设置界面如图3所示,显示内容包括标识符P和温度参数,温度参数为整数,单位为摄氏度。
2012 itat 第七届全国信息技术应用水平大赛预赛试真题及答案 JAVA 程序设计
【分 数】1分
【选 项】
A、-cp
B、-g
C、-classpath
D、-verbose
[3]、在Java中,以下标识符不合法的是( )。
【答 案】B
【分 数】1分
【选 项】
A、$user
B、Point&Line
C、You_me
D、_endline
C、static
D、protected
[11]、下列程序段执行后输出的结果是( )。
StringBuffer buf=new StringBuffer("China2008");
buf.insert(5,"@");
System.out.println(buf.toString());
[4]、以下不是Java关键字的是( )。
【答 案】C
【分 数】1分
【选 项】
A、if
B、class
C、then
D、enum
[5]、Frame类的默认布局管理器是( )。
【答 案】C
【分 数】1分
【选 项】
A、GridLayout
B、CardLayout
C、BorderLayout
D、FlowLayout
[6]、阅读下列代码,正确的说法是( )。
public class Person {
static int arr[] = new int[10];
public static void main(String args[]) {
System.out.println(arr[1]);
国信蓝桥杯2012预赛_c++_高职
2012年预赛c/c++ 高职考生须知:考试时间为4小时。
参赛选手切勿修改机器自动生成的【考生文件夹】的名称或删除任何自动生成的文件或目录,否则会干扰考试系统正确采集您的解答。
参赛选手切勿在提交的代码中书写“姓名”、“考号”,“院校名”等身份信息或其它与竞赛题目无关的内容,否则成绩无效。
试题包含三种类型:“结果填空”、“代码填空”与“程序设计”,总计100分。
结果填空:2+3+5+6 = 16分代码填空:8+6+10 = 24 分程序设计:15+17+28 = 60分结果填空要求参赛选手根据题目描述直接填写结果。
求解方式不限。
不要求源代码。
把答案存入【考生文件夹】下对应题号的“解答.txt”中即可。
代码填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。
所填写的代码不超过一条语句(即中间不能出现分号)。
把填空的答案(仅填空处的答案,不包括题面已存在的代码)存入【考生文件夹】下对应题号的“解答.txt”中即可。
编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。
考生的程序只有能运行出正确结果的时候才有机会得分。
注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
对每个编程题目,要求考生把所有函数写在一个文件中。
调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可。
相关的工程文件不要拷入。
对于编程题目,要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库,但不能使用MFC或A TL等非ANSI c++标准的类库。
例如,不能使用CString类型(属于MFC类库)。
结果填空(满分2分)题目在【考生文件夹】下对应题号的“题目.rar”中,请先解压该文件。
解压密码以考场公布为准。
把答案存入【考生文件夹】下对应题号的“解答.txt”中即可。
2012年上半年软件设计师考试真题(上午)
2012 年上半年软件设计师考试真题(上午)位于 CPU 与主存之间的高速缓冲存储器 Cache 用于存放部分主存数据的拷贝,主存地址与Cache 地址之间的转换工作由 (1) 完成。
(1)A.硬件 B.软件 C.用户 D.程序员内存单元按字节编址,地址 0000A000H~0000BFFFH 共有 (2) 个存储单元。
(2)A.8192K B.1024K C.13K D.8K相联存储器按 (3) 访问。
(3)A.地址 B.先入后出的方式C.内容 D.先入先出的方式若 CPU 要执行的指令为:MOV R1,#45(即将数值 45 传送到寄存器 R1 中),则该指令中采用的寻址方式为 (4) 。
(4)A.直接寻址和立即寻址B.寄存器寻址和立即寻址C.相对寻址和直接寻址D.寄存器间接寻址和直接寻址一条指令的执行过程可以分解为取指、分析和执行三步,在取指时间 t 取指=3△t、分析时间t 分析=2△t、执行时间 t 执行=4△t 的情况下,若按串行方式执行,则 10 条指令全部执行完需要(5) △t;若按流水线的方式执行,则 10 条指令全部执行完需要(6) △t。
(5)A.40 B.70 C.90 D.100(6)A.20 B.30 C.40 D.45甲和乙要进行通信,甲对发送的消息附加了数字签名,乙收到该消息后利用 (7) 验证该消息的真实性。
(7)A.甲的公钥 B.甲的私钥 C.乙的公钥 D.乙的私钥在 Windows 系统中,默认权限最低的用户组是 (8) 。
(8)A.Everyone B.administrators C.power users D.usersIIS6.0 支持的身份验证安全机制有 4 种验证方法,其中安全级别最高的验证方法是 (9) 。
(9)A.匿名身份验证B.集成 Windows 身份验证C.基本身份验证D.摘要式身份验证软件著作权的客体不包括 (10) 。
(10)A.源程序 B.目标程序 C.软件文档 D.软件开发思想中国企业 M 与美国公司 L 进行技术合作,合同约定 M 使用一项在有效期内的美国专利,但该项美国专利未在中国和其他国家提出申请。
2012年软件大赛选拔试卷2C语言
while(p!=h) { prinf(“%d”,p->data); p=p->next; } }
填写结果题(每题 15 分,共 30 分)提示:可通过编写程序运行获得 结果 4. 如有一个正整数 n,其真因素之和等于 n,则 n 称为完美数。 如:完美数 28=1+2+4输入一个 0~2╳109之间的任意整数,用大写格式输出该数。如: 输入:13002 输出:壹万叁仟零貮 输入:13200 输出:壹万叁仟貮佰 输入:13015 输出:壹万叁仟零壹拾伍 输入:130001500 输出:壹亿叁仟万壹仟伍佰 试编写一个程序,实现上述功能。 提示:数字的大写汉字有, 壹、貮、叁、肆、伍、陆、柒、捌、玖、拾、零、佰、仟、万、亿
2012 年参加全国软件大赛第二次选拔试卷
南通职业大学电子信息工程学院 2012.2 填写代码题(每空 2 分,共 30 分) 1. str 是一个由数字和字母字符组成的字符串,由变量 num 传入字符串 长度。函数 fun(),该函数的功能是:把字符串 str 中的数字字符转换 成数字并存放到整型数组 bb 中,函数返回数组 bb 的长度。 例如:str=“Bcd123e456hui890”,结果为:123456890。 该程序读输入两个字符串, 求两个字符串中数字串所构成的整数之和。 例如:两个串,str1=”adf3dgf4dgs6”, str2=”sdgfdf51df9”, 计算结果为 864(即 346 与 519 之和) 源程序: #include<stdio.h> #define N 80 int bb[N]; int fun(char s[],int bb[],int num) { int i,k=0; for(i=0;i<num;i++) { if(【1】) { bb[k]=【2】; k++; } } return 【3】; } main() { char str[N]; int num=0,n,i; long a=0,b=0; printf("输入第一个字符串:\n"); gets(str); while(str[num]) num++; n=fun(str,bb,num); for(i=0;i<n;i++) a=【4】;
2012程序设计竞赛基础实训31
2012年程序设计竞赛基础实训3118 统计试统计含有数字7且不能被7整除的m位整数的个数s1,并指出这s1个数中不含有数字4的整数的个数s2。
输入m, 输出s1,s2。
m=5, 输出:m=6, 输出:(1) 设计要点首先通过乘m-1个10计算m位数的起点b=10^(m-1),为枚举提供范围t(b —10*b-1)。
为了检测m位数t含有多少个数字7,每个m位整数t赋给d(以保持t不变),然后通过m次求余先后分离出t的m个数字c,if(c==7) f++, 统计整数t中数字7的个数f。
同时统计数字4的个数g。
如果f>0,说明整数t中含有数字7。
如果g=0,说明整数t中不含数字4。
对每一个m位整数,据f>0 && t%7>0, s1作相应统计。
据f>0 && t%7>0 && g==0, s2作相应统计。
(2)程序设计// 统计含数字7且不能被7整除的m位整数的个数s1,其中不含数字4的个数s2#include <stdio.h>void main(){ int c,f,g,i,j,m;long b,d,s1,s2,t;printf(" 请输入位数m (2<=m<=9): "); scanf("%d",&m);b=1; s1=0;s2=0;for(i=2;i<=m;i++) b=b*10; // 计算m位数的起点for(t=b;t<=10*b-1;t++) // 枚举每一个m位数{ d=t;f=0;g=0;for(j=1;j<=m;j++){ c=d%10; d=d/10;if(c==7) f++; // 统计数字7的个数if(c==4) g++; // 统计数字4的个数}if(f>0 && t%7>0) s1++; // 统计含数字7且不能被7整除数的个数if(f>0 && t%7>0 && g==0) s2++; // 统计其中不含数字4的个数 }printf(" s1=%ld ,s2=%ld \n",s1,s2);}(3)程序运行示例请输入位数m (2<=k<=9): 5s1=32152 ,s2=20412请输入位数m (2<=k<=9): 6s1=366522 ,s2=208300变通1:试统计含有数字7且能被7整除的没有重复数字的m位整数的个数s1,并指出其中最大的一个数。
国信蓝点杯程序设计大赛C语言决赛题
1.在一个a.txt文件中,放入一下字符串:a 34aa 36aaa 28ab 17aab 12bc 13bbc 25cd 20ccd 18要求输入一个字符串,输出所有可以用以上字符串组合而成的组合形式,并在其后输出其数字相加之和,如果没有,则不输出。
(41分)例如输入:aaabc输出:a aa bc 83aa a bc 83aaa bc 41a a a bc 1152.任意给一个四位数(各位数不完全相同),四个数组成一个最大数和一个最小数,他们的差又能组成一个最大数和一个最小数,--------直到某一步得到的差将会出现循环重复。
写一个程序统计所有满足以上条件的四位数。
(21分)例如:3100 ―0013 = 30878730 ―0378 = 83528532 ―2358 = 61747641 ―1467 = 61743.在b.txt中有一些用户的相关信息,请用程序按地区将用户分类输入到文件c.txt中。
(15分)b.txtc.txt王小明北京北京刘静上海王小明唐胜北京唐胜朱春波北京朱春波王晶长沙李龙龙上海长沙何子轩长沙王晶何子轩上海刘静李龙龙4.验证18位证件号:输入18位证件号,将奇位数的值相加的和求的平均数X,偶位数先与3相乘得到的个位数的和的平均数y。
如果(X+Y)是10的倍数,则证件号正确,否则则错误。
请编写程序验证证件号是否正确。
(12分)列入输入:431023198919230939输出:正确分析:奇位数:3 0 3 9 9 9 3 9 9偶位数:3 0 2 1 8 1 2 1 4X:(3+0+3+9+9+9+3+9+9)/9 = 6Y: 3X3 = 90X3 = 02X3 = 61X3 = 38X3 = 241X3 = 32X3 = 61X3 = 34X3 = 12(9+0+6+3+4+3+6+3+2)/9 = 4X+Y = 6+4 = 106.设计一个程序输入一个时间,显示其毫秒数:(2分)例如输入:13:20说明:由于以上题目都是凭回忆写的,除了第一道41分的题记得非常清楚外,剩下的题都是与上次决赛题型类似的题,而并非原题,可能会有错误,如发现,请立马通知侯某修改,侯某将万分感激。
蓝桥杯2012 竞赛真题
1. 微生物增殖假设有两种微生物X 和YX出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。
一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。
现在已知有新出生的X=10, Y=89,求60分钟后Y的数目。
如果X=10,Y=90 呢?本题的要求就是写出这两种初始条件下,60分钟后Y的数目。
题目的结果令你震惊吗?这不是简单的数字游戏!真实的生物圈有着同样脆弱的性质!也许因为你消灭的那只Y 就是最终导致Y 种群灭绝的最后一根稻草!请忍住悲伤,把答案写在“解答.txt”中,不要写在这里!2. 古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把ABCDE 所代表的数字写出来。
答案写在“解答.txt”中,不要写在这里!3. 比酒量有一群海盗(不多于20人),在船上比拼酒量。
过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。
再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。
当第4瓶酒平分喝下后,大家都倒下了。
等船长醒来,发现海盗船搁浅了。
他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。
如果有多个可能的答案,请列出所有答案,每个答案占一行。
格式是:人数,人数,...例如,有一种可能是:20,5,4,2,0答案写在“解答.txt”中,不要写在这里!4. 奇怪的比赛某电视台举办了低碳生活大奖赛。
题目的计分规则相当奇怪:每位选手需要回答10个问题(其编号为1到10),越后面越有难度。
2012年蓝桥杯全国软件设计大赛-试题及参考答案
2012年蓝桥杯全国软件设计大赛-C语言校内选拔赛参考答案一、代码填空题(满分50分)1. strlen(str)-1;str[i]=str[j]2.a+b>c&&a+c>b&&b+c>a3.x1或x1!=0或x1>0;x1/2-24.num/100%10==3或num%1000/100==3;!num==0或者num!=05.j<=2或j<3;b[j][i]=a[i][j];i<=2或i<36.&a[i];i%4==0;printf(“\n”)7.x[i-1]+x[i-2];fabs((double)(x[i-1]-x[i]))或者fabs(x[i-1]-x[i])或者 abs(x[i-1]-x[i]);i+28.%;/;j=i,j>=1,j—或者 j=i,j>0;j--9.j=4;a[0]=k10.buf[i]!=buf[strlen(buf)-1-i]二、程序设计(满分50分)1题参考答案:#include "stdafx.h"#include "stdio.h"#include "math.h"int main(int argc, char* argv[]){int n;int i,j;while(1){printf("请从键盘上输入一个大于等于2的整数:");scanf("%d",&n);j=0;if(n<2){printf("输入的数不合法!");}else if(n==2){printf("%d\n",2);break;}else{for(i=2;i<=(int)sqrt(n);i++){if(n%i==0){j=1;break;}}if(j==0){printf("%d\n",n);break;}}}printf("\n");return 0;}2题参考答案:#include "stdafx.h"#include "stdio.h"#define N 10int main(int argc, char* argv[]){int a[N]={12,78,56,34,25,67,9,89,97,46};int i,j,temp;printf("排序前的数组为:\n");for(i=0;i<N;i++){printf("%d\t",a[i]);}printf("\n");for(i=0;i<N;i++){for(j=0;j<N-1-i;j++){if(a[j]<a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}printf("排序后的数组为:\n");for(i=0;i<N;i++){printf("%d\t",a[i]);}printf("\n");return 0;}3题参考答案:#include "stdafx.h"#include "stdio.h"int main(int argc, char* argv[]){int x,y,z;for(x=0;x<=10;x++){y=20-2*x;z=30-x-y;if(x+y+z==30){printf("%d\t%d\t%d\n",x,y,z);}}return 0;}杨辉三角参考答案:#include "stdafx.h"#include "stdio.h"#define N 10int main(int argc, char* argv[]){int a[N][N]={{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0},{1,0}};int i,j;for(i=1;i<N;i++){for(j=1;j<=i;j++){a[i][j]=a[i-1][j-1]+a[i-1][j];}}for(i=0;i<N;i++){for(j=0;j<=i;j++){printf("%d\t",a[i][j]);}printf("\n");}return 0;}5.第五题参考答案:#include "stdafx.h"#include "stdio.h"#include "math.h"int main(int argc, char* argv[]){int n;int i,j,k;while(1){printf("请输入3到30之间的奇数:");scanf("%d",&n);if(n%2!=0 && n>=3 && n<=30){break;}else{printf("输入错误,");}}int m=n/2+1;for(i=1;i<=m;i++){for(j=i;j<m;j++){printf(" ");}for(k=1;k<=2*i-1;k++){printf("* ");}printf("\n");}for(i=1;i<m;i++){for(j=1;j<=i;j++){printf(" ");}for(k=1;k<=n-2*i;k++){printf("* ");}printf("\n");}return 0;}6题小孩报数参考答案:#include "stdafx.h"#include "stdio.h"#define N 30int main(int argc, char* argv[]) {int i;int a[N];int count,k=0;for(i=0;i<N;i++){a[i]=i+1;}do{count=0;for(i=0;i<N;i++){if(a[i]!=0){k++;}else{count++;}if(k==6){printf("%d\t",a[i]);a[i]=0;k=0;}}}while(count<N);return 0;}。
第12届蓝桥杯大赛软件赛省赛Java语言B组
第十二届蓝桥杯大赛软件赛省赛Java大学B组第十二届蓝桥杯大赛软件赛省赛Java大学B组【考生须知】考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。
考试时间为4小时。
考试期间选手可浏览自己已经提交的答案,被浏览的答案允许拷贝。
时间截止后,将无法继续提交或浏览答案。
对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
选手必须通过浏览器方式提交自己的答案。
选手在其它位置的作答或其它方式提交的答案无效。
试题包含“结果填空”和“程序设计”两种题型。
结果填空题:要求选手根据题目描述直接填写结果。
求解方式不限。
不要求源代码。
把结果填空的答案直接通过网页提交即可,不要书写多余的内容。
程序设计题:要求选手设计的程序对于给定的输入能给出正确的输出结果。
考生的程序只有能运行出正确结果才有机会得分。
注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
所有源码必须在同一文件中。
调试通过后,拷贝提交。
注意:不要使用package语句。
注意:选手代码的主类名必须为:Main,否则会被判为无效代码。
注意:如果程序中引用了类库,在提交时必须将import语句与程序的其他部分同时提交。
只允许使用Java自带的类库。
第十二届蓝桥杯大赛软件赛省赛1第十二届蓝桥杯大赛软件赛省赛Java大学B组试题A:ASC本题总分:5分【问题描述】已知大写字母A的ASCII码为65,请问大写字母L的ASCII码是多少?【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
试题A:ASC2第十二届蓝桥杯大赛软件赛省赛Java大学B组试题B:卡片本题总分:5分【问题描述】小蓝有很多数字卡片,每张卡片上都是数字0到9。
小蓝准备用这些卡片来拼一些数,他想从1开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。
国信蓝点杯全国软件专业人才设计与开发大赛
“国信蓝点杯”第二届全国软件专业人才设计与开发大赛选拔赛竞赛规则及样题更新时间:2011-1-6 8:29:15 /1.时间:考试为4小时全程封闭。
2.形式:全程机考。
局域网络、浏览器方式发放试题、提交代码。
3.考试环境X86 兼容机器,内存>1G,硬盘>60GWindows NT 内核系统(WindowsXP, Windows2000等)●C 语言Visual C++ 6.0 (英文版)MSDN帮助文档(中英文)Turbo C●JavaJDK 1.5Eclipse 3.1JCreator 2.0API 帮助(英文,中文,chm格式)4.涉及知识∙ ●JAVA软件开发(本科)涉及知识:语法、面向对象、网络编程、接口、集合、IO、多线程、内部类、异常、数据结构。
(awt、swing不考)∙ ●JAVA软件开发(高职高专)涉及知识:语法、面向对象、网络编程、接口、集合、IO、多线程、内部类、异常。
(数据结构、awt、swing不考)∙ ●C语言程序设计(本科)涉及知识:结构、数组、指针、标准输入输出、递归、函数指针、文件I/O、位运算∙ ●C语言程序设计(高职高专)涉及知识:结构、数组、指针、标准输入输出5.考核内容●侧重考核考生的独立软件分析、设计、编码、调试等能力。
●题目形式为若干程序完善题及编程题。
没有选择、改错、问答等题型。
6.题目形式(1)程序完善题题目为若干具有一定难度梯度、分值不等的程序完善题。
要求对既定代码中的空缺部分进行补充完善,使整段代码完整。
(2)编程题题目为若干具有一定难度梯度、分值不等的编程题目。
这些题目的要求明确、答案客观。
要求考生通过编程的办法搜索题目的解。
一般难点集中于对算法的设计和逻辑的组织上。
理论上,考生不可能通过猜测或其它非编程的手段获得问题的解。
7.评分:主要以考生所的提交的程序的运行效果为依据进行评估。
同时也会参考考生程序的编码风格、逻辑性、可读性等方面。
国信蓝点杯决赛训练试题1
国信蓝点杯决赛训练试题1给定整数集合s和两个整数m,n,是否存在s的一个子集h,使得m是取自h中至多n 个整数的和(可以重复取)。
从输入文件读入若干组测试数据。
每一组测试数据的第一行是三个整数m,n,k,(0≤m≤10000,0≤n≤20,0≤k≤20)。
接着的一行上有k个整数b1,b2,…,bk,表示s由这k个整数组成。
输出直至文件完结。
对第i组测试数据,你应先在一行上输出文字“case#:”,其中“#”是测试数据编号i(从1开始编),再在下一行上输出你能否实现将m表示成s中至多n个数字的和的文字描述:“可能”,并将所有的组合形式输出出来。
否则输出“不可能”输出样例输入样例1033case1:412可能将10=4+4+22753case2:2313不可能2碎纸机游戏设计:你现在负责设计一种碎纸机,使其具有以下特点:①每次研磨之前,先必须取值碎纸机一个目标数,而且在每张被送进碎纸机的纸片上也须要涵盖一个数;②碎纸机切出的每个纸片上都包括一个数;③建议切开的每个纸片上的数的和必须不大于目标数而且与目标数最吻合。
比如,假设目标数就是50,输出纸片上的数是12346。
碎纸机可以把纸片切开4块,分别涵盖1,2,34和6。
这样,这些数的和就是43=1+2+34+6,这就是所有的划分方式中,不少于50而又最为吻合50的划分方式。
又比如说,划分成1,23,4和6就是不恰当的,因为这样的总和就是34=1+23+4+6,比刚才获得的结果43大。
划分成12,34和6也就是不恰当的,因为这时的总和就是52=12+34+6,少于了50。
还有以下3个特别的规则:①如果目标数和输出纸片上的数相同,那么纸片不展开研磨;②如果不论怎样切割,分割得到的纸片上数的和都大于目标数,则显示错误信息;③如果存有多种不同的研磨方式可以获得相同的最优结果,则应当表明出来最优结果的全部赢得方式。
为了设计这样的一个碎纸机,要求你编写一个简单的模拟程序来模拟以上碎纸过程。
2011国信蓝点杯软件专业人才设计与开发大赛选拔赛(上机编程)试题
2011“国信蓝点杯”全国软件专业人才设计与开发大赛上机编程试题一、倒序数是将一个阿拉伯数的各位上的数字以逆序的形式写成的数。
该阿拉伯数的第一位变成最后位,最后位变成第一位。
例如数1245被写成5421。
注意产生的新数字前边所有的数字0是被略去的。
倒序数的尾部无多余的数字0。
请将阿拉伯数转变为倒序数。
输入输入的第一行仅有一个正整数n,表示有n组测试数据。
下来有接n行,每一行是一组测试数据,长度不超过100。
每一行上的字符串表示一个非负整数,它是你需要转换的数。
输出对每一组测试数据在一行上输出倒序数,该倒序数中前导的数字0被略去了。
输入样例输出样例324 4243400 434305503 (25分)#include"stdio.h"void fan(int m){int j,k,i=0;int a[100]={0};while(m){a[i]=m%10;m=m/10;i++;}k=i;printf("转置后的数据:\n");for(i=0;i<k;i++){if(a[i]==0)j=i;elsebreak;}for(j=0;i<k;i++)printf("%d",a[i]);printf("\n");}main(){int m;printf("输入原始数据 :m \n");scanf("%d",&m);fan(m);}二、对一个正整数n,求出n!中末尾0的个数。
输入输入有若干行。
每一行上有一个整数T,是测试数据组数,接着有T行,每一行包含一个确定的正整数n(n≤1000000000)。
输出对输入行中的每一个数据n,输出一行,其内容是n!中末尾0的个数。
输入样例输出样例33 0100 241024 253 (25分)#include"stdio.h"int jie(int m){int i ;long sum;sum=i=1;for(i=2;i<=m;i++)sum=sum*i;return sum;}int fan(long k){int count,i;int a[100]={0};i=count=0;while(k){a[i]=k%10;if(a[i]!=0)break;k=k/10;i++;count++;}return count;}main(){int m,count;long k;printf("输入目标数 m :");scanf("%d",&m);k=jie(m);printf("m的阶层为:%ld \n",k);count=fan(k);printf("最终0的个数为%d \n",count);}三、给定两个字符串a和b,定义式子a*b表示两个字符串的连接。
蓝桥杯历年真题详解课件,超过200页的PPT
比赛收获
可以提高学生的计算机应 用能力,培养学生的计算 机科学技术创新思维,推 动高校计算机专业教育水 平的提高。
课件组成
教材附加
细致的板块分析,达到真正 的题海战术兼备思维能力最 大化拓展,显著提高学生的 能力。
疑点剖析
详细解答历年蓝桥杯的真题 难点。祛除疑惑,打造科学 的学习和积极的心态。
考点重点
对于重点考点处的深入剖析, 能够让考生重点分析,达到 事倍功半的效果。
分部分详细讲解
省赛
资格筛选,两次机会。 Java/C++/Python多种编 程语言,双向选择。
预赛
计算机基础知识考试, 编程题,实际程序设计, 两小时内完成编程题。
2 复习
首先熟悉历年真题,分解学习点;按照课件板块进行整体学习,重点 是Coding,同时还需要视情况背好必要的公式、算法、编码标准等。
最终收官思考
1
初出茅庐
记得第一次参加蓝桥杯比赛,心态差,自以为很努力,结果还是落榜了,感到有 些懊恼,有些失落。
2
持之以恒
从第一届落败后,从次年的正年纪寒假就开始了准备计划,并且一门语言在一个 月内完成基础学习。
3
最终收官
收获蓝桥杯Java二等奖,知道,期待蓝桥杯成为一次飞跃的经历。
蓝桥杯历年真题详解课件
此课件包括历年蓝桥杯真题详解,站在巨人的肩膀上,为更高的目标而努力。 感受蓝桥杯的魅力,体验程序设计的乐趣!
什么是蓝桥杯
比赛背景
蓝桥杯始于2002年,由教 育部高等学校计算机类专 业教学指导委员会、中国 民航飞行学院等单位联合 发起,是全国性的IT类人才 综合能力大赛。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大数学家欧拉在集市上遇到了本村的两个农妇,每人跨着个空篮子。
她们和欧拉打招呼说两人刚刚卖完了所有的鸡蛋。
欧拉随便问:“卖了多少鸡蛋呢?”不料一个说:“我们两人自己卖自己的,一共卖了150个鸡蛋,虽然我们卖的鸡蛋有多有少,但刚好得了同样的钱数。
你猜猜看!”欧拉猜不出。
另一个补充道:“如果我按她那样的价格卖,可以得到32元;如果她按我的价格卖,可以得到24.5元”。
欧拉想了想,说出了正确答案。
我们不是数学家,懒得列出公式来分析。
但计算机可以“暴力破解”,就是把所有可能情况都试验一遍,撞上为止!请写出每人鸡蛋的数目(顺序不限),用逗号隔开。
福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把ABCDE 所代表的数字写出来。
小明刚上小学,学会了第一个扑克牌“魔术”,到处给人表演。
魔术的内容是这样的:他手里握着一叠扑克牌:A,2,....J,Q,K 一共13张。
他先自己精心设计它们的顺序,然后正面朝下拿着,开始表演。
只见他先从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上,是A;然后再从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上,是2;......如此循环直到手中只有一张牌,翻开放桌子上,刚好是K。
这时,桌上牌的顺序是:A,2,3,4,5,6,7,8,9,10,J,Q,K 请你计算一下,小明最开始的时候手里牌的顺序是怎样的。
结果写出来,逗号分割,小明“魔术”开始时,最下面的那张牌输出为第一个数据。
考场不提供扑克牌,你只能用计算机模拟了,撕碎草稿纸模拟扑克属于作弊行为!另外,你有没有把录像倒着放过?很有趣的!回去试试!在我国古代和近代,一直采用干支法纪年。
它采用10天干和12地支配合,一个循环周期为60年。
10天干是:甲,乙,丙,丁,戊,己,庚,辛,壬,癸12地支是:子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥如果某年是甲子,下一年就是乙丑,再下是丙寅,......癸酉,甲戌,乙亥,丙子,....总之天干、地址都是循环使用,两两配对。
今年(2012)是壬辰年,1911年辛亥革命下面的代码根据公历年份输出相应的干支法纪年。
已知最近的甲子年是1984年。
void f(int year){char* x[] = {"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};char* y[] = {"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"};int n = year - 1984;while(n<0) n += 60;printf("%s%s\n", x[_______], y[_______]);}int main(int argc, char* argv[]){f(1911);f(1970);f(2012);return 0;}请分析代码逻辑,并推测划线处的代码。
注意:只写划线处应该填的内容,划线前后的内容不要抄写。
如果让你设计个程序,用什么变量保存身份证号码呢?长整数可以吗?不可以!因为有人的身份证最后一位是"X"实际上,除了最后一位的X,不会出现其它字母!身份证号码18位= 17位+ 校验码校验码的计算过程:例如:身份证前17位= ABCDEFGHIJKLMNOPQA~Q 每位数字乘以权值求和(每位数字和它对应的“权”相乘后累加)17位对应的权值分别是:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2求出的总和再对11求模然后按下表映射:余数0 1 2 3 4 5 6 7 8 9 10校验码:1 0 X 9 8 7 6 5 4 3 2下面的代码实现了校验过程,输入串为身份证前17位,返回了校验码。
char verifyCode(char* s){static int weight[] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};static char map[] = {'1','0','X','9','8','7','6','5','4','3','2'};int sum = 0;for(int i=0; i<17; i++){sum += (______________) * weight[i]; // 填空}return map[____________]; // 填空}请分析代码逻辑,并推测划线处的代码。
注意:只写划线处应该填的内容,划线前后的内容不要抄写。
对一方阵转置,就是把原来的行号变列号,原来的列号变行号个例如,如下的方阵:1 2 3 45 6 7 89 10 11 1213 14 15 16转置后变为:1 5 9 132 6 10 143 7 11 154 8 12 16但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:13 9 5 114 10 6 215 11 7 316 12 8 4下面的代码实现的功能就是要把一个方阵顺时针旋转。
void rotate(int* x, int rank){int* y = (int*)malloc(___________________); // 填空for(int i=0; i<rank * rank; i++){y[_________________________] = x[i]; // 填空}for(i=0; i<rank*rank; i++){x[i] = y[i];}free(y);}int main(int argc, char* argv[]){int x[4][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};int rank = 4;rotate(&x[0][0], rank);for(int i=0; i<rank; i++){for(int j=0; j<rank; j++){printf("%4d", x[i][j]);}printf("\n");}return 0;}请分析代码逻辑,并推测划线处的代码。
注意:只写划线处应该填的内容,划线前后的内容不要抄写。
源代码中不能能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
允许使用STL类库,但不能使用MFC或A TL等非ANSI c++标准的类库。
例如,不能使用CString类型(属于MFC类库)。
古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来简直不能忍受,所以在现代很少使用了。
之所以这样,不是因为发明表示法的人的智力的问题,而是因为一个宗教的原因,当时的宗教禁止在数字中出现0的概念!罗马数字的表示主要依赖以下几个基本符号:I 1V 5X 10L 50C 100D 500M 1000这里,我们只介绍一下1000以内的数字的表示法。
单个符号重复多少次,就表示多少倍。
最多重复3次。
比如:CCC表示300 XX表示20,但150并不用LLL表示,这个规则仅适用于I X C M。
如果相邻级别的大单位在右,小单位在左,表示大单位中扣除小单位。
比如:IX表示9 IV表示4 XL表示40 更多的示例参见下表,你找到规律了吗?I,1II,2III,3 IV,4 V,5 VI,6 VII,7 VIII,8 IX,9X,10 XI,11 XII,12 XIII,13 XIV,14 XV,15 XVI,16 XVII,17 XVIII,18 XIX,19 XX,20 XXI,21 XXII,22 XXIX,29 XXX,30 XXXIV,34 XXXV,35 XXXIX,39 XL,40L,50LI,51 LV,55 LX,60 LXV,65 LXXX,80 XC,90 XCIII,93 XCV,95 XCVIII,98 XCIX,99C,100 CC,200CCC,300CD,400D,500DC,600DCC,700DCCC,800CM,900CMXCIX,999本题目的要求是:请编写程序,由用户输入若干个罗马数字串,程序输出对应的十进制表示。
输入格式是:第一行是整数n,表示接下来有n个罗马数字(n<100)。
以后每行一个罗马数字。
罗马数字大小不超过999。
要求程序输出n行,就是罗马数字对应的十进制数据。
例如,用户输入:3LXXXXCIIIDCCII则程序应该输出:8093702注意:请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。
请把所有函数写在同一个文件中,调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可。
相关的工程文件不要拷入。
源代码中不能能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
允许使用STL类库,但不能使用MFC或A TL等非ANSI c++标准的类库。
例如,不能使用CString类型(属于MFC类库)。
a)2x3=6个方格中放入ABCDE五个字母,右下角的那个格空着。
如图【1.jpg】所示。
和空格子相邻的格子中的字母可以移动到空格中,比如,图中的C和E就可以移动,移动后的局面分别是:A BD E CA B CD E为了表示方便,我们把6个格子中字母配置用一个串表示出来,比如上边的两种局面分别表示为:AB*DECABCD*E题目的要求是:请编写程序,由用户输入若干表示局面的串,程序通过计算,输出是否能通过对初始状态经过若干次移动到达该状态。
可以实现输出1,否则输出0。
初始状态为:ABCDE*用户输入的格式是:先是一个整数n,表示接下来有n行状态。