第三届蓝桥杯决赛试题Word文档下载推荐.docx

上传人:b****6 文档编号:16636967 上传时间:2022-11-25 格式:DOCX 页数:14 大小:22.63KB
下载 相关 举报
第三届蓝桥杯决赛试题Word文档下载推荐.docx_第1页
第1页 / 共14页
第三届蓝桥杯决赛试题Word文档下载推荐.docx_第2页
第2页 / 共14页
第三届蓝桥杯决赛试题Word文档下载推荐.docx_第3页
第3页 / 共14页
第三届蓝桥杯决赛试题Word文档下载推荐.docx_第4页
第4页 / 共14页
第三届蓝桥杯决赛试题Word文档下载推荐.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

第三届蓝桥杯决赛试题Word文档下载推荐.docx

《第三届蓝桥杯决赛试题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第三届蓝桥杯决赛试题Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。

第三届蓝桥杯决赛试题Word文档下载推荐.docx

请仔细阅读分析代码,填写空白的部分。

voidpop(ints,int*buf,intc,FILE*fp)

{

inti;

if(s)

{

fprintf(fp,"

%d%d"

c,*buf);

}

else

%d"

-c);

for(i=0;

i<

c;

i++)

{

fprintf(fp,"

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;

cst=buf[pos-1]==buf[pos];

if(pst&

&

!

cst)

pop(pst,buf,c,w);

buf[0]=buf[1];

pst=cst;

elseif(!

pst&

cst||pos==BUF_N-1)

pop(pst,buf,c-1,w);

buf[0]=buf[pos-1];

if(!

{

buf[1]=buf[pos];

pos=2;

}

else

pos=1;

pst=______________;

//填空1

else

c++;

pst)pos++;

}//while

if(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"

WFILE);

fclose(rfp);

exit

(2);

dopack(rfp,wfp);

fclose(wfp);

fclose(rfp);

 

【注意】

只填写缺少的部分,不要抄写已有的代码。

所填写代码不超过1条语句(句中不会含有分号)

所填代码长度不超过256个字符。

答案写在“解答.txt”中,不要写在这里!

【编程题】

(满分19分)

在很多软件中,输入拼音的首写字母就可以快速定位到某个词条。

比如,在铁路售票软件中,输入:

“bj”就可以定位到“北京”。

怎样在自己的软件中实现这个功能呢?

问题的关键在于:

对每个汉字必须能计算出它的拼音首字母。

GB2312汉字编码方式中,一级汉字的3755个是按照拼音顺序排列的。

我们可以利用这个特征,对常用汉字求拼音首字母。

GB2312编码方案对每个汉字采用两个字节表示。

第一个字节为区号,第二个字节为区中的偏移号。

为了能与已有的ASCII编码兼容(中西文混排),区号和偏移编号都从0xA1开始。

我们只要找到拼音a,b,c,...x,y,z每个字母所对应的GB2312编码的第一个汉字,就可以定位所有一级汉字的拼音首字母了(不考虑多音字的情况)。

下面这个表给出了前述信息。

请你利用该表编写程序,求出常用汉字的拼音首字母。

a啊B0A1

b芭B0C5

c擦B2C1

d搭B4EE

e蛾B6EA

f发B7A2

g噶B8C1

h哈B9FE

j击BBF7

k喀BFA6

l垃C0AC

m妈C2E8

n拿C4C3

o哦C5B6

p啪C5BE

q期C6DA

r然C8BB

s撒C8F6

t塌CBFA

w挖CDDA

x昔CEF4

y压D1B9

z匝D4D1

【输入、输出格式要求】

用户先输入一个整数n(n<

100),表示接下来将有n行文本。

接着输入n行中文串(每个串不超过50个汉字)。

程序则输出n行,每行内容为用户输入的对应行的汉字的拼音首字母。

字母间不留空格,全部使用大写字母。

用户输入:

3

大家爱科学

北京天安门广场

软件大赛

则程序输出:

DJAKX

BJTAMGC

RJDS

请仔细调试!

您的程序只有能运行出正确结果的时候才有机会得分!

在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。

请把所有函数写在同一个文件中,调试好后,拷贝到【考生文件夹】下对应题号的“解答.txt”中即可。

相关的工程文件不要拷入。

源代码中不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。

允许使用STL类库,但不能使用MFC或ATL等非ANSIc++标准的类库。

例如,不能使用CString类型(属于MFC类库),不能使用randomize,random函数(不属于ANSIC++标准)

(满分27分)

脱氧核糖核酸即常说的DNA,是一类带有遗传信息的生物大分子。

它由4种主要的脱氧核苷酸(dAMP、dGMP、dCMT和dTMP)通过磷酸二酯键连接而成。

这4种核苷酸可以分别记为:

A、G、C、T。

DNA携带的遗传信息可以用形如:

AGGTCGACTCCA....的串来表示。

DNA在转录复制的过程中可能会发生随机的偏差,这才最终造就了生物的多样性。

为了简化问题,我们假设,DNA在复制的时候可能出现的偏差是(理论上,对每个碱基被复制时,都可能出现偏差):

  1.漏掉某个脱氧核苷酸。

例如把AGGT复制成为:

AGT

2.错码,例如把AGGT复制成了:

AGCT

3.重码,例如把AGGT复制成了:

AAGGT

如果某DNA串a,最少要经过n次出错,才能变为DNA串b,则称这两个DNA串的距离为n。

AGGTCATATTCC与CGGTCATATTC的距离为2

你的任务是:

编写程序,找到两个DNA串的距离。

用户先输入整数n(n<

100),表示接下来有2n行数据。

接下来输入的2n行每2行表示一组要比对的DNA。

(每行数据长度<

10000)

程序则输出n行,表示这n组DNA的距离。

用户输入:

AGCTAAGGCCTT

AGCTAAGGCCT

AGGCTAAGGCCTT

AGCTTAAGGCTT

则程序应输出:

1

2

(满分33分)

“数独”是当下炙手可热的智力游戏。

一般认为它的起源是“拉丁方块”,是大数学家欧拉于1783年发明的。

如图[1.jpg]所示:

6x6的小格被分为6个部分(图中用不同的颜色区分),每个部分含有6个小格(以下也称为分组)。

开始的时候,某些小格中已经填写了字母(ABCDEF之一)。

需要在所有剩下的小格中补填字母。

全部填好后,必须满足如下约束:

1.所填字母只允许是A,B,C,D,E,F中的某一个。

2.每行的6个小格中,所填写的字母不能重复。

3.每列的6个小格中,所填写的字母不能重复。

4.每个分组(参见图中不同颜色表示)包含的6个小格中,所填写的字母不能重复。

为了表示上的方便,我们用下面的6阶方阵来表示图[1.jpg]对应的分组情况(组号为0~5):

000011

022013

221113

243333

244455

445555

用下面的数据表示其已有字母的填写情况:

02C

03B

05A

20D

35E

53F

很明显,第一列表示行号,第二列表示列号,第三列表示填写的字母。

行号、列号都从0开始计算。

一种可行的填写方案(此题刚好答案唯一)为:

EFCBDA

ACEDFB

DABECF

FBDCAE

BDFAEC

CEAFBD

编写程序,对一般的拉丁方块问题求解,如果多解,要求找到所有解。

用户首先输入6行数据,表示拉丁方块的分组情况。

接着用户输入一个整数n(n<

36),表示接下来的数据行数

接着输入n行数据,每行表示一个预先填写的字母。

程序则输出所有可能的解(各个解间的顺序不重要)。

每个解占用7行。

即,先输出一个整数,表示该解的序号(从1开始),接着输出一个6x6的字母方阵,表示该解。

解的字母之间用空格分开。

如果找不到任何满足条件的解,则输出“无解”

6

再如,用户输入:

001111

002113

022243

022443

544433

555553

7

04B

13D

14C

24E

50C

51A

DCEFBA

EFADCB

ABFCED

BEDAFC

FDCBAE

CABEDF

ADFBEC

BECAFD

DCFEBA

AEBDCF

FDACEB

BFEADC

EBCFAD

CADBFE

4

BEADCF

ADCFEB

FBEADC

EFBCAD

5

ABCFED

FDBCAE

CAEBDF

ABDFEC

ADBFEC

8

FEADCB

ADBCEF

9

AFCBED

BDEAFC

EBDCAF

CABFDE

例如,不能使用CString类型(属于MFC类库);

例如,不能使用randomize,random函数(不属于ANSIC++标准)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1