第三届蓝桥杯决赛试题_第1页
第三届蓝桥杯决赛试题_第2页
第三届蓝桥杯决赛试题_第3页
第三届蓝桥杯决赛试题_第4页
第三届蓝桥杯决赛试题_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

【结果填空】(满分5分)1949年的国庆节(10月1日)是星期六。今年(2012)的国庆节是星期一。那么,从建国到现在,有几次国庆节正好是星期日呢?只要答案,不限手段!可以用windows日历,windows计算器,Excel公式,。。。。。当然,也可以编程!不要求写出具体是哪些年,只要一个数目!千万不要提交源代码!答案不要写在这里,写在“解答.txt”中【代码填空】(满分16分)某工业监控设备不断发回采样数据。每个数据是一个整数(0到1000之间)。各个数据间用空白字符(空格,TAB或回车换行)分隔。这些数据以文本形式被存储在文件中。因为大多数时候,相邻的采样间隔数据是相同的,可以利用这个特征做数据的压缩存储。其方法是:对n(n>l)个连续相同的数字只记录n和该数字本身;对m(m>0)个连续不重复的数字,则记录m*-1和这些数字本身(之所以用负数,是为了与第一种情况区分便于解压缩)。例如:采样数字:l2343425252525lll5l728l4222222l3则根据上述规则变化后:-ll2234425-5lll5l728l4322-ll3下面的程序实现了这个功能。请仔细阅读分析代码,填写空白的部分。voidpop(ints,int*buf,intc,FILE*fp){inti;if(s){fprintf(fp,"%d%d",c,*buf);}else{fprintf(fp,"%d",-c);for(i=0;i<c;i++){fprintf(fp,"%d",buf[i]);}}}voiddopack(FILE*r,FILE*w){intbuf[BUF_N];intpos=0;//下一个数字在buf中将要存放的位置intc=0; //当前段已读入的整数个数intpst;intcst;while(fscanf(r,"%d",buf+pos)==1){if(c==0){c=pos=1;continue;}if(c==1){pst=buf[0]==buf[1];pos=pos+1-pst;c=2;continue;}cst=buf[pos-1]==buf[pos];if(pst&&!cst){pop(pst,buf,c,w);buf[0]=buf[1];c=pos=1;pst=cst;}elseif(!pst&&cst||pos==BUF_N-1){pop(pst,buf,c-1,w);buf[0]=buf[pos-1];c=2;if(!cst){buf[1]=buf[pos];pos=2;}else{pos=1;pst= ;//填空1}}else{c++;if(!pst)pos++;}}//whileif(c>0) ;//填空2}voidmain(){FILE*rfp;FILE*wfp;if((rfp=fopen(RFILE,"r"))==NULL){printf("cannotopen%s!\n",RFILE);exit(1);}if((wfp=fopen(WFILE,"w"))==NULL){printf("cannotopen%s!\n",WFILE);fclose(rfp);exit(2);}dopack(rfp,wfp);fclose(wfp);fclose(rfp);注意】只填写缺少的部分,不要抄写已有的代码。所填写代码不超过1条语句(句中不会含有分号)所填代码长度不超过256个字符。答案写在“解答.txt”中,不要写在这里!【编程题】(满分19分)在很多软件中,输入拼音的首写字母就可以快速定位到某个词条。比如,在铁路售票软件中,输入:“bj”就可以定位到“北京”。怎样在自己的软件中实现这个功能呢?问题的关键在于:对每个汉字必须能计算出它的拼音首字母。GB2312汉字编码方式中,一级汉字的3755个是按照拼音顺序排列的。我们可以利用这个特征,对常用汉字求拼音首字母。GB2312编码方案对每个汉字采用两个字节表示。第一个字节为区号,第二个字节为区中的偏移号。为了能与已有的ASCII编码兼容(中西文混排),区号和偏移编号都从OxAl开始。我们只要找到拼音a,b,c,...x,y,z每个字母所对应的GB2312编码的第一个汉字,就可以定位所有一级汉字的拼音首字母了(不考虑多音字的情况)。下面这个表给出了前述信息。请你利用该表编写程序,求出常用汉字的拼音首字母。a啊BOA1b芭BOC5c擦B2C1d搭B4EEe蛾B6EAf发B7A2g噶B8C1h哈B9FEj击BBF7k喀BFA6l垃COACm妈C2E8n拿C4C3o哦C5B6p啪C5BEq期C6DAr然C8BBs撒C8F6t塌CBFAw挖CDDAx昔CEF4y压D1B9z匝D4D1【输入、输出格式要求】用户先输入一个整数n(nvlOO),表示接下来将有n行文本。接着输入n行中文串(每个串不超过50个汉字)。程序则输出n行,每行内容为用户输入的对应行的汉字的拼音首字母。字母间不留空格,全部使用大写字母。例如:用户输入:3大家爱科学北京天安门广场软件大赛则程序输出:DJAKXBJTAMGCRJDS【注意】请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。请把所有函数写在同一个文件中,调试好后,拷贝到【考生文件夹】下对应题号的“解答.txt”中即可。相关的工程文件不要拷入。源代码中不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。允许使用STL类库,但不能使用MFC或ATL等非ANSIC++标准的类库。例如,不能使用CString类型(属于MFC类库),不能使用randomize,random函数(不属于ANSIC++标准)【编程题】(满分27分)脱氧核糖核酸即常说的DNA,是一类带有遗传信息的生物大分子。它由4种主要的脱氧核苷酸(dAMP、dGMP、dCMT和dTMP)通过磷酸二酯键连接而成。这4种核苷酸可以分别记为:A、G、C、ToDNA携带的遗传信息可以用形如:AGGTCGACTCCA....的串来表示。DNA在转录复制的过程中可能会发生随机的偏差,这才最终造就了生物的多样性。为了简化问题,我们假设,DNA在复制的时候可能出现的偏差是(理论上,对每个碱基被复制时,都可能出现偏差):漏掉某个脱氧核苷酸。例如把AGGT复制成为:AGT错码,例如把AGGT复制成了:AGCT重码,例如把AGGT复制成了:AAGGT如果某DNA串a,最少要经过n次出错,才能变为DNA串b,则称这两个DNA串的距离为no例如:AGGTCATATTCC与CGGTCATATTC的距离为2你的任务是:编写程序,找到两个DNA串的距离。【输入、输出格式要求】用户先输入整数n(nvlOO),表示接下来有2n行数据。接下来输入的2n行每2行表示一组要比对的DNAo(每行数据长度<10000)例如:用户输入3AGCTAAGGCCTTAGCTAAGGCCTAGCTAAGGCCTTAGGCTAAGGCCTTAGCTAAGGCCTTAGCTTAAGGCTT则程序应输出:112【注意】请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。请把所有函数写在同一个文件中,调试好后,拷贝到【考生文件夹】下对应题号的“解答.txt”中即可。相关的工程文件不要拷入。源代码中不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。允许使用STL类库,但不能使用MFC或ATL等非ANSIC++标准的类库。例如,不能使用CString类型(属于MFC类库),不能使用randomize,random函数(不属于ANSIC++标准)【编程题】(满分33分)“数独”是当下炙手可热的智力游戏。一般认为它的起源是“拉丁方块”,是大数学家欧拉于1783年发明的。如图[l.jpg]所示:6x6的小格被分为6个部分(图中用不同的颜色区分),每个部分含有6个小格(以下也称为分组)。开始的时候,某些小格中已经填写了字母(ABCDEF之一)。需要在所有剩下的小格中补填字母。全部填好后,必须满足如下约束:所填字母只允许是A,B,C,D,E,F中的某一个。每行的6个小格中,所填写的字母不能重复。每列的6个小格中,所填写的字母不能重复。每个分组(参见图中不同颜色表示)包含的6个小格中,所填写的字母不能重复。为了表示上的方便,我们用下面的6阶方阵来表示图[l.jpg]对应的分组情况(组号为0~5):000011022013221113243333244455445555用下面的数据表示其已有字母的填写情况:02C03B05A20D35E53F很明显,第一列表示行号,第二列表示列号,第三列表示填写的字母。行号、列号都从0开始计算。一种可行的填写方案(此题刚好答案唯一)为:EFCBDAACEDFBDABECFFBDCAEBDFAECCEAFBD解。【输入、输出格式要求】用户首先输入6行数据,表示拉丁方块的分组情况。接着用户输入一个整数n(nv36),表示接下来的数据行数接着输入n行数据,每行表示一个预先填写的字母。程序则输出所有可能的解(各个解间的顺序不重要)。每个解占用7行。即,先输出一个整数,表示该解的序号(从1开始),接着输出一个6x6的字母方阵,表示该解。解的字母之间用空格分开。如果找不到任何满足条件的解,则输出“无解”例如:用户输入:000011022013221113243333244455445555602C03B05A20D35E53F则程序输出:1EFCBDAACEDFBDABECFFBDCAEBDFAEC再如,用户输入001111002113022243022443544433555553704B05A13D14C24E50C51A则程序输出:1DCEFBAEFADCBABFCEDBEDAFCFDCBAECABEDF2DCEFBAEFADCBADFBECBECAFDFBDCAECABEDF3DCFEBAAEBDCFFDACEBBFEADCEBCFADCADBFE4DCFEBABEADCFADCFEBFBEADCEFBCADCADBFE5DCFEBAEFADCBABCFEDBEDAFCFDBCAECAEBDF6DCFEBAEFADCBABDFECBECAFDFDBCAECAEBDF7DCFEBAEFADCBADBFECBECAFDFBDCAECAEBDF8DCFEBAFEADCBADBCEFBFEADCEBCFADCADBFE9DCFEBAFEADCBAFCBEDBDEAFCEBDCAFCABFDE注意】请仔细调试!您的程序只

温馨提示

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

评论

0/150

提交评论